Markdownで作成された投稿のアンカーの処理

こんにちは、ようこそ!

この構文はkramdownまたはPHP Markdown Extraのものですか?

DiscourseはMarkdownItに依存しており、これはCommonMark仕様に基づいています。ヘッダーIDの指定はサポートされていません。

彼らはかつてそれについて議論したようですが:Anchors in markdown - Spec - CommonMark Discussion、決定的な結論は見られません。

しかし、Discourseは自動的にアンカーを生成します。
ここで確認できます:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse-markdown-it/src/features/anchor.js

基本的に、これらのIDが期待できます:

  • h-{headingId} (投稿IDなし、スラッグなし)
  • h-{slug}-{headingId} (投稿IDなし)
  • p-{postId}-h-{headingId} (投稿IDあり、スラッグなし)
  • p-{postId}-h-{slug}-{headingId} (投稿IDあり、スラッグあり)

例:

必要であれば、HTMLで手動でアンカーを作成することもできます。例:<a>


追加リソース —
目次を生成する必要がある場合は、このコンポーネントがあります: