让Hugo支持音频和视频
文章目录
前言
前段时间写 MoviePy 系列博客的时候,要把处理的视频效果展示出来,我按照图片的写法去写视频发现并不能渲染出来,然后又用 HTML 的方式发现还是不行,经过一番研究找到了办法。
渲染 HTML
按照图片的方式不能渲染视频,我第一时间就想到了使用 html ,于是我在 markdown 中这么写
|
|
然后使用 hugo 生成文章,发现还是不能渲染视频,这就纳闷了,我记得 markdown 是可以直接渲染 html 的,怎么不行了。
使用浏览器的检查来查看发现确实 video 这个标签都没有,被替换成下面这样
|
|
经过一番搜索,原来是 hugo 为了安全默认不能直接渲染,如果要渲染需要在博客的配置 config.toml 中加入如下配置
|
|
修改之后再次使用 hugo 生成新的文章就可以显示视频了。音频也一样。
shortcode
除了上面的方法还可以使用 shortcode 来实现,最开始找了好久都没办法,所以采用了这个办法。
由于我使用的主题 even 没有实现音视频的 shortcode 所以要自己实现
在你主题的 layouts/shortcode 目录下新建 video.html 文件,内容如下
|
|
然后在 makrdown 中这么使用
{{< video src=“input.mp4” type=“video/mp4” preload=“auto” >}}
重新生成文章就能渲染视频了。
音频的类似,在主题的 layouts/shortcode 下新建 audio.html ,内容如下
|
|
在 markdown 中可以这么写
{{< audio src=“input.mp3” type=“audio/mp3” preload=“auto” >}}
同样重新渲染就能显示音频了。
总结
两种方法各有优劣,我目前使用的是 shortcode 方法,少写很多代码,这样不容易出错。
还可以方便定制,对参数进行处理。
第一种方法就要多谢一些模板代码了,和写 html 没有区别,只有几个还能接受,多了就麻烦了。
不过这样写比较直观,如果写错了很容易就可以发现问题。 shortcode 就稍微麻烦,出错了还有可能是引擎的问题,需要不断调试。