#2103 Ability to map extensions for syntax highlighting in config
This commit is contained in:
parent
33a99d587a
commit
1e7e092992
5 changed files with 50 additions and 25 deletions
|
@ -338,6 +338,10 @@ pl-PL = pl
|
|||
bg-BG = bg
|
||||
it-IT = it
|
||||
|
||||
; Extension mapping to highlight class
|
||||
; e.g. .toml=ini
|
||||
[highlight.mapping]
|
||||
|
||||
[other]
|
||||
SHOW_FOOTER_BRANDING = false
|
||||
; Show version information about gogs and go in the footer
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -43,11 +43,11 @@ const (
|
|||
)
|
||||
|
||||
var (
|
||||
// Build information.
|
||||
// Build information
|
||||
BuildTime string
|
||||
BuildGitHash string
|
||||
|
||||
// App settings.
|
||||
// App settings
|
||||
AppVer string
|
||||
AppName string
|
||||
AppUrl string
|
||||
|
@ -55,7 +55,7 @@ var (
|
|||
AppPath string
|
||||
AppDataPath = "data"
|
||||
|
||||
// Server settings.
|
||||
// Server settings
|
||||
Protocol Scheme
|
||||
Domain string
|
||||
HttpAddr, HttpPort string
|
||||
|
@ -71,7 +71,7 @@ var (
|
|||
EnableGzip bool
|
||||
LandingPageUrl LandingPage
|
||||
|
||||
// Security settings.
|
||||
// Security settings
|
||||
InstallLock bool
|
||||
SecretKey string
|
||||
LogInRememberDays int
|
||||
|
@ -79,13 +79,13 @@ var (
|
|||
CookieRememberName string
|
||||
ReverseProxyAuthUser string
|
||||
|
||||
// Database settings.
|
||||
// Database settings
|
||||
UseSQLite3 bool
|
||||
UseMySQL bool
|
||||
UsePostgreSQL bool
|
||||
UseTiDB bool
|
||||
|
||||
// Webhook settings.
|
||||
// Webhook settings
|
||||
Webhook struct {
|
||||
QueueLength int
|
||||
DeliverTimeout int
|
||||
|
@ -94,7 +94,7 @@ var (
|
|||
PagingNum int
|
||||
}
|
||||
|
||||
// Repository settings.
|
||||
// Repository settings
|
||||
Repository struct {
|
||||
AnsiCharset string
|
||||
ForcePrivate bool
|
||||
|
@ -104,7 +104,7 @@ var (
|
|||
RepoRootPath string
|
||||
ScriptType string
|
||||
|
||||
// UI settings.
|
||||
// UI settings
|
||||
ExplorePagingNum int
|
||||
IssuePagingNum int
|
||||
FeedMaxCommitNum int
|
||||
|
@ -113,47 +113,47 @@ var (
|
|||
AdminNoticePagingNum int
|
||||
AdminOrgPagingNum int
|
||||
|
||||
// Markdown sttings.
|
||||
// Markdown sttings
|
||||
Markdown struct {
|
||||
EnableHardLineBreak bool
|
||||
}
|
||||
|
||||
// Picture settings.
|
||||
// Picture settings
|
||||
PictureService string
|
||||
AvatarUploadPath string
|
||||
GravatarSource string
|
||||
DisableGravatar bool
|
||||
|
||||
// Log settings.
|
||||
// Log settings
|
||||
LogRootPath string
|
||||
LogModes []string
|
||||
LogConfigs []string
|
||||
|
||||
// Attachment settings.
|
||||
// Attachment settings
|
||||
AttachmentPath string
|
||||
AttachmentAllowedTypes string
|
||||
AttachmentMaxSize int64
|
||||
AttachmentMaxFiles int
|
||||
AttachmentEnabled bool
|
||||
|
||||
// Time settings.
|
||||
// Time settings
|
||||
TimeFormat string
|
||||
|
||||
// Cache settings.
|
||||
// Cache settings
|
||||
CacheAdapter string
|
||||
CacheInternal int
|
||||
CacheConn string
|
||||
|
||||
// Session settings.
|
||||
// Session settings
|
||||
SessionConfig session.Options
|
||||
|
||||
// Git settings.
|
||||
// Git settings
|
||||
Git struct {
|
||||
MaxGitDiffLines int
|
||||
GcArgs []string `delim:" "`
|
||||
}
|
||||
|
||||
// Cron tasks.
|
||||
// Cron tasks
|
||||
Cron struct {
|
||||
UpdateMirror struct {
|
||||
Enabled bool
|
||||
|
@ -174,17 +174,19 @@ var (
|
|||
} `ini:"cron.check_repo_stats"`
|
||||
}
|
||||
|
||||
// I18n settings.
|
||||
// I18n settings
|
||||
Langs, Names []string
|
||||
dateLangs map[string]string
|
||||
|
||||
// Other settings.
|
||||
// Highlight settings are loaded in modules/template/hightlight.go
|
||||
|
||||
// Other settings
|
||||
ShowFooterBranding bool
|
||||
ShowFooterVersion bool
|
||||
|
||||
// Global setting objects.
|
||||
// Global setting objects
|
||||
Cfg *ini.File
|
||||
CustomPath string // Custom directory path.
|
||||
CustomPath string // Custom directory path
|
||||
CustomConf string
|
||||
ProdMode bool
|
||||
RunUser string
|
||||
|
|
|
@ -7,6 +7,8 @@ package template
|
|||
import (
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/gogits/gogs/modules/setting"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -16,13 +18,13 @@ var (
|
|||
"copying": true,
|
||||
}
|
||||
|
||||
// File names that are representing highlight class.
|
||||
// File names that are representing highlight classes.
|
||||
highlightFileNames = map[string]bool{
|
||||
"dockerfile": true,
|
||||
"makefile": true,
|
||||
}
|
||||
|
||||
// Extensions that are same as highlight class.
|
||||
// Extensions that are same as highlight classes.
|
||||
highlightExts = map[string]bool{
|
||||
".arm": true,
|
||||
".as": true,
|
||||
|
@ -57,8 +59,18 @@ var (
|
|||
".ts": true,
|
||||
".vb": true,
|
||||
}
|
||||
|
||||
// Extensions that are not same as highlight classes.
|
||||
highlightMapping = map[string]string{}
|
||||
)
|
||||
|
||||
func NewContext() {
|
||||
keys := setting.Cfg.Section("highlight.mapping").Keys()
|
||||
for i := range keys {
|
||||
highlightMapping[keys[i].Name()] = keys[i].Value()
|
||||
}
|
||||
}
|
||||
|
||||
// FileNameToHighlightClass returns the best match for highlight class name
|
||||
// based on the rule of highlight.js.
|
||||
func FileNameToHighlightClass(fname string) string {
|
||||
|
@ -76,5 +88,10 @@ func FileNameToHighlightClass(fname string) string {
|
|||
return ext[1:]
|
||||
}
|
||||
|
||||
name, ok := highlightMapping[ext]
|
||||
if ok {
|
||||
return name
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import (
|
|||
"github.com/gogits/gogs/modules/middleware"
|
||||
"github.com/gogits/gogs/modules/setting"
|
||||
"github.com/gogits/gogs/modules/ssh"
|
||||
"github.com/gogits/gogs/modules/template"
|
||||
"github.com/gogits/gogs/modules/user"
|
||||
)
|
||||
|
||||
|
@ -55,6 +56,7 @@ func NewServices() {
|
|||
// GlobalInit is for global configuration reload-able.
|
||||
func GlobalInit() {
|
||||
setting.NewContext()
|
||||
template.NewContext()
|
||||
log.Trace("Custom path: %s", setting.CustomPath)
|
||||
log.Trace("Log path: %s", setting.LogRootPath)
|
||||
models.LoadConfigs()
|
||||
|
|
Reference in a new issue