@@ -357,7 +357,7 @@ type SiteInfo struct {
357357 BuildDrafts bool
358358 canonifyURLs bool
359359 relativeURLs bool
360- uglyURLs bool
360+ uglyURLs func ( p * Page ) bool
361361 preserveTaxonomyNames bool
362362 Data * map [string ]interface {}
363363
@@ -413,6 +413,9 @@ func newSiteInfo(cfg siteBuilderCfg) SiteInfo {
413413 multilingual : newMultiLingualForLanguage (cfg .language ),
414414 PageCollections : cfg .pageCollections ,
415415 Params : make (map [string ]interface {}),
416+ uglyURLs : func (p * Page ) bool {
417+ return false
418+ },
416419 }
417420}
418421
@@ -1035,6 +1038,24 @@ func (s *Site) initializeSiteInfo() {
10351038 multilingual = s .owner .multilingual
10361039 }
10371040
1041+ var uglyURLs = func (p * Page ) bool {
1042+ return false
1043+ }
1044+
1045+ v := s .Cfg .Get ("uglyURLs" )
1046+ if v != nil {
1047+ if vv , ok := v .(bool ); ok {
1048+ uglyURLs = func (p * Page ) bool {
1049+ return vv
1050+ }
1051+ } else {
1052+ m := cast .ToStringMapBool (v )
1053+ uglyURLs = func (p * Page ) bool {
1054+ return m [p .Section ()]
1055+ }
1056+ }
1057+ }
1058+
10381059 s .Info = SiteInfo {
10391060 Title : lang .GetString ("title" ),
10401061 Author : lang .GetStringMap ("author" ),
@@ -1052,7 +1073,7 @@ func (s *Site) initializeSiteInfo() {
10521073 BuildDrafts : s .Cfg .GetBool ("buildDrafts" ),
10531074 canonifyURLs : s .Cfg .GetBool ("canonifyURLs" ),
10541075 relativeURLs : s .Cfg .GetBool ("relativeURLs" ),
1055- uglyURLs : s . Cfg . GetBool ( " uglyURLs" ) ,
1076+ uglyURLs : uglyURLs ,
10561077 preserveTaxonomyNames : lang .GetBool ("preserveTaxonomyNames" ),
10571078 PageCollections : s .PageCollections ,
10581079 Menus : & s .Menus ,
0 commit comments