メインコンテンツへスキップ

Blowfish Shortcode

·887 文字·5 分
Blowfishテーマ カスタムショートコードガイド

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 >}}
🐦
Twitter で私をフォローするのを忘れないでください。

例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 など)。

{{< button href="#button" target="_self" >}}
アクションを呼び出す
{{< /button >}}

carousel

複数の画像をスライドショー形式で表示します。

パラメータ

パラメータ 説明
images 必須 画像のリストまたはファイルパスの正規表現。
aspectRatio オプション アスペクト比 (16-9, 21-9, 32-9)。デフォルト: 16-9
interval オプション 自動スクロール間隔 (ミリ秒)。デフォルト: 2000

例1: 画像リスト

{{< carousel images="{image1.jpg, image2.png, ...}" >}}
(画像カルーセル表示エリア - 画像1, 画像2, ...)

例2: 正規表現とカスタム設定

{{< carousel images="gallery/*" aspectRatio="21-9" interval="2500" >}}
(画像カルーセル表示エリア - gallery/ 内の全画像, 21:9, 2.5秒間隔)

chart

Chart.jsを使用して記事内にグラフを埋め込みます (注: このHTML単体ではグラフ描画は行われません)。

例: 棒グラフ

{{< chart >}}
type: 'bar',
data: {
  labels: ['トマト', 'ブルーベリー', 'バナナ', 'ライム', 'オレンジ'],
  datasets: [{
    label: '# 投票数',
    data: [12, 19, 3, 5, 3],
  }]
}
{{< /chart >}}
(ここに棒グラフが表示されます - データ: トマト 12, ブルーベリー 19, ...)

実際の表示には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" >}}
📦
nunocoracao/blowfish
⭐ Stars: N/A Forks: N/A Lang: N/A

例: GitLabカード

{{< gitlab projectID="278964" >}}
📦
gitlab-org/gitlab (ID: 278964)
⭐ Stars: N/A Forks: N/A

figure

最適化された画像表示機能を提供します。キャプションやリンクも追加可能です。

主なパラメータ

パラメータ 説明
src 必須 画像のパスまたはURL。
alt オプション 画像の代替テキスト。
caption オプション 画像下のキャプション (Markdown可)。
href オプション 画像をリンクにするURL。
nozoom オプション trueで画像ズーム機能を無効化。
class オプション 画像に追加するCSSクラス。

{{< figure src="abstract.jpg" alt="抽象的な紫のアートワーク" caption="Photo by Jr Korpa" >}}

![抽象的な紫のアートワーク](abstract.jpg "Photo by Jr Korpa")
抽象的な紫のアートワーク (abstract.jpg)

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
$$

インライン数式:

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 >}}
📦 Git & Version Control 💻 Problem Solving
Standalone Keyword

lead

記事の導入部分(リード文)を強調表示します。

{{< lead >}}
これは記事の重要な導入文です。読者の注意を引きつけます。
{{< /lead >}}

これは記事の重要な導入文です。読者の注意を引きつけます。

list

最近の記事や特定の条件に合う記事のリストを表示します。

パラメータ

パラメータ 説明
limit 必須 表示する記事数。
title オプション リストのタイトル。デフォルト: "Recent"。
cardView オプション trueでカード形式表示。デフォルト: false
where オプション フィルタリングするパラメータ名 (例: Type, Section)。
value オプション whereで指定したパラメータの値 (例: sample, posts)。

例1: 最近の記事 (デフォルト表示)

{{< list limit=2 >}}

例2: 特定タイプの記事をカード表示

{{< list title="サンプル" cardView=true limit=3 where="Type" value="sample" >}}

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" >}}
#647
#3b8
#06b

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 >}}
重要
イベント開始
2023年
最初のステップです。
💻
開発フェーズ
2024年
機能開発を行いました。
  • 機能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" >}}
動画のタイトル (130秒から開始)