refactor(docs): replace deprecated strings.Title with cases.Title
strings.Title has been deprecated since Go 1.18 because it does not handle Unicode properly. Replace it with cases.Title from golang.org/x/text which correctly handles language-specific title casing. Applied to breadcrumb generation and document title formatting.
This commit is contained in:
@@ -7,13 +7,15 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"bookhoard/templates"
|
||||||
|
|
||||||
"github.com/yuin/goldmark"
|
"github.com/yuin/goldmark"
|
||||||
highlighting "github.com/yuin/goldmark-highlighting"
|
highlighting "github.com/yuin/goldmark-highlighting"
|
||||||
"github.com/yuin/goldmark/extension"
|
"github.com/yuin/goldmark/extension"
|
||||||
"github.com/yuin/goldmark/parser"
|
"github.com/yuin/goldmark/parser"
|
||||||
"github.com/yuin/goldmark/renderer/html"
|
"github.com/yuin/goldmark/renderer/html"
|
||||||
|
"golang.org/x/text/cases"
|
||||||
"bookhoard/templates"
|
"golang.org/x/text/language"
|
||||||
)
|
)
|
||||||
|
|
||||||
type DocsHandler struct {
|
type DocsHandler struct {
|
||||||
@@ -169,7 +171,7 @@ func (h *DocsHandler) generateBreadcrumb(docPath string) []templates.BreadcrumbI
|
|||||||
// Don't add the last part (current page)
|
// Don't add the last part (current page)
|
||||||
if i < len(parts)-1 {
|
if i < len(parts)-1 {
|
||||||
breadcrumb = append(breadcrumb, templates.BreadcrumbItem{
|
breadcrumb = append(breadcrumb, templates.BreadcrumbItem{
|
||||||
Title: strings.Title(strings.ReplaceAll(part, "-", " ")),
|
Title: cases.Title(language.English).String(strings.ReplaceAll(part, "-", " ")),
|
||||||
URL: "/docs" + path,
|
URL: "/docs" + path,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"bookhoard/templates"
|
"bookhoard/templates"
|
||||||
|
|
||||||
|
"golang.org/x/text/cases"
|
||||||
|
"golang.org/x/text/language"
|
||||||
)
|
)
|
||||||
|
|
||||||
// BuildNavigation creates the navigation structure from the docs filesystem
|
// BuildNavigation creates the navigation structure from the docs filesystem
|
||||||
@@ -100,7 +103,7 @@ func (h *DocsHandler) getDocTitle(docPath string) string {
|
|||||||
filename := parts[len(parts)-1]
|
filename := parts[len(parts)-1]
|
||||||
|
|
||||||
// Convert to title case
|
// Convert to title case
|
||||||
title = strings.Title(strings.ReplaceAll(filename, "-", " "))
|
title = cases.Title(language.English).String(strings.ReplaceAll(filename, "-", " "))
|
||||||
|
|
||||||
// Handle special cases
|
// Handle special cases
|
||||||
switch filename {
|
switch filename {
|
||||||
|
|||||||
Reference in New Issue
Block a user