게시물 내부 콘텐츠를 커스터마이징하는 방법 (커스텀 속성 등)

답변 주셔서 감사합니다!

오늘 오후에 첫 번째 링크를 우연히 발견했습니다.

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 · GitHub 에서 가져온 것입니다.

제 플러그인에는 몇 줄의 코드만 있고, 실제로 무엇을 하는지 그리고 모든 것이 필요한지 정확히 모르지만, 적어도 nolinkify 클래스가 있는 스팬을 추가할 수는 있습니다.

제 경우, 목적은 Auto-Linkify Words (링크화를 방지하기 위해 태그와 클래스만 허용합니다)을 사용하여 게시물 내의 단어를 쉽게 "unlinkify"하는 것이었고, 특히 DiscoTOC - automatic table of contents 을 사용하면서 제목 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>

첫 번째 문법을 선호했지만, 스크립트 실행 순서 때문에 목차와 호환되지 않는 것 같습니다…