plainify関数とは
plainify - 公式ドキュメント - 文字列からHTMLタグを削除してプレインテキストを返す関数
例
{{ "<b>BatMan</b>" | plainify }} → "BatMan"
このようにHTMLタグが取り除かれた状態の文字列が返ってくる
今回の問題
{{ "Bat<br>Man" | plainify }} → "Bat\nMan"
このように<br>
を入れると削除ではなく\nに置換された状態で返ってくる
解決策
色々調べたがHugoにあまり詳しくないせいか単純な解決策は見つからなかった
今回は<br>
さえ消えてくれればよかったので
{{ replace "Bat<br>Man" "<br>" "" }} → "BatMan"
replace関数で<br>
を空文字列に置換する事で対処した
綺麗に解決できる方法ご存知の方がいればぜひコメントお願いします!
追記
ソースコード見てたら
content.go
var stripHTMLReplacer = strings.NewReplacer("\n", " ", "</p>", "\n", "<br>", "\n", "<br />", "\n")
こういう一行が処理にあったのでHTMLは全部消す(但し、これらは例外的に以下のように置換処理)って関数として納得するしか無いと思います... オプションとか無いし...
"\n" => " "
"</p>" => "\n"
"<br>" => "\n"
"<br />" => "\n"