Skip to content

静的サイト生成 ​

対応状況: 標準。 VitePress は bun run build で Markdown を静的 HTML に生成します。このページはローカルの型付き comparison.data.ts ローダーを読み、ビルド時に検出した日本語評価ページの情報を描画します。

HTML を先に配信し、必要なら対話性を加える ​

VitePress は初回訪問時に事前レンダリング済みの静的 HTML を配信し、その後 Vue SPA として hydration します。基本本文は JavaScript なしでも読めますが、ローカル検索、テーマ操作、Vue の Counter、Mermaid、クライアント側ナビゲーションには JavaScript が必要です。公式ドキュメントで mpa: true は明示的に experimental です。既定では 0kb JavaScript を配信しますが、明示的にクライアントスクリプトを有効化しない限り SPA ナビゲーションと Vue のイベントハンドラーを失います。このサンプルではコンポーネントとプラグインによる対話性を示すため、有効にしていません。

ビルド時に得たデータ

日本語の評価ページ数: 15

  • asset-placement
  • customization
  • dark-mode
  • docs-directory
  • documentation-richness
  • gfm
  • i18n
  • image-optimization
  • markdown-extensions
  • mdx-mdc
  • mermaid
  • repo-complexity
  • search
  • sidebar-generation
  • ssg

このデータは .vitepress/comparison.data.ts がローカル Markdown の frontmatter を走査して作ります。外部 API、時刻、乱数、ネットワーク要求を使わないため、同じ入力から決定的に再生成できます。

静的と動的の境界

上の Vue テンプレートはビルド時データをもとに HTML を生成します。Counter のような対話的コンポーネントは、配信後にクライアント側の Vue で動作します。

bun run build の出力は .vitepress/dist/ であり、リポジトリーには追跡しません。