Danke für deine Antwort!
Ich bin heute Nachmittag auf deinen ersten Link gestoßen.
Die GitHub-Link-Dateien sind 7 Jahre alt, daher nehme ich an, dass der Code veraltet sein könnte?
Ich habe das hier verwendet:
export function setup(helper) {
if (!helper.markdownIt) { return; }
helper.registerOptions((opts, siteSettings) => {
opts.features.nolinkify = siteSettings.no_linkify_enabled;
});
helper.allowList(["span.nolinkify"]);
}
Das habe ich von GitHub - unfoldingWord/discourse-mermaid: Adds the Mermaid JS library to discourse übernommen.
In meinem Plugin gibt es nur ein paar Codezeilen und ich weiß nicht wirklich, was es tut und ob alles benötigt wird, aber zumindest kann ich Spans mit der Klasse nolinkify hinzufügen.
In meinem Fall war der Zweck, Wörter in Beiträgen einfach “entlinkbar” zu machen mit Auto-Linkify Words (es akzeptiert nur Tags und Klassen, um Linkifizierung zu verhindern) und insbesondere Wörter in HTML-Tags von Titeln bei Verwendung von DiscoTOC - automatic table of contents.
Ich habe auch eine BBCode-Syntax-basierte Lösung ausprobiert, wie diese:
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;
}
});
});
Also habe ich beide Lösungen für mein Problem mit den Titel-Tags im Inhaltsverzeichnis ausprobiert.
Das funktioniert nicht:
## [nolinkify]test[/nolinkify]
Aber das funktioniert:
## <span class="nolinkify">test</span>
Ich hätte die erste Syntax bevorzugt, aber ich schätze, sie ist wegen der Ausführungsreihenfolge der Skripte mit dem Inhaltsverzeichnis inkompatibel.