投稿内のコンテンツをカスタマイズする方法(カスタム属性など)

返信ありがとうございます!

今日、最初のリンクを見つけました。

GitHubのリンクファイルは7年前のものであるため、コードは古い可能性があると思いますか?

とにかく、これを使用しました。

export function setup(helper) {
    if (!helper.markdownIt) { return; }
  
    helper.registerOptions((opts, siteSettings) => {
      opts.features.nolinkify = siteSettings.no_linkify_enabled;
    });
  
    helper.allowList(["span.nolinkify"]);
}

これは GitHub - unfoldingWord/discourse-mermaid: Adds the Mermaid JS library to discourse から借用したものです。

私のプラグインには数行のコードしかなく、何をしているのか、すべてが必要なのかはよくわかりませんが、少なくとも nolinkify クラスを持つspanを追加できます。

私の場合は、https://meta.discourse.org/t/linkify-words-in-post/82193(リンク化を防ぐためにタグとクラスのみを受け入れます)を使用して、投稿内の単語を簡単に「リンク化解除」することを目的としていました。特に、https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143 を使用しながら、HTMLタグ内の単語をリンク化解除することを目的としていました。

次のようなbbcode構文ベースのソリューションも試しました。

    helper.registerPlugin(md => {
      md.inline.bbcode.ruler.push("nolinkify",{
        tag: "nolinkify",
  
        replace: function(state, tagInfo, content) {
          const token = state.push("html_raw", '', 0);
          const escaped = state.md.utils.escapeHtml(content);
          token.content = `<span="nolinkify ">${escaped}</span>`;
          return true;
        }
      });
    });

そのため、目次のタイトルタグの問題に対して両方のソリューションを試しました。
これは機能しません:

## [nolinkify]test[/nolinkify]

しかし、これは機能します:

## <span class="nolinkify">test</span>

最初の構文を好んでいましたが、スクリプトの実行順序のため、目次との互換性がないと思います。

「いいね!」 3