Obrigado pela sua resposta!
Encontrei seu primeiro link esta tarde.
Os arquivos do link do GitHub têm 7 anos, então suponho que o código possa estar desatualizado?
De qualquer forma, usei isto:
export function setup(helper) {
if (!helper.markdownIt) { return; }
helper.registerOptions((opts, siteSettings) => {
opts.features.nolinkify = siteSettings.no_linkify_enabled;
});
helper.allowList(["span.nolinkify"]);
}
Que peguei de GitHub - unfoldingWord/discourse-mermaid: Adds the Mermaid JS library to discourse
Existem apenas algumas linhas de código no meu plugin e eu realmente não sei o que ele está fazendo e se tudo é necessário, mas pelo menos posso adicionar spans com uma classe nolinkify.
No meu caso, o objetivo era facilmente “deslinkificar” palavras em posts com Auto-Linkify Words (ele só aceita tags e classes para evitar linkificação), e especialmente palavras em tags de título HTML ao usar DiscoTOC - automatic table of contents
Também tentei uma solução baseada em sintaxe bbcode como esta:
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;
}
});
});
Então, tentei ambas as soluções para o meu problema de tags de título com a tabela de conteúdo.
Isso não funciona:
## [nolinkify]test[/nolinkify]
Mas isso funciona:
## <span class="nolinkify">test</span>
Eu teria preferido a primeira sintaxe, mas acho que é incompatível com a tabela de conteúdo por causa da ordem de execução dos scripts.