Das <abbr/> - Eine classTextile.php-Erweiterung

Derzeitig entwickelt sich Textpattern sehr schnell, was ich auch sehr begrüße.
Hatte ich bisher eine Datei zum Download und Einbinden in Textpattern angeboten, werde ich an dieser Stelle nun nur noch den eigentlichen Code zum einbauen anbieten.
Diese Anleitung ist für TXP Version 4.4.1 gültig.

Wo ist hier der Unterschied zur Original-Installation?

  • eine Änderung der <acronym> zum <abbr>-HTML-Code (von mir selbst erstellt) und erweitert auf Anregung von GugUser mit dem <abbr>-Code ohne Titel
    • Hinweis: Da ich den IE-6 bzgl. <abbr> noch berücksichtige, biete ich zwei Varianten an, einmal mit <span> und einmal ohne <span>.
  • eine Kleinschreibung innerhalb von AbC ist nun auch möglich.

Abbr einbinden

Datei textpattern/lib/classTextile.php öffnen und untenstehenden Code in den angegebenen Bereichen einsetzen:

Unabhängig der untenstehenden Konfiguration (mit oder ohne Kleinschreibung im Abbr) muss dieser Code eingebunden werden:

im Bereich: function Textile() (relativ am Anfang)

in Zeilen nach: $this->glyph_search = array(

'/\b(['.$abr.']['.$acr.']{1,})\b(?:[(]()[)])/'.$mod # new 2011.02.24, ohne title-
ausgabe im abbr // 3+ uppercase acronym
'/\b(['.$abr.']['.$acr.']{1,})\b(?:[(]([^)]*)[)])/'.$mod, // 3+ uppercase acronym
'/(?<=\s|^|[>(;-])(['.$abr.']{3,})(['.$nab.']*)(?=\s|'.$pnc.'|<|$)(?=[^">]*?(<|$))/'.$mod, // 3+ uppercase

Für die Ausgabe an die Webseite

Hier gibt es zwei Varianten zur Auswahl, einmal mit einem <span> (für ältere IE-Versionen notwendig) und einmal ohne. Bitte nehmen Sie nur eine Variante!

Variante mit <span>

nach Zeile: $this->glyph_replace = array(

'<abbr><span class="abbr">$1</span></abbr>', // 3+ uppercase #new 2010.08.23
'<abbr title="$2"><span class="abbr" title="$2">$1</span></abbr>', #new
2011.02.24 // 3+ uppercase acronym
'$1$2', #new 2011.05.28 // 3+ uppercase

Variante ohne <span>

nach Zeile: $this->glyph_replace = array(

'<abbr>$1</abbr>', // 3+ uppercase #new 2010.08.23
'<abbr title="$2">$1</abbr>', #new 2011.02.24 // 3+ uppercase acronym
'$1$2', #neu 2011.05.28 // 3+ uppercase

Mit Kleinschreibung im Abbr

In der Original-Textpattern-Installation wird eine Abbr nur aus Großbuchstaben (ABC) erzeugt. Eine Abbreviation aus ABcD oder aCde wird mit dieser Original-Methode jedoch nicht erzeugt. Falls Sie Abkürzungen mit Kleinbuchstaben häufiger verwenden müssen, können Sie dann folgenden Code einbauen.

Achtung, diese Methode hat leider eine unerwünschte Nebenwirkung. Wenn im normalen Text eine Klammer direkt an ein Wort gesetzt und angezeigt werden soll, erkennt Textpattern an dieser Stelle nicht den Unterschied zwischen einem echten Abbr und einem normalen Text mit Klammern und wird immer ein Abbr daraus machen.

im Bereich: function Textile() (relativ am Anfang)

if (txt_has_unicode) {
$this->regex_snippets = array(
'acr' => '\p{Lu}\p{Ll}\p{Nd}', #new 2011.02.24
'abr' => '\p{Lu}\p{Ll}', #new 2011.02.24
'nab' => '\p{Ll}',
'wrd' => '(?:\p{L}|\p{M}|\p{N}|\p{Pc})',
'mod' => 'u', # Make sure to mark the unicode patterns as such, Some servers seem to need this.
);
} else {
$this->regex_snippets = array(
'acr' => 'A-Za-z0-9', #new 2011.02.24
'abr' => 'A-Za-z', #new 2011.02.24
'nab' => 'a-z',
'wrd' => '\w',
'mod' => '',
);
}

Kommentarfunktion für diesen Artikel geschlossen.