サンプル:ショートコードリファレンス の実際の動作確認ページです。


タブ(Tabs / Tab コンポーネント)

<Tabs><Tab label="..."> を組み合わせてタブ切り替えを作れます。
タブ内で Markdown が完全に使えます(テーブル・コードブロック・ショートコードも可)。

snsn-codex は静的サイトジェネレーター Astro をベースに構築された個人向け Wiki です。

主な特徴:

  • Markdown / MDX でページを書くだけで生成
  • WikiLink でページ間をリンク
  • グラフビューで知識の繋がりを可視化
  • Pagefind による全文検索
npm install
npm run dev    # 開発サーバー(http://localhost:4321)
npm run build  # 本番ビルド + Pagefind インデックス生成

src/content/wiki/ に Markdown ファイルを置くだけで動作します。

src/styles/theme.css の CSS 変数を書き換えると配色を変更できます。

:root {
  --color-accent: #e11d48;  /* ローズ系に変更 */
}

モノクロテーマは src/styles/theme-mono.css を参照してください。

テーマ変更は theme.css の1行を書き換えるだけです。

脚注

脚注は本文中に <Ref id="..." /> を置き、ページ末尾に <Fn id="..."> で対応する注釈を定義します [1]
番号にホバーするとポップアップ、クリックすると末尾欄にスクロールします [2]


他ページの埋め込み(トランスクルージョン)

<Include slug="スラッグ" /> で他の Wiki ページの内容をそのまま埋め込めます。
下記は 入門 ページの内容を埋め込んでいます。

セットアップ

# クローン後、依存関係をインストール
npm install

# 開発サーバー起動(http://localhost:4321)
npm run dev

# 本番ビルド(Pagefind検索インデックスも同時生成)
npm run build

# ビルド結果のプレビュー
npm run preview

ページの作成

src/content/wiki/ にMarkdownファイルを置くだけでページになります。

---
title: "ページタイトル"
description: "短い説明(任意)"
tags: ["タグ1", "タグ2"]
category: "カテゴリ名"
date: 2024-01-01
updated: 2024-06-01
---

本文をここに書きます。[[他のページ]] へのWikiLinkも使えます。

frontmatter の主なフィールド

フィールド説明
titlestringページタイトル(必須)
descriptionstring短い説明文(任意)
tagsstring[]タグの配列
categorystringカテゴリ名
datedate作成日
updateddate更新日
draftbooltrue で下書き(非公開)
[[ページ名]]                 → ページへのリンク
[[ページ名|表示テキスト]]    → カスタムテキストでリンク
[[サブフォルダ/ページ名]]    → サブフォルダのページへリンク

バックリンク(そのページへのリンク一覧)はページ下部に自動表示されます。

ディレクトリ構成

コンテンツは src/content/wiki/[lang]/ 配下のリソースとして管理されます。 サブディレクトリでさらに整理することも可能です。

src/content/wiki/
├── ja/                → 日本語 (ルート)
│   ├── index.mdx      → /wiki/ja
│   ├──入门.mdx         → /wiki/ja/getting-started
│   └── recipes/
│       └── pasta.mdx  → /wiki/ja/recipes/pasta
└── en/                → 英語
    └── index.mdx      → /wiki/en

src/content/wiki/templates/ 内のファイルはテンプレート扱いとなり、通常ページとしては公開されません。

多言語対応 (i18n)

詳細は サンプル:多言語対応(i18n) を参照してください。 自動フォールバック機能により、翻訳がない場合は日本語版が自動的に表示されます。

サイドバーのカスタマイズ

src/data/sidebar-nav.ts を編集してサイドバー構成を変更できます。

// 手動でリンクを並べる
{
  title: 'ガイド',
  icon: 'fa-solid fa-book',
  items: [
    { slug: 'getting-started', label: 'はじめかた' },
    { slug: 'shortcode-reference', label: 'ショートコード' },
  ],
},

// カテゴリを自動収集
{
  title: 'レシピ',
  icon: 'fa-solid fa-utensils',
  category: 'レシピ',
  autoSort: 'title',
},

GitHub Pages への公開

  1. GitHubリポジトリを作成し、コードをpush
  2. Settings → Pages → SourceGitHub Actions を選択
  3. サブパス(/repo-name)を使う場合は Settings → Variables に以下を設定:
    • SITE_URL : https://username.github.io
    • BASE_PATH : /repo-name
  4. main ブランチにpushすると自動デプロイ

カスタムドメインや username.github.io をルートで使う場合は BASE_PATH の設定は不要です。

サンプル:ショートコードリファレンス へ続く →


src/data/navboxes.ts にナビゲーションボックスを定義し、id で呼び出します。

<Navbox id="example-navbox" />

関連ページ


注釈

[1] 脚注テキストはここに書きます。本文中の番号にホバーするとポップアップで表示されます。
[2] 「↩」で参照元に戻れます。