mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-29 02:02:09 -05:00
parent
eb15ac37ef
commit
2c54f1ad48
1 changed files with 60 additions and 0 deletions
60
helpers/docshelper.go
Normal file
60
helpers/docshelper.go
Normal file
|
@ -0,0 +1,60 @@
|
|||
package helpers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/alecthomas/chroma/lexers"
|
||||
"github.com/gohugoio/hugo/docshelper"
|
||||
)
|
||||
|
||||
// This is is just some helpers used to create some JSON used in the Hugo docs.
|
||||
func init() {
|
||||
|
||||
docsProvider := func() map[string]interface{} {
|
||||
docs := make(map[string]interface{})
|
||||
|
||||
var chromaLexers []interface{}
|
||||
|
||||
sort.Sort(lexers.Registry.Lexers)
|
||||
|
||||
for _, l := range lexers.Registry.Lexers {
|
||||
|
||||
config := l.Config()
|
||||
|
||||
var filenames []string
|
||||
filenames = append(filenames, config.Filenames...)
|
||||
filenames = append(filenames, config.AliasFilenames...)
|
||||
|
||||
aliases := config.Aliases
|
||||
|
||||
for _, filename := range filenames {
|
||||
alias := strings.TrimSpace(strings.TrimPrefix(filepath.Ext(filename), "."))
|
||||
if alias != "" {
|
||||
aliases = append(aliases, alias)
|
||||
}
|
||||
}
|
||||
|
||||
sort.Strings(aliases)
|
||||
aliases = UniqueStrings(aliases)
|
||||
|
||||
lexerEntry := struct {
|
||||
Name string
|
||||
Aliases []string
|
||||
}{
|
||||
config.Name,
|
||||
aliases,
|
||||
}
|
||||
|
||||
chromaLexers = append(chromaLexers, lexerEntry)
|
||||
|
||||
docs["lexers"] = chromaLexers
|
||||
}
|
||||
return docs
|
||||
|
||||
}
|
||||
|
||||
docshelper.AddDocProvider("chroma", docsProvider)
|
||||
}
|
Loading…
Reference in a new issue