From 6673dcb0380aa99da25b4d1d68cf129635fe30d9 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Wed, 16 Dec 2015 22:13:12 -0500 Subject: #2103 #2181 improvments of highlight class name --- modules/template/highlight.go | 80 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 modules/template/highlight.go (limited to 'modules/template') 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 "" +} -- cgit v1.2.3