问题描述
我正在与 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/
好奇的是,有一个相反的函数可以“人性化”字符串并在删除分隔符并大写第一个字母的情况下返回它: