コンテンツにスキップ

mkdocs-toc-md

mkdocs-toc-md は、目次マークダウンを生成するプラグインです。 HTMLとして出力するためには、mkdocs buildコマンド実行前にmkdocs serve等で出力しておいてください。

PyPI

サンプル

File
Site

使い方

目次マークダウンを出力する

  1. プラグインをインストールしてください。
    pip install mkdocs-toc-md
    
  2. mkdocs.yml.へ設定を追加してください。

    Minimum

    plugins:
      - toc-md:
    

    Full

    plugins:
      - toc-md:
        toc_page_title: Contents
        toc_page_description: Usage mkdocs-toc-md
        header_level: 3
        pickup_description_meta: false
        pickup_description_class: false
        output_path: index.md
        output_log: false
        ignore_page_pattern: index.*.md$
        remove_navigation_page_pattern: index.*.md$
        template_dir_path: custom_template
        integrate_mkdocs_static_i18n: true
        languages:
          en:
            toc_page_title: Contents
            toc_page_description: Usage mkdocs-toc-md
          ja:
            toc_page_title: 目次
            toc_page_description: mkdocs-toc-mdプラグインの使い方
        shift_header: after_h1_of_index
        extend_module: true
        output_comment: html
    

  3. mkdocs serveを実行して、マークダウンファイルを出力してください。

概要説明を追加する

メタデータを使用して概要説明テキストが指定できます。toc_md_descriptionをキーとして、指定してください。

---
toc_md_description: このプラグインについて説明します。
---

また、次のオプションでも指定可能です。 pickup_description_meta pickup_description_class

オプション

toc_page_title: str

目次マークダウンのタイトルです。
h1

toc_page_description: str

概要説明です。タイトルの次に出力されます。

header_level: int

目次へ出力する、各ページの項目ヘッダーレベルです。
h1→1, h2→2, ...

pickup_description_meta: bool

メタタグで指定された概要説明を目次へ出力します。
マークダウンのメタデータで指定する場合、falseにしてください。

<mata name="description" content="pickup target value" />

pickup_description_class: bool

クラス属性で指定された概要説明を目次へ出力します。
マークダウンのメタデータで指定する場合、falseにしてください。

# mkdocs-toc-md

<div class="toc-md-description">
pickup target value
</div>

output_path: str

ファイル名。docs配下へ出力されます。
index.md → docs/index.md

output_log: bool

目次要素をログへ出力します。

ignore_page_pattern: str

目次から除外するファイルの正規表現です。
出力した目次ファイル自身が目次の要素として出力されないようにするためには、同一のファイル名を指定します。

remove_navigation_page_pattern: str

ナビゲーションメニューを削除するファイルの正規表現です。
出力した目次ファイルからナビゲーションメニューを削除するには、同一のファイル名を指定します。

template_dir_path: str

テンプレートフォルダーパス。
toc.md.j2を指定したフォルダーに配置してください。

beautiful_soup_parser: str

BeautifulSoupのパーサーを指定します。デフォルトは、html.parserです。 html5lib lxmlを使用する場合、個別にインストールが必要です。

integrate_mkdocs_static_i18n: bool

mkdocs-static-i18nに対応します。

languages: dict

integrate_mkdocs_static_i18n オプションと一緒に使用します。
toc_page_title, toc_page_descriptionを各言語ごとに指定できます。

languages:
    en:
        toc_page_title: Contents
        toc_page_description: Usage mkdocs-toc-md
    ja:
        toc_page_title: 目次
        toc_page_description: mkdocs-toc-mdプラグインの使い方

shift_header: str (after_index, after_h1_of_index, none)

after_index
ディレクトリー内のindexファイル以外のヘッダーレベルを+1します。

after_h1_of_index
indexのh2以降とディレクトリー内のindexファイル以外のヘッダーレベルを+1します。

none (default)

extend_module: bool

toc_extend_module.py をdocsディレクトリーに配置することで、一部の処理を拡張できます。

├─ docs
│  ├─ mkdocs.yml
│  ├─ toc_extend_module.py

Sample/toc_extend_module.py

find_src_elements -> list[bs4.element.Tag]
args

  1. bs_page_soup: bs4.BeautifulSoup
  2. page: mkdocs.structure.pages.Page
  3. toc_config: mkdocs_toc_md.objects.TocConfig

create_toc_items -> list[mkdocs_toc_md.objects.TocItem]
args

  1. page: mkdocs.structure.pages.Page
  2. page_description: str
  3. src_elements: list[bs4.element.Tag]
  4. toc_config: mkdocs_toc_md.objects.TocConfig

on_create_toc_item
args

  1. toc_item: mkdocs_toc_md.objects.TocItem
  2. src_element: bs4.element.Tag
  3. page: mkdocs.structure.pages.Page
  4. toc_config: mkdocs_toc_md.objects.TocConfig

on_before_output
args

  1. nav: mkdocs.structure.nav.Navigation
  2. toc_items: list[mkdocs_toc_md.objects.TocItem]
  3. toc_config: mkdocs_toc_md.objects.TocConfig

output_comment: str (html, metadata, none)

html (default)

<!-- ====================== TOC ====================== -->
<!-- Generated by mkdocs-toc-md plugin -->
<!-- ================================================= -->

metadata

---
toc_output_comment: Generated by mkdocs-toc-md plugin
---

none