0

目次ジェネレーター

Markdown または HTML を貼り付けると、実際の GitHub スタイルの衝突安全アンカー スラグを含むネストされたクリック可能な目次と、見出し ID が挿入された元のコンテンツを取得します。

自動検出では、最初に実際の

タグが検索され、次に Markdown # 見出しが検索されます。

各見出しの後に {#slug} 属性を追加します。kramdown、Pandoc、MkDocs、および GitHub Pages (Jekyll) でサポートされています。

Buy Me a Coffee at ko-fi.com
処理中... 0%
コンテンツ形式の検出
見出しの解析
衝突安全スラッグの割り当て
目次の構築

結果

目次は、その下のアンカー リンクと同じくらい役に立ちます。また、アンカー リンクは、すべての見出しに一意で予測可能なスラッグが付いている場合にのみ信頼できます。このジェネレーターは、貼り付けたもの (Markdown または HTML) から見出しを解析し、それぞれに実際の G​​itHub スタイルのアンカーを割り当てます。小文字のテキスト、スペース、句読点は置換または削除され、重要なことに、2 つの見出しが同じスラッグを生成する場合は常に、本物の衝突安全サフィックスが割り当てられます。ドキュメント内の 2 番目の「はじめに」は Introduction-1 になり、3 番目は Introduction-2 になり、GitHub 独自のスラッガーの動作とまったく同じように、実行中のオカレンス マップで追跡されます。見出しが繰り返されるときに以前のリンクを黙って上書きするショートカットではありません。これは、手作業で作成された目次スクリプトが壊れる最も一般的な方法です。

単純な実装の古典的な失敗モードでは、フェンスで囲まれたコード ブロック内に書かれた "#" が見出しとして扱われるため、マークダウン解析は意図的に行ベースになっています。このツールは、ドキュメントを 1 行ずつ移動しながら、``` または ~~~ フェンスが現在開いているかどうかを追跡し、開いているフェンスの外側にある ATX 見出し (# から ######) のみを認識します。そのため、シェル コメントや Python の「# コメント」を示すコード サンプルによって目次が汚されることはありません。 HTML 入力は、別の同様に実際のパスを取ります。ブラウザ独自の DOMParser で解析され、見出しがタグ名によって選択され、ドキュメントが文字列にシリアル化される前に、それぞれの id 属性が実際の要素に直接設定されます。

反対側からは2つのものが出てきます。まず、目次そのもの。ネストされた Markdown リスト ([Title](#slug)、見出しレベルでインデント) とネストされた HTML リスト (<ul><li><a href="#slug">) の両方としてエクスポートされ、それぞれに独自のコピー ボタンが付いています。 2 番目に、アンカーが実際に接続されたオリジナルのコンテンツです。Markdown 入力の場合は、kramdown、Pandoc、MkDocs、GitHub Pages の Jekyll で使用され、広くサポートされている {#slug} 見出し属性構文を選択するか、ターゲット レンダラーが属性構文を理解できない場合は、id="slug" がすでに設定されているプレーン HTML 見出しタグにフォールバックすることができます。 HTML 入力の場合、ID は解析された見出し要素に直接挿入されます。タグがすでに存在するため、選択する個別の「モード」はありません。

すべてがブラウザ内でローカルに実行されます。解析、スラッグ計算、ドキュメントの再構築はすべて、どこにもアップロードされることなく、現在見ているページ上の JavaScript で行われます。これは、草稿ドキュメント、社内 Wiki、または目次を取得するためだけにサードパーティ サービスに貼り付ける準備ができていない未公開のブログ投稿にとって重要です。