Linuchs: Schrift-Auszeichnung in Textfeldern

Moin,

ich habe in der DB viele text-Felder die von Usern befüllt werden und per HTML anzuzeigen sind.

Nun stellt sich die Frage, wie Texte sinnvoll und für HTML-Unkundige ohne komplizierte Tastenkombinationen zu formatieren sind. Was mir auf Anhieb einfällt:

fett unterstrichen //kursiv//

... in der Vorschau sehe ich gerade, dass meine Beispiele nicht angezeigt, sondern umgesetzt werden. Fett bette ich in jeweils zwei Sterne, unterstrichen in zwei Unterstriche und kursiv in zwei Schrägstriche ein.

Weiter brauche ich Farben, größer / kleiner usw. Bevor ich mir nun Zeichenkombinationen aus den Fingern sauge, frage ich an, ob es dafür Standards gibt. Mir fehlt das Stichwort zum Suchen.

Ich habe mit Farben in der Form (blu)blau(blu) (rot)rot(rot) experimentiert, aber die Eingabe der Klammern stören den Textfluss beim Tippen. Und sowas wie bbbblaubbb rrrrotrrr ist irgendwie nicht mehr lesbar. Und drei Buchstaben können bei Schifffahrt auch im Wort vorkommen.

Zusätzlich wären Zeichen nützlich, um HTML-Tabellen zu generieren, da ist wohl der Senkrechtstrich zwischen den Zellen angebracht?

Linuchs

  1. Hi,

    ich habe in der DB viele text-Felder die von Usern befüllt werden und per HTML anzuzeigen sind.

    Nun stellt sich die Frage, wie Texte sinnvoll und für HTML-Unkundige ohne komplizierte Tastenkombinationen zu formatieren sind. Was mir auf Anhieb einfällt:

    *fett* _unterstrichen_ /kursiv/

    das sind Ersatz-Schreibweisen, die sich in e-Mails und im Usenet im Lauf der Jahre recht gut etabliert haben.

    ... in der Vorschau sehe ich gerade, dass meine Beispiele nicht angezeigt, sondern umgesetzt werden.

    Ja. Stelle den Sonderzeichen einen Backslash voran. :-)

    Fett bette ich in jeweils zwei Sterne, unterstrichen in zwei Unterstriche und kursiv in zwei Schrägstriche ein.

    Wieso jeweils zwei? Das ist unüblich.

    Weiter brauche ich Farben, größer / kleiner usw. Bevor ich mir nun Zeichenkombinationen aus den Fingern sauge, frage ich an, ob es dafür Standards gibt. Mir fehlt das Stichwort zum Suchen.

    Auf Anhieb fällt mir BBCode ein, das durch seine Verbreitung in unzähligen Foren wohl recht bekannt sein dürfte. Denn genau das ist IMO auch ein wichtiger Aspekt: Es sollte etwas sein, das entweder möglichst viele Nutzer schon kennen, oder was schnell und einfach, möglichst intuitiv zu lernen ist.

    So long,
     Martin

    --
    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
    1. Hallo Martin,

      Fett bette ich in jeweils zwei Sterne, unterstrichen in zwei Unterstriche und kursiv in zwei Schrägstriche ein.

      Wieso jeweils zwei? Das ist unüblich.

      Weil einzelne Zeichen im Text vorkommen können. So nutze ich den Stern am Zeilenanfang in Mails und Textfeldern gerne als Aufzählungszeichen. Dann wäre ja stattdessen die erste Zeile fett, die zweite nicht ... Stern und Schrägstrich sind auch Rechenzeichen. Und Schrägstriche kommen bei Städten oft vor (Frankfurt/M) mit denen ich viel zu tun habe.

      Auf Anhieb fällt mir BBCode ein, ...

      Habe ich bei Wikipedia gerade gelesen. Sowas wie [b]fett[/b] habe ich auch. Ich denke, die eckige Klammer ist auf US-Tastaturen mit einer Taste zu finden, auf deutschen Tastaturen aber mit [altgr][8] nicht flüssig zu tippen.

      Da sind ja die spitzen Klammern auf und zu noch einfacher.

      ... oder was schnell und einfach, möglichst intuitiv zu lernen ist.

      Genau das suche ich ;-)

      Linuchs

      1. Moin,

        Fett bette ich in jeweils zwei Sterne, unterstrichen in zwei Unterstriche und kursiv in zwei Schrägstriche ein.

        Wieso jeweils zwei? Das ist unüblich.

        Weil einzelne Zeichen im Text vorkommen können.

        genau das ist der Punkt: einzeln. Ich weiß nicht, ob es für diese Konvention einen Standard oder eine Spezifikation gibt, aber meines Wissens interpretieren z.B. Mailclients wie T-Bird diese Zeichen nur als Formatierungszeichen, wenn sie paarweise in einem Absatz vorkommen, also eine bestimmte Textpassage umschließen. Allerdings ...

        So nutze ich den Stern am Zeilenanfang in Mails und Textfeldern gerne als Aufzählungszeichen. Dann wäre ja stattdessen die erste Zeile fett, die zweite nicht ... Stern und Schrägstrich sind auch Rechenzeichen. Und Schrägstriche kommen bei Städten oft vor (Frankfurt/M) mit denen ich viel zu tun habe.

        ... wäre es dann immer noch problematisch, wenn etwa Franfurt/Main und Frankfurt/Oder im selben Satz erwähnt werden.

        Auf Anhieb fällt mir BBCode ein, ...

        Habe ich bei Wikipedia gerade gelesen. Sowas wie [b]fett[/b] habe ich auch. Ich denke, die eckige Klammer ist auf US-Tastaturen mit einer Taste zu finden, auf deutschen Tastaturen aber mit [altgr][8] nicht flüssig zu tippen.

        Das stimmt, aber braucht man das so häufig und intensiv, dass flüssiges Tippen ein entscheidendes Argument ist? Ich stehe sowieso auf dem Standpunkt, dass man Formatierungen generell sparsam einsetzen sollte.

        Da sind ja die spitzen Klammern auf und zu noch einfacher.

        Ja. Aber auch die können als Kleiner- oder Größer-Zeichen gemeint sein, was dann problematisch wäre. HTML löst dieses Problem, indem für genau diese Zeichen dann eine Ersatzschreibweise (< und >) verlangt wird. Aber das will man unbedarften Nutzern, sprich: Laien, nicht zumuten.

        ... oder was schnell und einfach, möglichst intuitiv zu lernen ist.

        Genau das suche ich ;-)

        Wenn du was gefunden hast, sag Bescheid. Ich glaube, das suche sehr viele Leute.

        Schönes Wochenende,
         Martin

        --
        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
    2. @@Der Martin

      Auf Anhieb fällt mir BBCode ein, das durch seine Verbreitung in unzähligen Foren wohl recht bekannt sein dürfte.

      Mittlerweile scheint Markdown – wie es auch hier im Forum verwendet wird – verbreiteter zu sein als BBCode[1].

      Jedenfalls dort, wo ich mich rumtreibe. Das könnte zielgruppenabhängig sein.

      LLAP 🖖

      --
      “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
      Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|

      1. Spracherkennung verstand: „Baby tot“ ↩︎

      1. Spracherkennung verstand: „Baby tot“

        Also haben Maschinen jetzt auch eine eigene Sicht der Dinge?

        Bisher waren Mißverständnisse ja eher bei den Menschen angesiedelt.

        Vor ein paar Tagen schaute ich mal wieder auf die Webseite eines Verbandes, die schon ewig Baustelle ist. Mein freud'scher Verleser:

        "Seit der Gründung des Vereins bereut sie die Internetseite ..."

        Wahrscheinlich trifft das zu, aber das Wort hatte noch ein t.

        Linuchs

  2. Hallo Linuchs,

    am intuitivsten dürfte wohl ein WYSIWYG-Editor wie TinyMCE sein, der lässt sich sehr gut auf den konkreten Anwendungszweck anpassen:
    Screenshot von TinyMCE

    Das empfangene HTML müsstest du natürlich noch filtern, dafür gibt es den HTML Purifier.

    Zu vereinfachten Auszeichnungssprachen gibt es bei Wikipedia eine eigene Kategorie – aber für technisch nicht sehr versierte Nutzer würde ich einen WYSIWYG-Editor bevorzugen...

    Gruß
    Julius

  3. Hallo Linuchs,

    als PHP-basierten Markdownparser würde ich Parsedown empfehlen, der beherrscht auch eine Syntax für Tabellen.

    Ein Anwendungsbeispiel:

    require_once('parsedown.php');
    $Parsedown = new Parsedown();
    /*
     * HTML wird escaped, also wird aus '<em>Test</em>'
     * '&lt;em&gt;Test&lt;/em&gt;' statt '<em>Test</em>'
    */
    $Parsedown->setMarkupEscaped(true);
    $var = $Parsedown->text('Hello _Parsedown_!
    
    Eingeschmuggeltes **HTML**:<em>Test</em> [Test](javascript:alert(\'HACK3D!!!\'))');
    // XSS via Links verhindern:
    echo str_replace('<a href="javascript:', '<a href="', $var);
    

    Gruß
    Julius