这篇文章演示怎么在文章里嵌 B 站视频。视频托管在 B 站,本站只负责放一个 16:9 的播放器,
所以不占服务器流量、不用自己转码,手机上也能正常看,提醒自己用。
最简写法
在 Markdown 正文里写一行:
{{< bilibili BV1xx411c7mD >}}
渲染出来就是下面这样(示例用的是 B 站官方的测试视频,换成你自己的 BV 号即可):
换成自己的视频
BV 号在 B 站视频页的地址栏里,形如 https://www.bilibili.com/video/BV1xx411c7mD/,
BV 开头那一串字母数字就是。
可选参数
| 参数 | 说明 | 默认值 |
|---|---|---|
bvid(或第 1 个位置参数) | 视频的 BV 号,必填 | — |
p | 第几个分 P | 站方默认(第 1 P) |
autoplay | 1 打开自动播放 | 0 |
danmaku | 0 关闭弹幕 | 站方默认 |
caption | 播放器下方的图注 | 无 |
带参数的写法(注意:位置参数和命名参数不能混用,要么全用命名参数,要么只用第一个位置参数):
{{< bilibili bvid="BV1xx411c7mD" p="1" autoplay="0" caption="第一期:开箱" >}}
小提示:想同时展示短代码本身和渲染结果时,用
{{< … >}}把短代码包起来, 这样它会被当成普通文本显示,而不是被执行(本文上半部分就是这么写的)。
实现说明
- 短代码文件:
layouts/_shortcodes/bilibili.html - 播放器地址:
https://player.bilibili.com/player.html?bvid=…&autoplay=0&high_quality=1 - 外层容器
.fc-video用 CSS 的aspect-ratio: 16 / 9做自适应,样式在assets/css/extended/fluent.css iframe带loading="lazy",首屏不会因为视频变慢
一点取舍
- 优点:不用自己托管视频,B 站自带多码率与 CDN,国内外都能看;
- 缺点:播放器是 B 站的域名,页面会加载
player.bilibili.com的脚本与样式; 非常在意隐私或加载速度时,可以考虑先把视频传到 B 站、只在文章里放一个链接 + 封面图。
