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

コミュニティの皆さん、こんにちは。主にマークダウンで書かれた仕様を公開するためにディスコースサイトを使用していますが、ヘッダーに使用したアンカーが表示されてしまうという問題に直面しました。これらは非表示にされるべきです。

何か非表示にする方法をご存知の方はいらっしゃいますか?

「いいね!」 2

こんにちは、ようこそ!

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

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

彼らはかつてそれについて議論したようですが:https://talk.commonmark.org/t/anchors-in-markdown/247、決定的な結論は見られません。

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

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

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

例:

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


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

「いいね!」 5

@Arkshineさん、ありがとうございます!

問題は、他の目的でも使用しているマークダウンをディスコースでも公開していることです。そのため、ドキュメントを管理している人々は、複数のマークダウンを単一のドキュメントにマージする際に、クロスリファレンスとしてこれらのアンカーを使用しています。

投稿する前に、コンテンツをクリーンアップするスクリプトを作成しようと思います。

「いいね!」 3

なるほど!

解決策は、この構文をサポートするためにマークダウンプラグインを備えたDiscourse用のプラグインを作成することでもあります。予算があれば、Marketplace に依頼することもできます。

@Nihokam

もしまだ興味があれば、見出しの隣にアンカーIDを指定できる小さなDiscourseプラグインを作成しました。

これはDiscourseの自動見出しアンカーと連携して動作します。
基本的なサポートであることに注意してください。多くのバリエーションがあると思われますが、このプラグインは以下のもののみをサポートしています。

## My Heading {#custom_section}

以下を生成します。


<a name="custom_section" href="#custom_section" class="custom-anchor-id"></a>

ぜひ試してみてください!問題があればお知らせください。

「いいね!」 2

@Arkshineさん、ありがとうございます!

ディスコース管理者に確認してみますね :grin:

「いいね!」 1

@Arkshine Discourse(現在のウェブサイト)のアンカーがどのように生成されるかご存知ですか?共有されたパターンに従っていないように見えるため、質問しています。たとえば、これを見てください。

https://meta.discourse.org/t/adding-a-table-to-your-post-using-markdown/66544#creating-a-simple-table-1

これには設定がありますか?見つけられませんでした。それとも、<a> タグを使用していますか?それともあなたのプラグインですか?