답변 주셔서 감사합니다!
오늘 오후에 첫 번째 링크를 우연히 발견했습니다.
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>
첫 번째 문법을 선호했지만, 스크립트 실행 순서 때문에 목차와 호환되지 않는 것 같습니다…