目录

主题加一个新的短路代码

适用版本
Hugo 0.146+
预计耗时
10 分钟
前置条件
会写一点 HTML,装好了 Hugo
目录

Hugo 的"短路代码"(shortcode)就是文章里能调用的小组件。这个主题自带十几个, 加一个新的只要三步。

第一步:写模板

新建 themes/hugo-theme-dayup/layouts/_shortcodes/我的控件.html:

<!--
Shortcode:我的控件
参数:
  title:卡片标题(必填)
使用示例:
{{< 我的控件 title="示例标题" >}}
这里放正文内容,支持markdown
{{< /我的控件 >}}
-->
<div class="my-widget">
  {{ .Get "title" }}
  {{ .Inner }}
</div>

第二步:加样式

样式统一放在 assets/css/components/article.css(正文相关)里, 类名前缀跟控件名一致,避免和别处冲突。

第三步:在文章里用

{{< 我的控件 title="标题" >}}
里面的内容,支持 Markdown。
{{< /我的控件 >}}

几个实用技巧

  • .Get "参数名" 取参数,.Inner 取夹在中间的内容
  • 想让参数默认值兜底:.Get "x" | default "默认值"
  • 需要把中间的内容当 Markdown 渲染:.Inner | markdownify
  • 注释要写在模板html文件里,写清楚怎么用

写完在演示文章里试一遍——短路代码写错了 Hugo 会直接报错, 早发现总是比发布后才发现更好。

← 返回技术