Blog | 代码显示/隐藏
缘由
最近在写技术博客时,引入的代码太多,影响观感。 在尽力减少代码量,还是有些不可或缺的代码,代码量很惊人,已经占满整个屏幕.
因为个人博客是使用hugo生成的静态博客,我刚开始想的使用原生的js和css来实现,奈何技术不足,我是做后端的,一度想放弃
后面还是在网上发现h5有个新的标签<details><summary></summary></details>
可以实现显示/隐藏的功能。
每篇博客是markdown写的,再使用hugo生成出静态的html, 怎么结合到静态博客上呢,咱肯定不会手动的一个一个的贴标签上去, hugo有shortcodes的功能结合这个新标签可以满足我的需求
代码显示/隐藏
使用shortcodes+details标签
在目录 themes/[themename]/layouts/shortcodes
下新建code.html
文件,内容如下
html
<details {{ with .Get 1}} open="" {{else}} {{ end }} >
<summary style="background-color:#f5f5f5;border:1px solid #d2d2d2;padding:5px;">
{{ with .Get 0}}{{.}}{{else}} 代码 {{ end }}
</summary>
{{.Inner}}
</details>
- {{ with .Get 0}}{{.}}{{else}} 代码 {{ end }} : 意思是获取第0位的参数,参数为真则输出,否则输出"代码"
- {{ with .Get 1}} open="" {{else}} {{ end }} : 获取第1位的参数,参数为真则输出 “open=""”, 否则为空
- 如果第1位参数为真,则打开detials标签,否则处于默认状态, 不打开标签
markdown代码引用的地方:
{{ % code "shell" "1" %}}"
$ lua astart.lua
start .....
<6,9>
<6,10>
<7,11>
end.....
{{ % /code %}}
- {{ 和 % 需要并在一起, % 和 }}需要并在一起, 否则hugo不会引用shortcodes下的code.html模版
效果如下:
代码
$ lua astart.lua
start .....
<6,9>
<6,10>
<7,11>
end.....
bilibili播放器
copy的DoIt主题的shortcodes
shortcodes/bilibili.html 文件内容如下
<div class="bilibili">
{{- if .IsNamedParams -}}
<iframe src="//player.bilibili.com/player.html?bvid={{ .Get `id` }}&page={{ .Get `p` | default 1 }}" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
{{- else -}}
<iframe src="//player.bilibili.com/player.html?bvid={{ .Get 0 }}&page={{ .Get 1 | default 1 }}" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
{{- end -}}
</div>
static/css/bilibili.css 文件内容如下
代码
.bilibili {
position: relative;
width: 100%;
height: 0;
padding-bottom: 75%;
margin: 3% auto;
text-align: center;
}
.bilibili iframe {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
}
引入自定义的bilibili.css, 在config.toml中加入如下参数值
customCSS = ['bilibili.css']
使用方式, {{<>}}
符号可以替换为{{%%}}
{{< bilibili BV1CP4y1H7SB >}}
Or
{{< bilibili id=BV1CP4y1H7SB >}}
参考
--完--
- 原文作者: 留白
- 原文链接: https://zfunnily.github.io/2021/12/shortcodes/
- 更新时间:2024-04-16 01:01:05
- 本文声明:转载请标记原文作者及链接