Bisher sind mir zwei Möglichkeiten bekannt, dies zu tun:
<span>some text</span>
CSS:
[data-theme-custom] {
color: pink;
}
[wrap="indent"]some text[/wrap]
Dies erstellt entweder ein div oder ein span (wenn sich anderer Inhalt in derselben Zeile befindet), das die folgenden Attribute enthält: class="d-wrap" und data-wrap="custom"
CSS
[data-wrap="custom"] {
color: pink;
}
Gibt es andere Möglichkeiten, ausgewählten Inhalt in einem Beitrag anzupassen, die mir nicht bekannt sind?
Gibt es außerdem eine Möglichkeit, einem Element eine benutzerdefinierte Klasse hinzuzufügen? Konnte nichts in der Suche finden. Ich schätze, das ist nicht möglich?
Ich wäre auch neugierig, welche HTML-Tags im Composer funktionieren. Ich glaube, ich habe es schon einmal irgendwo gesehen, konnte es aber heute Morgen nicht finden.\n\nZum Beispiel habe ich versucht, einen \u003cbutton class=\"success\"\u003eKlick mich\u003c/button\u003e zum Composer hinzuzufügen, er wurde in der Vorschau angezeigt, schlug aber fehl, als ich ihn postete. Ich glaube, einige HTML-Tags funktionieren, bin mir nur nicht sicher, welche.
Es ist möglich, einige HTML-Klassen in Discourse zu verwenden. Die meisten HTML-Elemente in einem Beitrag werden jedoch aus Sicherheitsgründen bereinigt, und nur sehr streng weißgelistete HTML-Elemente sind in Markdown erlaubt. Um Klassen zur Weißliste hinzuzufügen, müssen Sie ein Plugin verwenden. Die Bereinigung erfolgt sowohl auf der Serverseite als auch auf der Clientseite. Weitere Details zum Hinzufügen von weißgelisteten Attributen finden Sie unter HTML-Tags/Attribute weißlisten. Ich glaube, es würde ähnlich aussehen wie hier: Discourse HTML Whitelist. Und wie @RGJ erwähnt hat, beachten Sie bitte, dass die Funktion whiteList() veraltet ist und heutzutage allowList() heißt.
Bezüglich anderer Möglichkeiten zur Anpassung von Inhalten sind Beiträge Widgets, und Discourse-Themes können Widgets dekorieren, sodass Sie dies nutzen könnten.
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: