您当前的位置:首页 >> 大数据 >  正文
看热讯:Hugo 网站优化(8): 书房装上了小电视, 使用 hugo shortcodes 支持 bilibili 视频播放
来源: 腾讯云      时间:2023-01-07 22:16:31

Hugo 网站优化(8): 书房装上了小电视, 使用 hugo shortcodes 支持 bilibili 视频播放

原文链接:https://tangx.in/posts/2023/01/04/hugo-bilibili-support/

在学习的时候希望资料和笔记内容都能在一起。这样 查阅、回顾起来就更方便了。


【资料图】

hugo 短代码(shortcodes) 模版

在搜索的时候, 找到 利用hugo的短代码功能插入b站视频并且自适应[1]了这篇文章, 实现了嵌入 Bilibili 的播放器。

进一步查询 hugo - 短代码[2]hugo - 自定义段代码模版[3], 并参考原文。

终于实现了, 在书房看电视的方案。

Bilibili 视频引用语法

在书房中看电视的语法规则。

支持两个参数

视频ID视频地址合集视频中的 第N集, 默认值为 1。

支持两种语法

具名语法, 根据参数名传递。src: 视频ID 或 地址page: 分集

named-grammar

建议使用 具名语法, 这样在 markdown 中跳转更方便。

匿名语法, 根据参数位置传递。参数1: 视频ID 或 地址参数2: 分集

unnamed-grammar

仅仅是为了保留语法与兼容性考虑。

代码实现

主题代码中, 添加 layouts/shortcodes/.html。这里的 name就是以后 Markdown中的引用名字。例如, bilibili.html复制代码
{{-$dest:=(.Get0)-}}{{if.IsNamedParams}}{{$dest=(.Get"src")}}{{end}}{{if(hasPrefix$dest"http")}}{{$dest=(strings.TrimPrefix"http"$dest)}}{{$url:=urls.Parse$dest}}{{$dest=$url.Path}}{{$dest=(path.BaseName$dest)}}{{end}}{{-$page:=(.Get1)-}}{{if.IsNamedParams}}{{$page=(.Get"page")}}{{end}}{{if(not$page)}}{{$page=1}}{{end}}本视频一切权利归bilibili原作者所有如果觉得好,请点击跳转到bilibili给予支持{{$dest}}
<iframesrc="//player.bilibili.com/player.html?bvid={{$dest}}&page={{$page}}"scrolling="no"border="0"frameborder="no"framespacing="0"allowfullscreen="true"style="position:absolute;height:100%;width:100%;"></iframe>

这里面使用了几个内置函数

hugo 解析字符串 URL: https://gohugo.io/functions/urls.parse/hugo 获取 BaseName: https://gohugo.io/functions/path.basename/

测试视频: 跟着王老师作牛肉饼

点击 查看原文查看实际效果

还是很安逸了

参考资料

[1]

利用hugo的短代码功能插入b站视频并且自适应: https://www.bilibili.com/read/cv15198621

[2]

hugo - 短代码: https://gohugo.io/content-management/shortcodes/

[3]

hugo - 自定义段代码模版: https://gohugo.io/templates/shortcode-templates/

上一篇:如何更好的输出应用日志

下一篇:最后一页

精彩推荐

X 关闭

X 关闭