Großbuchstaben mit span-Klasse versehen (RegEx für Umlaute)

  • Hallo!

    Das Plugin wp-typogrify bietet die Funktion, Großbuchstaben in Abkürzungen wie SPD, ÖVP, etc. mit der Klasse "caps" zu umschließen. Soweit so gut. Problem ist nur, dass wp-typogrify Umlaute dabei völlig ignoriert. Ich habe mit RegEx keinerlei Erfahrungen und war bislang unfähig durch Experimentieren herauszufinden, wo man was ändern muss, damit auch großgeschriebene Umlaute im wahrsten Sinne des Wortes miteingeschlossen werden. Vielleicht kann mir hier jemand helfen!

    Hier der - meiner Meinung nach - entscheidende Code des Plugins:

    Das Plugin enthält auch die smartypants-Datei und ruft dort die Funktion Tokenize auf, die ich hier auch herkopiert habe (vielleicht braucht man die ja).

    Direktlink zum wp-typogrify-Plugin.

    Nun meine Frage: Wo muss ich was ändern, damit auch großgeschriebene Umlaute (ÄÖÜ) berücksichtigt werden?

    Besten Dank,
    Michael

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Code
    $cap_finder = "/(
                (\b[A-Z[COLOR="#ff0000"]ÄÖÜ[/COLOR]\d]*			# Group 2: Any amount of caps and digits
                [A-Z[COLOR="#ff0000"]ÄÖÜ[/COLOR]]\d*[A-Z[COLOR="#ff0000"]ÄÖÜ[/COLOR]]		# A cap string must at least include two caps (but they can have digits between them)
                [A-Z[COLOR="#ff0000"]ÄÖÜ[/COLOR]\d]*\b)			# Any amount of caps and digits
                | (\b[A-Z[COLOR="#ff0000"]ÄÖÜ[/COLOR]]+\.\s?	# OR: Group 3: Some caps, followed by a '.' and an optional space
                (?:[A-Z[COLOR="Red"]ÄÖÜ[/COLOR]]+\.\s?)+)	# Followed by the same thing at least once more
                (?:\s|\b|$))/x";


    Sollte es tun (kenne das Plugin jetzt nicht näher...)
    Pass auf dass die Plugin-Datei korrekt codiert gespeichert wird (UTF-8 ohne BOM), und heb dir eine Sicherungskopie des Originals auf.

  • Hab das genauso gemacht, nichts passiert. Siehe hier.

    Ich habe vorher damit herumexperimentiert, die HTML-Entities anstelle der Umlaute einzugeben - das funktioniert gut, nur dass ich - für mich: wahllose - im Text ";" und "&" habe.

    Vielleicht fehlte noch die Information: Meine Text werden über Markdown zu html umgewandelt.

  • Hab das genauso gemacht, nichts passiert. Siehe hier.


    Stimmt. Da sind ja auch keine Umlaute sondern HTML-Entities.

    Zitat

    Ich habe vorher damit herumexperimentiert, die HTML-Entities anstelle der Umlaute einzugeben


    Das geht schief, der RegEx kennt keine HTML-Entities und kann diese auch nicht ohne weiteres verarbeiten.

    Zitat

    Vielleicht fehlte noch die Information: Meine Text werden über Markdown zu html umgewandelt.


    Kannst du dem Markdown abgewöhnen, HTML-Entities zu verwenden und statt dessen einfach UTF-8-codierte Umlaute auszugeben? Oder ist da vielleicht noch ein anderes Plugin wie Clean Umlauts aktiv?

  • Nein, außer Markup nichts.

    Andere Idee: Kann ich per RegEx nicht "einfach" die exakte Zeichenfolge der HTML-Entities für Ä (& #196 ;), Ö (& #214 ;) und Ü (& #220 ; - mehr gibt's zum Glück nicht) abfangen und die anstelle der ÄÖÜ aus deiner Lösung einsetzen? (Ich brauche ja nur die großgeschriebenen Buchstaben...?

  • Nein. Alles was bei einem RegEx in eckigen Klammern steht ist eine sog. "Zeichenklasse", d.h. es wird jedes Zeichen einzeln interpretiert. Also matcht z.B. [& #214;] auf "&", "#", "2", "1", "4" und ";". Ich sagte ja bereits, dass das schief geht. Klar kann man den Regex umbiegen, aber das wird was größeres. Und der RegEx hier ist ja auch ein klein wenig aufwändiger...

  • Habe gerade Michel Fortin, dem Autor des Markdown-Plugins, ein Mail geschrieben, ob man auf der Ebene etwas machen kann, ansonsten sehe ich schwarz. Trotzdem allerbesten Dank für deine Hilfe.

    Man hat es nicht leicht als deutschsprachiger Wordpress-Benutzer... :neutral:

  • Eine Möglichkeit wäre vielleicht noch, die Reihenfolge der Abarbeitung der Plugins zu beeinflussen. Also erst ÄÖÜ mit <span>s zu versehen, und dann Markdown drüberjagen und Ä -> & #196; umschreiben...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!