Montag, 26. Februar 2007

Intypo 0.9.0 released

Darius 18.54 Uhr Filed under: IntypoMy WebLab

A new version of my Intypo plugin for improved typography in WordPress blog software is available now.

What’s new in Intypo 0.9.0

  • Intypo is now replacing the original »wptexturize()« function. (Intypo 0.6.4 was post-filtering after texturize.) This avoids unnecessary double replacement.
  • Just like the original texturize function, Intypo keeps away from <code>, <pre>, <style>, and <script> areas now.
  • Intypo has several improvements in the regular expressions for much better recognition of quotation marks.
  • You can now add your own phrases starting with apostrophes to avoid replacement with single quotes.
  • This »cockney replace« function is now only applied, if the cockney word is followed by a space. This allows phrases which are identical with some word beginnings (e.g. ’t in Dutch or ’ne in German).
  • Changed usage of m-dashes (as suggested by Till Westermayer), but depending on language style. (If the default english style is selected, two dashes surrounded by spaces are replaced by a m-dash. If a different style is selected, they get replaced by a n-dash. You can still invoke a m-dash by typing three dashes then.)
  • Reworked admin page, suggesting quote styles depending on the language selected (avoiding the long list of old Intypo) and with a larger preview text for easier recognition of the quotation marks.
  • Some minor changes which might save some server memory and increase speed.
  • Filter is now beeing applied to »category_description«, »list_cats«, »comment_author«, »comment_text«, »single_post_title«, »the_title«, »the_content«, »the_excerpt«, and »bloginfo«.

Installation and upgrade instructions:

  1. Download Intypo from my downloads page.
  2. If upgrading, delete the old intypo.php file from your plugins directoy.
  3. Unpack the downloaded file.
  4. Copy the intypo folder with its two files to your plugins directory, so that the new intypo.php is now located at wp-content/plugins/intypo/intypo.php
    and you have the language codes at wp-content/plugins/intypo/language.php
  5. Go to your plugins page and activate Intypo. (This is also necessary if upgrading!)
  6. Go to Options / Intypo page and select the desired style. (You may even select a style from a different language, if you want.

Some examples which did not work with earlier versions of Intypo (and still don’t without Intypo):

  • Dutch: Jeroen in ’t Veldt
  • German: »Gib mir mal ’nen Besen!«
  • English: You may download Intypo (»here«).
Dienstag, 23. Januar 2007

WordPress 2.1 released – InTypo working fine

Darius 12.56 Uhr Filed under: IntypoMy WebLab

Exactly at the right moment, WordPress 2.1 is here, including a new option to use a static page as start page for a WordPress driven site. This is just what I was thinking about as a solution for a small website I am currently creating, which has a static main page but needs to be extended by a news page.

Good news: all* plugins I am running in my WordPress blogs seem to work fine with WP 2.1. Especially, I am glad to say:

No problems encountered with the current version of my InTypo plugin in WordPress 2.

Update: Sadly, there is a problem with the well known Blix theme (featured as one of the few on the official WordPress website) in WordPress 2.1. I was using part of its code to get a list of my static pages on top of my site, but it is not working in WP 2.1

2nd Update: I found and fixed a solution for Blix theme in WordPress 2.1. Used the same method to fix my own theme.

* note: The WP-Stats plugin required an update, which is available from the author’s website.

Sonntag, 17. September 2006

Battle of Extensions: Colorzilla vs. Adblock

Darius 17.30 Uhr Filed under: My WebLab

Gestern habe ich endlich die neue Firefox-Version aufgespielt und wie üblich gleich die Erweiterungen aktualisieren lassen. Leider scheint es jetzt eine Inkompatibilität zwischen den Erweiterungen ColorZilla und sowohl Adblock als auch Adblock Plus zu geben.
Bei Verwendung von ColorZilla verweigern sowohl Adblock (»Adblock is not yet enabled: Make sure the bowser is located on a write-accessible disk.«) als auch Adblock Plus den Dienst und Firefox startet oft nicht korrekt. Wird ColorZilla deaktiviert, dann funktioniert alles. Schade, denn vorher kamen die sich nicht in die Quere und auf beide möchte ich nicht verzichten.

Meine Umgebung:

  • Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.0.7) Gecko/20060911 SUSE/1.5.0.7-0.1 Firefox/1.5.0.7
  • ColorZilla 0.8.3.1
  • Adblock 0.5.3.043

Das Problem beschreibt auch jemand unter Gentoo Linux. Leider verstehe ich weit weniger als er davon.

Update: Leider gibt es immer noch keine neue Version von ColorZilla. Da ColorZilla nicht in Firefox 2.0 funktioniert, hat sich das o.g. Problem erübrigt. Schade aber, dass es keinen ColorZilla für FF2 gibt.

Mittwoch, 2. August 2006

Bastelarbeit

Darius 9.59 Uhr Filed under: My WebLab

Keine zwei Tage nachdem dieses Blog wieder provisorisch online ist, hat Thaden es schon bemerkt und klagt, dass er es nicht früher entdeckt hätte. Seit letzter Nacht hat es nun auch wieder ein individuelles Design. Zwar stellt der Internet Explorer es nicht korrekt dar, aber das ist mir erstmal egal. Auch sonst ist noch nicht alles so, wie ich es mir wünsche, aber als Provisorium reicht es. Der Rest ist work in progress…

Und, Thaden, nun bitte eine neue Schaltfläche basteln, um deinen hohen Aktualitätsansprüchen treu zu bleiben!

Dienstag, 20. Dezember 2005

Bastelanleitung: Wechselnde Themes zu Sonnenauf- und -untergang

Darius 16.25 Uhr Filed under: My WebLab

Mein Weblog wechselt zum Sonnenaufgang auf ein helles Design, nach Sonnenuntergang wieder auf ein dunkles (abhängig vom Sonnenstand bei mir). Wer ein bisschen etwas davon versteht, kann es leicht nachbasteln. Vielleicht fühlt sich ja sogar jemand inspiriert, ein Plugin für diese Aufgabe zu schreiben.

Mit PHP5 wäre die Berechnung der Sonnenauf- und -untergangzeiten ein Kinderspiel, denn PHP5 verfügt über die Funktionen date_sunrise() und date_sunset().
In der Online-PHP-Dokumentation hat aber jemand ein Skript veröffentlicht, das die gleiche Aufgabe für PHP4 erfüllt.

Das, was ich von dem Skript brauche, habe ich als kleine PHP-Datei mySuntimes.php in mein Theme-Verzeichnis gelegt und per include() in die header.php meines Themes einbezogen:<?php include get_template_directory().«/mySuntimes.php«; ?>Mein Skript gibt drei Variablen zurück, $myDaytime, $mySunrise und $mySunset. Die erste enthält entweder »day« oder »night«, die anderen beiden die Uhrzeiten des Auf- und des Untergangs. Da das Skript nicht zur Weitergabe gedacht ist, habe ich Längen- und Breitengrad fest vorgegeben.

Das Stylesheet meines Themes habe ich in drei Dateien aufgeteilt: style_day.css enthält ausschließlich die Farbangaben für die helle Variante des Blogs, style_night.css enthält die dunkle Alternative. Alle übrigen Angaben (Größen, Positionen, Schriftarten…) verbleiben in style.css. Die beiden erstgenannten CSS-Dateien enthalten zu Beginn eine Zeile@import "style.css";Damit werden die Angaben aus style.css in die beiden anderen CSS-Dateien jeweils einbezogen.

In der Datei header.php meines Themes wird je nach Tageszeit das eine Stylesheet eingestellt und das andere mit dem Zusatz »alternate« versehen. Im <head>-Bereich des Seitencodes steht also:<link rel="<?php if ($myDaytime==«night«) echo 'alternate '; ?>stylesheet« href=«http://url_of_my_theme/style_day.css« type=«text/css« media=«screen, projection« title=«Tag« />
<link rel=«<?php if ($myDaytime==«day«) echo 'alternate '; ?>stylesheet« href=«http://url_of_my_theme/style_night.css« type=«text/css« media=«screen, projection« title=«Nacht« />
Außerdem wird ein JavaScript eingefügt, das es den Seitenbesuchern erlaubt, das Theme per Mausklick wieder zu ändern:[...]
<?php wp_head();?>
<script type=«text/javascript«>
function CSSSelect(title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName(«link«)[i]); i++) {
if(a.getAttribute(«rel«).indexOf(«style«) != -1 && a.getAttribute(«title«)) {
a.disabled = true;
if(a.getAttribute(«title«) == title) a.disabled = false;
}
}
}
</script>
</head>
Damit dieses Skript aufgerufen werden kann, werden außerdem an geeigneter Stelle zwei kleine Grafiken, day.gif und night.gif angezeigt, die angeklickt werden können, um das Stylesheet zu wechseln:<body>
[…]
<div id=«DayNight«>
<img id=«day« xsrc=«http://url_of_my_theme/day.gif« width=«16″ height=«16″ alt=«Tag« title=«Sonnenaufgang <?php echo $mySunrise; ?> Uhr« onclick=«CSSSelect(‹Tag‹);return false;« />
<img id=«night« xsrc=«http://url_of_my_theme/night.gif« width=«16″ height=«16″ alt=«Nacht« title=«Sonnenuntergang <?php echo $mySunset; ?> Uhr« onclick=«CSSSelect(‹Nacht‹);return false;« />
</div>
[…]

Zur Positionierung (bitte Koordinaten nach eigenem Bedarf anpassen) der beiden Grafiken day.gif und night.gif wird style.css ergänzt:#DayNight { position: relative; top:110px; left:170px; z-index:10 }
img#night { padding: 2px; border: solid 1px }
img#day { padding: 2px; border: solid 1px; margin-right: 10px }

Außerdem soll das Symbol des jeweils aktiven Themes anders markiert werden als das andere. Deshalb enthält style_day.css z.B. folgende Angaben:img#night { background-color: black; border-color: #444 }
img#day { background-color: black; border-color: #a0a0a0 }
img#night:hover { border: solid 1px red; cursor: pointer; background-color: #444 }
und style_night.css enthält:img#day { background-color: black; border-color: #444 }
img#night { background-color: black; border-color: #a0a0a0 }
img#day:hover { border: solid 1px red; cursor: pointer; background-color: #444 }

Also, wie gesagt, das ist nur eine Bastelanleitung zum Selbertüfteln. Ich biete keinen Rundum-Support und keine Komplettlösung, aber wer etwas davon versteht, soll diese Anregung gerne aufgreifen und/oder weiterentwickeln. (Achtung: in obigen Code-Schnippseln sind u.U. falsche Anführungszeichen wiedergegeben.)

Donnerstag, 3. November 2005

Umlaut-Korrektur für WordPress-Plugin ›WP-Lists‹

Darius 0.32 Uhr Filed under: My WebLab

Wer in seinem WordPress-Weblog Listen anlegen und beispielsweise in die Randleiste einbauen möchte, ist mit dem Plugin »WP-Lists« von Navid Azimi gut bedient. Bei meinen Weblogs gab es jedoch ein Problem mit Umlauten, das möglicherweise daher rührt, dass Server und Datenbank eine andere Zeichenkodierung (ISO 8895-1) als das Weblog (UTF-8) verwenden. However, ich will die Ursachen nicht lange suchen, da ich eine Lösung für das Problem längst gefunden habe. Mein erster Ansatz war, die Umlaute in eingegebenen Listenelementen in HTML-Umschreibungen einzugeben, also beispielsweise »Käse« als »K&auml;se«. Das Ergebnis war in Ordnung, aber die Eingabe so ja keineswegs komfortabel. Nun gibt es in PHP ja eine Funktion, die genau diese Arbeit abnimmt: htmlentities(). Diese habe ich einfach in den Code des Plugins eingebaut, und damit stellt das Plugin die Umlaute nun richtig dar. (Nur im Admin-Bereich erscheinen im großen Feld »List Items« noch die fehlerhaften Zeichen.)
Die Ergänzung ist in Zeile 210 der Datei wp-lists.php im Plugins-Verzeichnis vorzunehmen: Statt
foreach( $items AS $item )
{
$name = $item->item_name;
$url = $item->item_url;

muss es dann einfach heißen
foreach( $items AS $item )
{
$name = htmlentities($item->item_name);
$url = $item->item_url;

Donnerstag, 27. Oktober 2005

Intypo, WordPress-Plugin für internationale Typografie, Version 0.5

Darius 12.47 Uhr Filed under: IntypoMy WebLab
Buchtipp:

Intypo, das Plugin zur Internationalisierung der Typografie von WordPress, funktioniert in Version 0.5 erstmal ausschließlich mit deutscher Typografie, richtig international wird es erst später.
Überhaupt ist das ganze bisher nur ein dürftiger Notbehelf und bestimmt lausig programmiert und verdient den Namen Plugin kaum, aber später soll alles besser werden und mit einem Administrationsmenü die Wahl zwischen verschiedenen internationalen Möglichkeiten bestehen.

Was Intypo 0.5 leistet:
Das, was ich bisher als Eingriff in die Datei functions-formatting.php beschrieben hatte, ist hier als Plugin angeboten, d.h. es ist kein Eingriff in Dateien nötig, es muss nur die Datei intypo.php in das Plugins-Verzeichnis kopiert und dann in der Plugin-Verwaltung aktiviert werden.
Nach der Aktivierung von Intypo stellt WordPress Text, der so eingegeben wurde
Handke schreibt: "Beim neuerlichen Aufblicken - 'die Arbeit hat Zeit, ich habe Zeit, ich und sie, wir haben Zeit' - schwirrte es geradezu von dem Tag jetzt, und er bemerkte, wie er, ohne die Worte gesucht zu haben, im Stillen dachte: 'Heilige Welt!'"
folgendermaßen dar:

Handke schreibt: »Beim neuerlichen Aufblicken – ›die Arbeit hat Zeit, ich habe Zeit, ich und sie, wir haben Zeit‹ – schwirrte es geradezu von dem Tag jetzt, und er bemerkte, wie er, ohne die Worte gesucht zu haben, im Stillen dachte: ›Heilige Welt!‹«

Achtung
Intypo 0.5 funktioniert nicht richtig, wenn zugleich eins der Plugins Markdown oder Textile aktiviert sind.
Und: Intypo 0.5 bearbeitet vorerst nur den langen Text, nicht die Darstellung in den Auszügen.

Download

Dienstag, 8. März 2005

WordPress 1.5 mit deutscher Typografie

Darius 17.07 Uhr Filed under: IntypoMy WebLab

Die Umstellung dieses Weblogs auf WordPress 1.5 ist dank der Anleitung auf WordPress.de recht problemlos gelungen (nur das MyStuff-Plugin lässt sich nicht administrieren).
Natürlich musste die Datei functions-formatting.php (im Verzeichnis wp-includes) wiederum an deutsche Typografie angepasst werden. Falls sich jemand dafür interessiert: Zunächst sind alle Vorkommen der englischen Anführungszeichen vorne (#8220) zu ersetzen durch Anführungszeichen unten (#8222). Dann sind die englischen Schlusszeichen (#8221) durch deutsche Schlusszeichen (#8220) zu ersetzen (diese entsprechen den englischen Anführungszeichen vorn). Dann noch das gleiche mit den einfachen Anführungszeichen, hier ist aber darauf zu achten, dass der Apostroph unverändert (#8217) bleibt. Das englische einfache Anführungszeichen vorn (#8216) ist durch das tiefe deutsche (#8218) zu ersetzen, sodann ist das englische einfache Schlusszeichen (#8217) dort, wo es nicht als Apostroph verwendet ist, durch das deutsche Pendant (#8216) zu ersetzen.
Die Zeilen
$curl = preg_replace('/(\s|\A|")'/', '$1&#8216;', $curl);
$curl = preg_replace(‹/(\s|\A)«(?!\s)/‹, ›$1&#8220;$2′, $curl);
$curl = preg_replace(‹/«(\s|\S|\Z)/‹, ›&#8221;$1′, $curl);
$curl = preg_replace(«/‹([\s.]|\Z)/«, ›&#8217;$1′, $curl);
$curl = str_replace(«›‹«, ›&#8221;‹, $curl);

sind also zu ersetzen durch
$curl = preg_replace('/(\s|\A|")'/', '$1&#8218;', $curl);
$curl = preg_replace(‹/(\s|\A)«(?!\s)/‹, ›$1&#8222;$2′, $curl);
$curl = preg_replace(‹/«(\s|\S|\Z)/‹, ›&#8220;$1′, $curl);
$curl = preg_replace(«/‹([\s.]|\Z)/«, ›&#8216;$1′, $curl);
$curl = str_replace(«›‹«, ›&quot;‹, $curl);

Und zur weiteren Verbesserung der Typografie sind am besten oberhalb dieser Zeilen noch die folgenden hinzuzufügen:
$curl = str_replace("'"", '&#8216;&#8220;', $curl);
$curl = preg_replace(‹/«(\.|,|:)/‹, ›&#8220;$1′, $curl);
$curl = str_replace(« – «, › &#8211; ›, $curl);
$curl = str_replace(« –, «, › &#8211;, ›, $curl);

Nach diesen Korrekturen stellt WordPress Text, der so eingegeben wurde

Handke schreibt: "Beim neuerlichen Aufblicken - 'die Arbeit hat Zeit, ich habe Zeit, ich und sie, wir haben Zeit' - schwirrte es geradezu von dem Tag jetzt, und er bemerkte, wie er, ohne die Worte gesucht zu haben, im Stillen dachte: 'Heilige Welt!'"

folgendermaßen dar:

Handke schreibt: »Beim neuerlichen Aufblicken – ›die Arbeit hat Zeit, ich habe Zeit, ich und sie, wir haben Zeit‹ – schwirrte es geradezu von dem Tag jetzt, und er bemerkte, wie er, ohne die Worte gesucht zu haben, im Stillen dachte: ›Heilige Welt!‹«

Anmerkung: Durch das Plugin, das ich geschrieben habe, wird dieser Eingriff in die Datei functions-formatting.php überflüssig.

Montag, 10. Januar 2005

WordPress, 2. Versuch

Darius 12.52 Uhr Filed under: My WebLab

Angeregt durch Foxis Suche nach einem werbefreien Weblog habe ich mich nochmal intensiver mit WordPress befasst. Inzwischen bin ich mit der Gestaltung einigermaßen zufrieden, allerdings scheint mein derzeitiges Layout nur von neueren Mozilla-Browsern korrekt umgesetzt zu werden. Leider ist wohl zu erwarten, dass ich die diversen Anpassungen, die ich vorgenommen habe, beispielsweise um deutsche Typografie bei den Anführungszeichen zur erreichen („…” statt “…”), bei einer neueren WordPress-Version erneut vornehmen müssen werde.