Umgang mit Ankern in mit Markdown erstellten Beiträgen

Hallo Community, ich benutze eine Discourse-Seite, um einige Spezifikationen zu veröffentlichen, die hauptsächlich in Markdown geschrieben sind, aber ich bin auf das Problem gestoßen, dass die für die Header verwendeten Anker gerendert werden, obwohl sie verborgen sein sollten.

Weiß jemand, ob es eine Möglichkeit gibt, sie zu verbergen?

2 „Gefällt mir“

Hallo, willkommen!

Ist diese Syntax von kramdown oder PHP Markdown Extra?

Discourse basiert auf MarkdownIt, das auf der CommonMark Spezifikation basiert. Es unterstützt nicht die Angabe einer Header-ID.

Es scheint, dass sie es irgendwann diskutiert haben: Anchors in markdown - Spec - CommonMark Discussion, aber ich sehe keine definitive Schlussfolgerung.

Discourse generiert jedoch automatisch Anker.
Sie können es hier sehen:

Im Wesentlichen können Sie diese IDs erwarten:

  • h-{headingId} (keine Beitrags-ID, kein Slug)
  • h-{slug}-{headingId} (kein Beitrags-ID)
  • p-{postId}-h-{headingId} (Beitrags-ID, kein Slug)
  • p-{postId}-h-{slug}-{headingId} (Beitrags-ID, Slug)

Z.B.:

Wenn Sie möchten, können Sie immer noch manuell einen Anker mit HTML erstellen, z. B. <a>Ankername</a>


Zusätzliche Ressourcen –
Wenn Sie eine Inhaltsübersicht generieren müssen, gibt es diese Komponente für Sie:

5 „Gefällt mir“

Vielen Dank @Arkshine!

Das Problem liegt eher daran, dass wir die Markdowns, die auch für andere Zwecke in Discourse verwendet werden, veröffentlichen. Daher verwenden die Personen, die die Dokumente pflegen, diese Anker für Querverweise, wenn sie mehrere Markdowns in einem einzigen Dokument zusammenführen.

Ich denke, ich werde eine Art Skript erstellen, um den Inhalt vor dem Posten zu bereinigen.

3 „Gefällt mir“

Ich verstehe!

Die Lösung besteht auch darin, ein Plugin für Discourse mit einem Markdown-Plugin zu erstellen, um diese Syntax zu unterstützen. Wenn Sie etwas Budget haben, könnten Sie Marketplace fragen.

@Nihokam

Wenn du immer noch interessiert bist, habe ich ein kleines Discourse-Plugin erstellt, das das Festlegen einer Anker-ID neben der Überschrift handhabt.

Es funktioniert neben den automatischen Überschriften-Ankern von Discourse.
Beachte, dass es sich um eine grundlegende Unterstützung handelt. Es gibt wahrscheinlich viele Varianten, aber dieses Plugin unterstützt nur die folgenden:

## Meine Überschrift {#custom_section}

wird generieren:


<a name="custom_section" href="#custom_section" class="custom-anchor-id"></a>

Du kannst es gerne ausprobieren! Lass mich wissen, wenn du Probleme damit hast.

2 „Gefällt mir“

Danke @Arkshine!

Ich werde mich mit unserem Discourse-Administrator in Verbindung setzen, um die Nutzung zu besprechen :grin:

1 „Gefällt mir“

@Arkshine Wissen Sie, wie Anker in Discourse (der aktuellen Website) generiert werden? Ich frage, weil sie nicht den von Ihnen geteilten Mustern zu folgen scheinen. Sehen Sie zum Beispiel dies:

https://meta.discourse.org/t/adding-a-table-to-your-post-using-markdown/66544#creating-a-simple-table-1

Gibt es dafür eine Einstellung? Ich konnte sie nicht finden. Oder verwenden sie <a>? Oder Ihr Plugin?