mirror of
https://github.com/gohugoio/hugo.git
synced 2024-05-11 05:54:58 +00:00
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)
|
||||||
|
}
|
Reference in New Issue
Block a user