Blowfishテーマのカスタムショートコードガイド
Blowfishテーマは、Hugoの標準ショートコードに加え、コンテンツ作成を豊かにするための独自のショートコードを提供します。この記事では、アラート、ボタン、ギャラリー、チャートなど、便利なカスタムショートコードの使い方を解説します。
alert
記事内にスタイリッシュなメッセージボックスを表示し、重要な情報を目立たせます。
パラメータ
| パラメータ | 説明 |
|---|---|
icon |
オプション 左端に表示するアイコン名(Font Awesomeなど)。デフォルト: exclamation triangle icon |
iconColor |
オプション アイコンの色 (CSS値)。デフォルト: カラースキーム依存。 |
cardColor |
オプション カードの背景色 (CSS値)。デフォルト: カラースキーム依存。 |
textColor |
オプション テキストの色 (CSS値)。デフォルト: カラースキーム依存。 |
例1: パラメータなし
{{< alert >}}
**警告!** この行為は破壊的です!
{{< /alert >}}
例2: 名前なしパラメータ (アイコン変更)
{{< alert "twitter" >}}
Twitter で私を[フォロー](https://twitter.com/nunocoracao)するのを忘れないでください。
{{< /alert >}}
例3: 名前付きパラメータ (色指定)
{{< alert icon="fire" cardColor="#e63946" iconColor="#1d3557" textColor="#f1faee" >}}
これはエラーです!
{{< /alert >}}
article
他のMarkdownファイルを現在の記事に埋め込みます。
パラメータ
| パラメータ | 説明 |
|---|---|
link |
必須 埋め込む記事への .RelPermalink。 |
例
{{< article link="/docs/welcome/" >}}
(ここに `/docs/welcome/` の内容が埋め込まれます)
badge
メタデータなどを表示するための小さなラベル(バッジ)を出力します。
例
{{< badge >}}
新しい記事!
{{< /badge >}}
button
クリック可能なアクションボタンを作成します。
パラメータ
| パラメータ | 説明 |
|---|---|
href |
オプション リンク先のURL。 |
target |
オプション リンクの開き方 (_blank, _self など)。 |
rel |
オプション リンクの関係性 (noopener など)。 |
carousel
複数の画像をスライドショー形式で表示します。
パラメータ
| パラメータ | 説明 |
|---|---|
images |
必須 画像のリストまたはファイルパスの正規表現。 |
aspectRatio |
オプション アスペクト比 (16-9, 21-9, 32-9)。デフォルト: 16-9。 |
interval |
オプション 自動スクロール間隔 (ミリ秒)。デフォルト: 2000。 |
例1: 画像リスト
{{< carousel images="{image1.jpg, image2.png, ...}" >}}
例2: 正規表現とカスタム設定
{{< carousel images="gallery/*" aspectRatio="21-9" interval="2500" >}}
chart
Chart.jsを使用して記事内にグラフを埋め込みます (注: このHTML単体ではグラフ描画は行われません)。
例: 棒グラフ
{{< chart >}}
type: 'bar',
data: {
labels: ['トマト', 'ブルーベリー', 'バナナ', 'ライム', 'オレンジ'],
datasets: [{
label: '# 投票数',
data: [12, 19, 3, 5, 3],
}]
}
{{< /chart >}}
実際の表示にはChart.jsライブラリが必要です。
codeimporter
外部URLからコードをインポートして表示します。
パラメータ
| パラメータ | 説明 |
|---|---|
url |
必須 外部コードファイルのURL。 |
type |
オプション コードの言語タイプ(シンタックスハイライト用)。 |
startLine |
オプション インポート開始行番号。 |
endLine |
オプション インポート終了行番号。 |
例: Goコード全体
{{< codeimporter url="...(略).../mdimporter.html" type="go" >}}
{{ $url := .Get "url"}}
{{ with resources.GetRemote (urls.Parse $url) }}
{{ .Content | markdownify }}
{{ else }}
{{ errorf "Mardown Importer Shortcode - Unable to get remote resource" . }}
{{ end }}
例: TOMLコード一部 (11-18行)
{{< codeimporter url="...(略).../hugo.toml" type="toml" startLine="11" endLine="18" >}}
enableRobotsTXT = true
summaryLength = 0
buildDrafts = false
buildFuture = false
enableEmoji = true
リポジトリカード (Codeberg, Forgejo, Gitea, GitHub, GitLab)
各種Gitホスティングサービスのリポジトリ情報をカード形式で表示します (注: 統計情報は静的なプレースホルダです)。
共通パラメータ (例: GitHub)
| パラメータ | 説明 |
|---|---|
repo |
必須 (GitHub, Codeberg, Forgejo, Gitea) username/repo形式のリポジトリ名。 |
projectID |
必須 (GitLab) GitLabの数値ProjectID。 |
server |
オプション (Forgejo, Gitea, GitLab) カスタムインスタンスのURL。 |
例: GitHubカード
{{< github repo="nunocoracao/blowfish" >}}
例: GitLabカード
{{< gitlab projectID="278964" >}}
figure
最適化された画像表示機能を提供します。キャプションやリンクも追加可能です。
主なパラメータ
| パラメータ | 説明 |
|---|---|
src |
必須 画像のパスまたはURL。 |
alt |
オプション 画像の代替テキスト。 |
caption |
オプション 画像下のキャプション (Markdown可)。 |
href |
オプション 画像をリンクにするURL。 |
nozoom |
オプション trueで画像ズーム機能を無効化。 |
class |
オプション 画像に追加するCSSクラス。 |
例
{{< figure src="abstract.jpg" alt="抽象的な紫のアートワーク" caption="Photo by Jr Korpa" >}}

Photo by Jr Korpa
gallery
複数の画像をレスポンシブなグリッドレイアウトで表示します。
内部で <img> タグを使用し、class="grid-wXX" で幅を指定します (例: grid-w33, grid-w50)。レスポンシブ対応も可能です (例: md:grid-w33)。
例: 通常のギャラリー (3列)
{{< gallery >}}
<img src="gallery/01.jpg" class="grid-w33" />
<img src="gallery/02.jpg" class="grid-w33" />
<img src="gallery/03.jpg" class="grid-w33" />
...
{{< /gallery >}}
icon
SVGアイコンを表示します。Font Awesomeなどのアイコンセットや、`assets/icons/` 内のカスタムアイコンを使用できます。
例
{{< icon "github" >}}
カスタムアイコンは assets/icons/ に配置し、ファイル名で参照します。
KaTeX
KaTeXを使用して数式を表示します (注: このHTML単体では数式レンダリングは行われません)。インライン (\\( ... \\)) とブロック ($$ ... $$) 表記をサポート。
例
{{< katex >}}
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
$$
E = mc^2
$$
インライン数式:
ブロック数式:
実際の表示にはKaTeXライブラリが必要です。
keyword / keywordList
重要な単語やスキルなどを視覚的に強調表示します。keywordList でグループ化できます。
パラメータ (keyword)
| パラメータ | 説明 |
|---|---|
icon |
オプション キーワードの前に表示するアイコン名。 |
例
{{< keywordList >}}
{{< keyword icon="github" >}} Git & Version Control {{< /keyword >}}
{{< keyword icon="code" >}} **Problem Solving** {{< /keyword >}}
{{< /keywordList >}}
{{< keyword >}} *Standalone* Keyword {{< /keyword >}}
Standalone Keyword
lead
記事の導入部分(リード文)を強調表示します。
例
{{< lead >}}
これは記事の重要な導入文です。読者の注意を引きつけます。
{{< /lead >}}
これは記事の重要な導入文です。読者の注意を引きつけます。
list
最近の記事や特定の条件に合う記事のリストを表示します。
パラメータ
| パラメータ | 説明 |
|---|---|
limit |
必須 表示する記事数。 |
title |
オプション リストのタイトル。デフォルト: "Recent"。 |
cardView |
オプション trueでカード形式表示。デフォルト: false。 |
where |
オプション フィルタリングするパラメータ名 (例: Type, Section)。 |
value |
オプション whereで指定したパラメータの値 (例: sample, posts)。 |
ltr / rtl
コンテンツ内で文字の書字方向(左から右 LTR / 右から左 RTL)を切り替えます。
例
- これは LTR です。
- هذه قائمة باللغة العربية (これはRTLです)
- 再び LTR です。
- これは LTR です。
- - هذه قائمة باللغة العربية (これはRTLです)
- 再び LTR です。
mdimporter
外部URLからMarkdownファイルをインポートして表示します。
パラメータ
| パラメータ | 説明 |
|---|---|
url |
必須 外部MarkdownファイルのURL。 |
例
{{< mdimporter url="https://raw.githubusercontent.com/user/repo/main/README.md" >}}
(ここに指定されたURLのMarkdownコンテンツがレンダリングされて表示されます)
Hi there 👋
- 🐳 Principal Product Manager @ Docker
- 🐡 Creator and maintainer of Blowfish
- ...
Mermaid
テキストベースで図やフローチャートを描画します (注: このHTML単体では描画されません)。
例: フローチャート
{{< mermaid >}}
graph LR;
A[入力] --> B(処理);
B --> C{結果};
{{< /mermaid >}}
実際の表示にはMermaidライブラリが必要です。
swatches
カラーコードを指定して、色見本(最大3色)を表示します。
例
{{< swatches "#64748b" "#3b82f6" "#06b6d4" >}}
timeline / timelineItem
職務経歴やプロジェクト履歴などの時系列イベントを表示します。timeline内にtimelineItemを配置します。
パラメータ (timelineItem)
| パラメータ | 説明 |
|---|---|
icon |
オプション 各項目のアイコン名。 |
header |
オプション 項目のメインタイトル。 |
subheader |
オプション 項目のサブタイトル(日付など)。 |
badge |
オプション 右上に表示するバッジテキスト。 |
例
{{< timeline >}}
{{< timelineItem icon="star" header="イベント開始" subheader="2023年" badge="重要" >}}
最初のステップです。
{{< /timelineItem >}}
{{< timelineItem icon="code" header="開発フェーズ" subheader="2024年" >}}
機能開発を行いました。
<ul><li>機能A</li><li>機能B</li></ul>
{{< /timelineItem >}}
{{< /timeline >}}
- 機能A
- 機能B
TypeIt
タイプライター風のアニメーションでテキストを表示します (注: このHTML単体ではアニメーションしません)。
主なパラメータ
| パラメータ | 説明 |
|---|---|
tag |
オプション 使用するHTMLタグ (例: h1, p)。 |
speed |
オプション タイピング速度 (ミリ秒)。 |
lifeLike |
オプション trueで人間らしい不規則な速度に。 |
loop |
オプション trueでアニメーションをループ。 |
breakLines |
オプション falseで文字列を置き換える。trueで改行して追加。 |
例1: シンプルテキスト
{{< typeit >}}
これはタイプライター効果です。
{{< /typeit >}}
例2: 複数行、ループ、置き換えなし
{{< typeit tag=h3 speed=50 breakLines=false loop=true >}}
"一行目のテキストです。"
"これは二行目。一行目を置き換えます。"
"そして三行目です。"
{{< /typeit >}}
"一行目のテキストです。"
(実際にはテキストが順番に表示され、置き換えられます)
youtubeLite
軽量なYouTube動画埋め込み機能を提供します。
パラメータ
| パラメータ | 説明 |
|---|---|
id |
必須 YouTube動画ID。 |
label |
オプション 動画のラベル (アクセシビリティ用)。 |
params |
オプション YouTubeプレーヤーパラメータ (例: start=60&controls=0)。 |
例1: 基本的な埋め込み
{{< youtubeLite id="動画ID" label="動画のタイトル" >}}
(クリックすると動画が読み込まれます)
例2: 開始時間を指定
{{< youtubeLite id="動画ID" label="動画のタイトル" params="start=130" >}}