Hugoで独自のShortcodeを作成する
参考資料
Create Your Own Shortcodes | HUGO
基本手順
HTMLのテンプレートを作成する
下記shortcodesディレクトリに、HTMLファイルを作成します。
作成したファイルの拡張子を除いた文字列が、Shortcode名になります。
/layouts/shortcodes/<SHORTCODE>.html
Shortcodeを使用する
Markdownファイル内で以下のように記述すると、Shortcodeを使用できます。
{{< SHORTCODE >}}
応用 値を受け渡す方法
方針として、ざっくり以下の2つ。
- Positional Parameters … 要するに位置で指定する方針
- Named Parameters … 要するに名前で指定する方針
以下の応用例では、
Shortcode名はmyshortcode
とします。
つまり、/layouts/shortcodes/myshortcode.html
をHTMLテンプレートとして用意した想定です。
すべての出力結果は以下の通りです。
miajimyu
100
応用例 .Getを使用する例
パターン1: Positional Parameters
Shortcode使用側
/content/markdown.mdの中に、
以下の様に記述する。
{{< myshortcode miajimyu 100 >}}
HTMLのテンプレート側
/layouts/shortcodes/myshortcode.html
{{ .Get 0 }}
<br>
{{ .Get 1 }}
パターン2: Named Parameters
Shortcode使用側
/content/markdown.md
{{< myshortcode user=“miajimyu” id=“100” >}}
HTMLのテンプレート側
/layouts/shortcodes/myshortcode.html
{{ .Get "user" }}
<br>
{{ .Get "id" }}
応用例 index .Paramsを使用する例
Positional Parameters
Shortcode使用側
/content/markdown.mdの中に、
以下の様に記述する。
{{< myshortcode miajimyu 100 >}}
HTMLのテンプレート側
/layouts/shortcodes/myshortcode.html
{{ index .Params 0 }}
<br>
{{ index .Params 1 }}
Named Parameters
Shortcode使用側
/content/markdown.md
{{< myshortcode user=“miajimyu” id=“100” >}}
HTMLのテンプレート側
/layouts/shortcodes/myshortcode.html
{{ index .Params "user" }}
<br>
{{ index .Params "id" }}
スポンサーリンク