Ich benutze die Formale CSS-Notation für diese.
Die Komponentenwerte können wie folgt zu Eigenschaftswerten zusammengefasst werden:
- Mehrere nebeneinander stehende Wörter bedeuten, dass sie alle in der angegebenen Reihenfolge vorkommen müssen.
- Ein Balken (
|
) trennt zwei oder mehr Alternativen: genau eine von ihnen muss auftreten.
- Ein doppelter Balken (
||
) trennt zwei oder mehr Optionen: eine oder mehrere davon müssen in beliebiger Reihenfolge auftreten.
- Ein doppeltes kaufmännisches Und (
&&
) trennt zwei oder mehr Komponenten, die alle in beliebiger Reihenfolge auftreten müssen.
- Klammern (
[ ]
) sind für die Gruppierung.
Die Aneinanderreihung ist stärker als das doppelte kaufmännische Und-Zeichen, das doppelte kaufmännische Und-Zeichen ist stärker als der doppelte Balken, und der doppelte Balken ist stärker als der Balken. Die folgenden Zeilen sind also gleichwertig:
a b | c || d && e f
[ a b ] | [ c || [ d && [ e f ]]]
Jedem Typ, Schlüsselwort oder jeder Klammergruppe kann einer der folgenden Modifikatoren folgen:
- Ein Sternchen (
*
) zeigt an, dass der vorangehende Typ, das vorangehende Wort oder die vorangehende Gruppe null oder mehr Mal vorkommt.
- Ein Plus (
+
) zeigt an, dass der vorangehende Typ, das vorangehende Wort oder die vorangehende Gruppe ein oder mehrere Male vorkommt.
- Ein Fragezeichen (
?
) zeigt an, dass der vorangehende Typ, das Wort oder die Gruppe optional ist.
- Ein Paar von Zahlen in geschweiften Klammern (
{A,B}
) zeigt an, dass die vorangehende Art, das vorangehende Wort oder die vorangehende Gruppe mindestens A und höchstens B Mal vorkommt.
Wenn Sie Beispiele benötigen, siehe Formale Definition Abschnitte auf MDN; hier ist einer für font
: https://developer.mozilla.org/en-US/docs/Web/CSS/font#formal_syntax .
Und hier ist ein einfaches Beispiel aus meinem eigenen Pandoc-Spickzettel:
$ pandoc <input_file>.md --from [markdown|commonmark_x][-smart]? --to html --standalone --table-of-contents? --number-sections? [--css <style_sheet>.css]? --output <output_file>.html