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 }}

Respond on Mastodon, webmention this post, or contact me directly.

You can use Hypothes.is to select texts and highlight.

You've copied this page url!

Search it in your Mastodon server, and reply that toot by @fanrongbin.com@fanrongbin.com.