diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-30 17:46:04 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-07-31 22:16:46 +0200 |
commit | 8fb594bfb090c017d4e5cbb2905780221e202c41 (patch) | |
tree | f622b6aa90757827ea8f07cc27be692fb37b76c4 /hugolib | |
parent | 9b4170ce768717adfbe9d97c46e38ceaec2ce994 (diff) |
Make the title case style guide configurable
This works for the `title` func and the other places where Hugo makes title case.
* AP style (new default)
* Chicago style
* Go style (what we have today)
Fixes #989
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/config.go | 1 | ||||
-rw-r--r-- | hugolib/site.go | 11 |
2 files changed, 10 insertions, 2 deletions
diff --git a/hugolib/config.go b/hugolib/config.go index e70d07756..8f3625331 100644 --- a/hugolib/config.go +++ b/hugolib/config.go @@ -101,6 +101,7 @@ func loadDefaultSettingsFor(v *viper.Viper) { v.SetDefault("canonifyURLs", false) v.SetDefault("relativeURLs", false) v.SetDefault("removePathAccents", false) + v.SetDefault("titleCaseStyle", "AP") v.SetDefault("taxonomies", map[string]string{"tag": "tags", "category": "categories"}) v.SetDefault("permalinks", make(PermalinkOverrides, 0)) v.SetDefault("sitemap", Sitemap{Priority: -1, Filename: "sitemap.xml"}) diff --git a/hugolib/site.go b/hugolib/site.go index 47c2af453..629881856 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -132,6 +132,9 @@ type Site struct { // Logger etc. *deps.Deps `json:"-"` + // The func used to title case titles. + titleFunc func(s string) string + siteStats *siteStats } @@ -172,6 +175,7 @@ func (s *Site) reset() *Site { return &Site{Deps: s.Deps, layoutHandler: output.NewLayoutHandler(s.PathSpec.ThemeSet()), disabledKinds: s.disabledKinds, + titleFunc: s.titleFunc, outputFormats: s.outputFormats, outputFormatsConfig: s.outputFormatsConfig, mediaTypesConfig: s.mediaTypesConfig, @@ -227,11 +231,14 @@ func newSite(cfg deps.DepsCfg) (*Site, error) { return nil, err } + titleFunc := helpers.GetTitleFunc(cfg.Language.GetString("titleCaseStyle")) + s := &Site{ PageCollections: c, layoutHandler: output.NewLayoutHandler(cfg.Cfg.GetString("themesDir") != ""), Language: cfg.Language, disabledKinds: disabledKinds, + titleFunc: titleFunc, outputFormats: outputFormats, outputFormatsConfig: siteOutputFormatsConfig, mediaTypesConfig: siteMediaTypesConfig, @@ -2121,7 +2128,7 @@ func (s *Site) newTaxonomyPage(plural, key string) *Page { p.Title = helpers.FirstUpper(key) key = s.PathSpec.MakePathSanitized(key) } else { - p.Title = strings.Replace(strings.Title(key), "-", " ", -1) + p.Title = strings.Replace(s.titleFunc(key), "-", " ", -1) } return p @@ -2141,6 +2148,6 @@ func (s *Site) newSectionPage(name string) *Page { func (s *Site) newTaxonomyTermsPage(plural string) *Page { p := s.newNodePage(KindTaxonomyTerm, plural) - p.Title = strings.Title(plural) + p.Title = s.titleFunc(plural) return p } |