]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Add titleCaseStyle none and firstupper
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 5 Jul 2023 17:32:57 +0000 (19:32 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 5 Jul 2023 18:35:20 +0000 (20:35 +0200)
Fixes #11204

docs/content/en/getting-started/configuration.md
helpers/general.go
helpers/general_test.go

index 05465967ae62971044b3c6d0aa825ba5b8e979d2..477edc1c488b53af810d5b079c31ac289110db1f 100644 (file)
@@ -623,7 +623,13 @@ status = 404
 
 Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. 
 
-By default, Hugo adheres to the capitalization rules in the [Associated Press (AP) Stylebook]. Set `titleCaseStyle` to `chicago` if you would prefer to follow the [Chicago Manual of Style], or set if to `go` to use Go's convention of capitalizing every word.
+Can be one of:
+
+* `ap` (default),  the capitalization rules in the [Associated Press (AP) Stylebook]
+* `chicago`, the [Chicago Manual of Style]
+* `go`, Go's convention of capitalizing every word.
+* `firstupper`, capitalize the first letter of the first word.
+* `none`, no capitalization.
 
 [Associated Press (AP) Stylebook]: https://www.apstylebook.com/
 [Chicago Manual of Style]: https://www.chicagomanualofstyle.org/home.html
index d476b9125631f73a22fc6c9a8df72920ce865968..f8f273397dddbdb1ced94e434d6b2ac26f7a0800 100644 (file)
@@ -205,6 +205,8 @@ func ReaderContains(r io.Reader, subslice []byte) bool {
 // - "Go" (strings.Title)
 // - "AP" (see https://www.apstylebook.com/)
 // - "Chicago" (see http://www.chicagomanualofstyle.org/home.html)
+// - "FirstUpper" (only the first character is upper case)
+// - "None" (no transformation)
 //
 // If an unknown or empty style is provided, AP style is what you get.
 func GetTitleFunc(style string) func(s string) string {
@@ -214,6 +216,10 @@ func GetTitleFunc(style string) func(s string) string {
        case "chicago":
                tc := transform.NewTitleConverter(transform.ChicagoStyle)
                return tc.Title
+       case "none":
+               return func(s string) string { return s }
+       case "firstupper":
+               return FirstUpper
        default:
                tc := transform.NewTitleConverter(transform.APStyle)
                return tc.Title
index 827411027245d84d0292a375057183fce85fcbc3..1463458fa4f7d4170836a9c92fa8c19e9e160d2e 100644 (file)
@@ -203,7 +203,7 @@ func TestReaderContains(t *testing.T) {
 }
 
 func TestGetTitleFunc(t *testing.T) {
-       title := "somewhere over the rainbow"
+       title := "somewhere over the Rainbow"
        c := qt.New(t)
 
        c.Assert(helpers.GetTitleFunc("go")(title), qt.Equals, "Somewhere Over The Rainbow")
@@ -213,6 +213,8 @@ func TestGetTitleFunc(t *testing.T) {
        c.Assert(helpers.GetTitleFunc("ap")(title), qt.Equals, "Somewhere Over the Rainbow")
        c.Assert(helpers.GetTitleFunc("")(title), qt.Equals, "Somewhere Over the Rainbow")
        c.Assert(helpers.GetTitleFunc("unknown")(title), qt.Equals, "Somewhere Over the Rainbow")
+       c.Assert(helpers.GetTitleFunc("none")(title), qt.Equals, title)
+       c.Assert(helpers.GetTitleFunc("firstupper")(title), qt.Equals, "Somewhere over the Rainbow")
 }
 
 func BenchmarkReaderContains(b *testing.B) {