Markdownを使って目次を作る
Jekyllで作成したサイトでは、Markdownを使って簡単にページ内の目次を 自動生成できます。
現在、使用しているプラグインの各バージョンは下記のとおりです。
- jekyll (4.1.1)
- kramdown (2.3.0)
Jekyllではページ内にMarkdownを記載することで目次を自動生成できますが、 これはJekyllのデフォルトMarkdownレンダラーであるkaramdownの機能1です。
例えば、下記のようなMarkdownがあると
* TOC
{:toc}
# Header1
## Header2
ページ内の見出しを収集して、順序のないリスト(<ul>
)を使った 目次を自動的に生成してくれます。
<ul id="markdown-toc">
<li>
<a href="#header1" id="markdown-toc-header1">Header1</a>
<ul>
<li><a href="#header2" id="markdown-toc-header2">Header2</a></li>
</ul>
</li>
</ul>
<h1 id="header1">Header1</h1>
<h2 id="header2">Header2</h2>
下記でも同じように、順序のないリストを使った目次が生成されます。
- TOC
{:toc}
下記のようにすると、順序のあるリスト(<ol>
)を使った目次が生成されます。
1. TOC
{:toc}
TOC
はどのような文字列でもよく、空でもよいようです (ただし半角スペースは必要です)
<details>
2 と組み合わせることで、折り畳み可能な目次も生成できます。
<details open markdown="block">
<summary>Table of Contents</summary>
- TOC
{:toc}
</details>
特定の見出しを目次から除外したい場合は、見出しの次行に{:.no_toc}
と記載します。
* TOC
{:toc}
# Header1
## Header2
{:.no_toc}
レイアウトテンプレート(_layout/*)への記載では動作しないため、 目次を生成したい全てのページへの記載が必要になりますが、 Jekyllのプラグイン3を使うとテンプレートに記載できます。
<details>: 詳細折りたたみ要素(MDN web docs) ↩
jekyll-tocなど ↩
Tag cloud
android (2), bash (1), bitbucket (2), chromebook (2), cifs (1), css (1), docker (1), git (1), gitlab (1), info (1), javascript (3), jekyll (13), markdown (1), nfs (1), nodejs (2), php (2), plugins (5), powerline (1), ruby (1), ssh (1), themes (1), vim (1), windows (1), wordpress (1), wsl (1), xrea (7)