Hugo Markdownify 无法生成 <p> tag

在尝试为Stream页面利用Hugo Shortcodes添加新的movietv标签时,使用{{ .Inner | Markdownify }}无法正确对Markdown文本生成HTML<p>tag。

例如:

{{ $text .= "What a *nice* day!" }}
{{ $text | Markdownify}} -> What a <em>nice</em> day!

但我预期生成的应是:

{{ $text | Markdownify }} -> <p>What a <em>nice</em> day!</p>

这是个老问题Markdownify最主要被用来生成标题之类的inline元素,而不是类似段落的blocks。但很多Hugo主题都在使用Markdownify,所以一时想要用RenderString取代也不太可能

在我的情况中,先识别是否存在<p>tag的方式:

{{ $markdown := .intro | markdownify }}

{{ if not ( strings.Contains $markdown "<p>" ) }}
    <p>{{ $markdown }}</p>
{{ else }}
    {{ $markdown }}
{{ end }}

进一步匹配以hp开头的tag都可以:

{{ $markdown := .text | markdownify }}

{{ if not ( findRE "<[h|p][^>]*>" $markdown ) }}
    <p>{{ $markdown }}</p>
{{ else }}
    {{ $markdown }}
{{ end }}

Comment

Login via Github
No Login
Webmention

What is Webmention?

Hypothes.is