修复Hugo静态生成器中忽略原始HTML的方法

756 阅读1分钟

在这个简短的教程中,了解是什么原因导致了原始HTML的承诺,以及如何修复它。

发布关于以下错误的解决方案

  • 在Hugo中添加原始HTML帖子不显示
  • HTML标签没有被解析到markdown文件中

雨果短代码将自定义HTML、javascript放在雨果内容文件的go HTML模板文件中,在雨果模板处理过程中产生处理HTML。

例如,我写了简码rawhtml,在内容页partial/shortcode/rawhtml.html中显示HTML代码。

{{.Inner}}

在content文件夹内,rawhtml短码被用在markdown文件中,如下图所示。 这将原始的html打印到html ui页面,你必须用短码包裹html代码。

<div styles="font-weight:700"> Inline styles example</div>

不知何故,短码什么也不显示,而且在生成的HTML中,原始HTML被提交为一个错误。

如果你在Hugo的短代码中使用HTMLjavascript ,在HTML中什么都不显示。在检查生成的HTML代码时,Hugo短码在HTML内容中显示 "raw HTML omitted"。

什么原因导致原始HTML

这个错误的原因是由于渲染的markdown不能理解你在短代码中的HTML。

从Hugo V.0.60开始,默认的markdown渲染器是Gold mark。

Goldmark渲染引擎默认忽略了原始HTML。所以你必须使用配置参数来告诉你。

这个解决方案可以让Markdown渲染器使用Goldmark渲染器,通过配置考虑原始HTML。

修复方法是在配置文件中加入 markup.goldmark.renderer.unsafe: true。

如果你正在使用config.yaml文件

markup:
  goldmark:
    renderer:
      unsafe: true

对于config.toml文件

[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true

总结

总而言之,要学会理解Goldmark的markdown渲染和忽略原始HTML,并对其进行修复。