メニュー(Menu)

这是第一个标签页的内容。
- 可以包含 Markdown
- **加粗**、`代码`等
export default {
  data () {
    return {
      msg: 'Removed' // [!code --]
      msg: 'Added' // [!code ++]
    }
  }
}
console.log('Not focused');
console.log('Focused') // [!code focus]
console.log('Not focused');
console.log('Not highlighted')
console.log('Highlighted') // [!code highlight]
console.log('Not highlighted')

ある人はブログを使ってドキュメントを書くことがあります(例えば今あなたが読んでいるこのページです)。通常、左側にはジャンプを助けるメニューバー/目次バーがあります。
だからKecareも、よりシンプルで統一されたメニューの書き方を提供していますにゃ~メニューはどこに置くの?

1. メニューはどこにあるのニャ?

Kecare では、メニューにも固定された配置場所があります:

  • メニューディレクトリ:テーマディレクトリ/.kecare/menus/

✅ このディレクトリに置くだけで、Kecareがスキャンして対応するメニューを生成できるにゃ~


2. 新しいメニューファイルを作成する(命名規則は重要ですよ)

メニューディレクトリに新規作成:*.menu.source.ts

例えば:

  • kecare-docs.menu.source.ts
  • milkio-docs.menu.source.ts

ファイル名の接頭辞(例:kecare-docs)は、記事のFront Matterで参照する menu になります。英語 + ハイフンを使用することをお勧めします、より安定しますにゃん~


3. メニューコンテンツの作成(navItemsのエクスポート)

メニューファイルで navItems をエクスポートし、型を NavItem[] とします:

import type { NavItem } from "kecare";

export const navItems: NavItem[] = [
  {
    text: "快速开始喵",
    level: 1,
    items: [
      {
        text: "快速开始",
        link: "./快速开始",
        level: 2,
      },
      {
        text: "写作",
        link: "./写作",
        level: 2,
      },
    ],
  },
  {
    text: "自定义",
    level: 1,
    items: [
      {
        text: "编写主题",
        link: "./编写主题",
        level: 3,
      },
    ],
  },
];

linkジャンプ先の記事パスを指します~ 一般的には、記事ページのルート(または記事のスラッグ)に対応し、相対形式で書かれるのが最も一般的です。例えば:

  • ./クイックスタート
  • ./執筆

4. 記事内でメニューを有効にするにゃ

メニューを表示する必要がある記事の .md ファイルの Front Matter に menu を追加します:

---
menu: kecare-docs # 这里只写文件名前缀,不用写 .menu.source.ts 喵~
---

対応するメニューファイルは:

  • テーマディレクトリ/.kecare/menus/kecare-docs.menu.source.ts

✅ 规则のまとめ:menu の値 = .menu.source.ts のファイル名の接頭辞だよ~


5. NavItem 结构说明にゃん

kecare では、NavItem は2種類のノードをサポートしています:

  • リーフノード:クリックしてジャンプ可能(link あり)
  • グループノード:分類としてのみ機能(items あり)

型定義(参考):

export type NavItem =
  | { text: string; link: string; level: number; desc?: string; icon?: string }
  | { text: string; items: NavItem[]; level: number };

FAQ(にゃんにゃんにゃん)

  • Q:一つの記事に複数のメニューを設定できますか? 通常、一つの記事は一つの menu にのみ紐付けられます。複数設定したい場合は、テーマ側の対応(例えばマージレンダリングなど)が必要です、にゃ~
  • Q:メニューファイルの名前は必ず \*.menu.source.ts にする必要がありますか? はいにゃ~ これは Kecare がメニューファイルをスキャンする際の命名規則です。ルールに従わないと認識されない可能性があります。
文章作者:
文章链接:kecare.me/articles/
版权声明: 博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源