diff options
author | Unknwon <u@gogs.io> | 2015-12-16 22:13:12 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-12-16 22:13:12 -0500 |
commit | 6673dcb0380aa99da25b4d1d68cf129635fe30d9 (patch) | |
tree | 45167c2f2991818467389866847c402e3a48e906 /modules/template | |
parent | 71142929cc35e9b7c73b659c38b5eb42dc42bb83 (diff) | |
download | gitea-6673dcb0380aa99da25b4d1d68cf129635fe30d9.tar.gz gitea-6673dcb0380aa99da25b4d1d68cf129635fe30d9.zip |
#2103 #2181 improvments of highlight class name
Diffstat (limited to 'modules/template')
-rw-r--r-- | modules/template/highlight.go | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/modules/template/highlight.go b/modules/template/highlight.go new file mode 100644 index 0000000000..901376aaa6 --- /dev/null +++ b/modules/template/highlight.go @@ -0,0 +1,80 @@ +// Copyright 2015 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package template + +import ( + "path" + "strings" +) + +var ( + // File name should ignore highlight. + ignoreFileNames = map[string]bool{ + "license": true, + "copying": true, + } + + // File names that are representing highlight class. + highlightFileNames = map[string]bool{ + "dockerfile": true, + "makefile": true, + } + + // Extensions that are same as highlight class. + highlightExts = map[string]bool{ + ".arm": true, + ".as": true, + ".sh": true, + ".cs": true, + ".cpp": true, + ".c": true, + ".css": true, + ".cmake": true, + ".bat": true, + ".dart": true, + ".patch": true, + ".elixir": true, + ".erlang": true, + ".go": true, + ".html": true, + ".xml": true, + ".hs": true, + ".ini": true, + ".json": true, + ".java": true, + ".js": true, + ".less": true, + ".lua": true, + ".php": true, + ".py": true, + ".rb": true, + ".scss": true, + ".sql": true, + ".scala": true, + ".swift": true, + ".ts": true, + ".vb": true, + } +) + +// FileNameToHighlightClass returns the best match for highlight class name +// based on the rule of highlight.js. +func FileNameToHighlightClass(fname string) string { + fname = strings.ToLower(fname) + if ignoreFileNames[fname] { + return "nohighlight" + } + + if highlightFileNames[fname] { + return fname + } + + ext := path.Ext(fname) + if highlightExts[ext] { + return ext[1:] + } + + return "" +} |