Hugo - 取一个视频标题并将其变成 URL

Hugo - Taking a video title and turning it into a URL

我正在使用 Hugo 并有一个用例,其中有很多不同的视频标题都遵循大致相同的考虑因素:

到目前为止,我已经写出了以下代码,我正在尝试弄清楚如何简化它。

                          {{ $step1_title := replace .title "_" " " }}
                          {{ $step2_title := replace $step1_title " - " "-" }}
                          {{ $step3_title := replace $step2_title "?" "" }}
                          {{ $step4_title := replace $step3_title "." "-" }}
                          {{ $step5_title := replace $step4_title " " "-" | lower }}
                          {{ $step5_title }}

这似乎是很多步骤,并没有考虑到两者?和 !。我假设 replaceRE 更适合该步骤,但它无法识别使用 [?]|[!] 定义的那些字符。任何使上述更有效的指示将不胜感激。

对于正在寻找答案的其他人 - Hugo 实际上有一个名为 urlize 的内置函数,它就是这样做的!

https://gohugo.io/functions/urlize/

出于好奇,有一个相反的函数可以使字符串“人性化”,returns 它删除分隔符并将第一个字母大写:

https://gohugo.io/functions/humanize/