Skip to content
Copied!
published on 2026-09-11

1. 公式 Navbar を採用しない理由

Docsify の公式 Navbar は,ドキュメント内のページを案内するための機能です。loadNavbar: true を設定して _navbar.md を配置すると,Markdown から #app 内の .app-nav が生成されます。リンクは Docsify のハッシュルーティングを前提とし,狭い画面ではサイドバーへ統合できます。この構成は,同一ドキュメント内のページを並べる用途に適しています。

これに対して,Real Terms が必要とするのはサイト横断ナビゲーションです。emotiongraphics.jp のホーム,Real Terms(/ai/),Significant Bit(/docs/),About を相互に接続するため,リンクには Docsify の #/… ではなく,オリジン相対の通常 URL を使用します。また,高さを 64px に固定し,ページを下方向へスクロールしたときは非表示にします。狭い画面では,VitePress 側と共通するハンバーガーメニューに外観切替と言語切替を収容します。ロゴのリンク先は,媒体である Real Terms ではなく,発行元である eMotionGraphics のホームです。

公式 Navbar とサイトナビゲーションを併用すると,次の競合が生じます。

  • 高さ
    ベンダー CSS の --navbar-height4em です。サイトナビゲーションは高さを 64px とし,本文の padding-top と固定サイドバーの top に同じ値を使用します。両方のナビゲーションを配置すると,本文とサイドバーのオフセットが一致しません。
  • 重ね順
    .app-navz-index は 20,サイドバーは 60 です。サイトナビゲーションは通常時を 40,メニュー展開時を 60 としているため,公式 Navbar を追加すると狭い画面のオーバーレイと競合します。
  • 狭い画面
    Docsify は .app-nav を非表示にし,リンクをサイドバーへ統合できます。一方,VitePress 側と共通するハンバーガーメニューは全画面パネルであり,検索や記事目次とは役割が異なります。両者を統合すると,サイト間の導線とドキュメント内の導線を区別できません。

以上の理由から,Real Terms の $docsify には loadSidebar: true を設定し,loadNavbar は指定していません。_navbar.md も配置せず,Navbar 用のプラグインも使用しません。HTML シェルがライブラリとして読み込むのは,プロジェクト内に保持している docsify.min.js と,公式の search.min.js だけです。

サイトナビゲーションは,次の二つのファイルで構成します。

  • site/app.js
    ensureSiteNav()header.eg-site-nav を生成し,Docsify プラグインの siteChrome から呼び出します。
  • site/theme.css
    Site navbar (eMotionGraphics chrome) セクションで,固定配置,スクロール時の表示制御,768px 以下で使用するハンバーガーメニューを定義します。

Docsify の責任範囲は,サイドバー,検索,ハッシュルーティング,auto2top,記事本文のレンダリングです。これに対して,サイト横断の導線は Docsify のレンダリング領域から分離します。次章では,サイトナビゲーションを生成する時点と挿入先を説明します。