Zum Inhalt springen
Anjunar/ DOCS

Markdown

Ein CommonMark-0.31.2-Parser und -Writer in Scala, ohne DOM und ohne JavaScript-Abhängigkeit. Was Markdown nicht ausdrücken kann, wird gemeldet, nicht verworfen.

Hin und zurück

Dekodieren, bearbeiten, kodieren

Der Editor unten wurde aus Markdown dekodiert. Ändere ihn und sieh dir das Markdown an, das der Writer erzeugt.

Markdown, live

Bei jedem Commit aus dem Dokument geschrieben.

A small document

A paragraph with strong and emphasized text, a link and inline code.

  1. First item

  2. Second item

20 Wörter · 21 Knoten
## A small document A paragraph with **strong** and *emphasized* text, a [link](https://anjunar.com) and `inline code`. 1. First item 2. Second item
scala
val rules = MarkdownSupports.everything(LinkUrlPolicy.default, MediaUrlPolicy.default) val decoded = MarkdownCodec.decode(source, resolved.schema, rules, generator, NodeId("document")) val written = MarkdownCodec.encode(session.document, rules, LossPolicy.Strict)
Verluste

Streng oder verlustbehaftet, nie still

Unterstrichen, Durchgestrichen, Bildmaße und Medien-IDs haben keine CommonMark-Form. Unter Strict schlägt der Export fehl; unter AllowLossy erscheint jeder Verlust in EncodedMarkdown.losses.

scala
MarkdownCodec.encode(document, rules, LossPolicy.AllowLossy) match case Right(result) => result.losses.foreach(loss => println(loss.message)) case Left(error) => println(error.message)
Abdeckung

Gemessen, nicht behauptet

Der Parser reproduziert 651 der 652 Beispiele der offiziellen Konformitätssuite zeichengenau; 628 überstehen Schreiben und erneutes Parsen unverändert. Beide Zahlen werden in CI exakt geprüft.

MarkdownProfile.commonMarkSafe
CommonMark-Blöcke und -Inlines.
MarkdownProfile.commonMarkSafeWithTables
Dasselbe plus GFM-Tabellen.
MarkdownProfile.untrustedPaste
Dieselben Regeln mit Grenzen für eingefügten Text.