Diskussion 🔣
Behandlung von Sonderzeichen in Variablennamen unbefriedigend
Bestimmte Sonderzeichen, die auch für Aneamal-Markup stehen, erzeugen Fehlermeldungen, wenn sie in Meta-Variablennamen verwendet werden und die Variable im Text eingesetzt wird und die Zeichen nicht mit \
geschützt werden. Theoretisch wäre das Schützen mit \
im Variablennamen nicht nötig, da im Variablennamen Aneamal-Markup keine sinnvolle Funktion hat. Was tun?
Einerseits könnte man dafür sorgen, dass in mit @`…` eingeschlossenen Variablennamen ähnlich wie in URLs Sonderzeichen keine Sonderbedeutung haben.
Andererseits ist im Variablennamen der Einsatz von Zeichen, die in Aneamal Sonderbedeutungen haben, generell nicht ratsam und stiftet leicht Verwirrung. Zu prüfen wäre, ob man diese Zeichen in Variablennamen schlicht verbieten kann, ohne damit sinnvolle Angaben in <meta name='…'> bzw. <link rel='…'> unmöglich zu machen.
Existierende Werte für <link rel='…'> nutzen außer Buchstaben und Ziffern laut der Listen auf http://microformats.org/wiki/existing-rel-values folgende Zeichen: -_.:/
Existierende Werte für <meta name='…'> enthalten außer Buchstaben und Ziffern laut der Liste auf https://wiki.whatwg.org/wiki/MetaExtensions folgende Zeichen: -_.:
Eine Beschränkung auf diese Zeichen aus dem ASCII-Bereich erscheint daher möglich. Bei "_" kann es noch Konflikte mit Aneamal-Markup im Text geben; bei ":" ist nur zu beachten, dass es als Trennzeichen in Metadaten-Deklarationen verwendet wird.
Ergänzung zu @2: Anfang und Ende der Werte kommen immer aus dem Bereich der Buchstaben/Zahlen. Punkt und Doppelpunkt am Ende könnten auch Missverständnisse produzieren (ist das ein Satzzeichen oder Teil des Variablennamens?).
Wenn https://prlbr.de/projekt/aneamal/diskussion/code-in-html-head-einfuegen umgesetzt wird, können die Variablennamen in Aneamal noch enger beschränkt werden, sodass es gar keine Syntaxkonflikte damit gibt. Eine Angabe wie <meta name='p:domain_verify' content='abcdefghijklm'> könnte dann nämlich per
@html
@|<meta name='p:domain_verify' content='abcdefghijklm'>eingefügt werden statt per
@-p\:domain_verify: abcdefghijklm
Zwar ist die bisherige Syntax kürzer, aber weniger flexibel und leidet darüber hinaus an den bekannten Problemen.
Vorschlag: Beschränkung von Meta-Variablennamen auf Buchstaben und Zahlen und Bindestrich aus dem ASCII-Bereich sowie beliebige Zeichen jenseits U+007F
Im Testbetrieb funktioniert die Beschränkung von Metadaten-Namen auf Zahlen, Buchstaben und Bindestrich aus dem ASCII-Bereich sowie beliebige Nicht-ASCII-Zeichen. :-)
Ich schließe die Diskussion, denn durch die Beschränkung von Metadaten-Namen auf Zeichen, die in Aneamal keine besondere Funktion haben, stellt sich das Problem nicht mehr.