Kate HTML Entities
Script zum Umwandeln von Umlauten in HTML-Entities im aktuellen Kate-Dokument
Der KDE-Texteditor kate bringt von Haus aus keine Möglichkeit mit, Umlaute in HTML-Entities umzuwandeln. Das folgende Skript durchsucht das aktuelle Dokument nach Umlauten und ersetzt sie durch die entsprechenden Entities. Kate muß dazu natürlich laufen.
Wenn Kate nicht läuft, hagelt es Fehlermeldungen, dieses ist noch nicht abgefangen.
Das Skript ist noch fürchterlich langsam, man kann zusehen wie im Editorfenster die Umlaute verschwinden und die Entities erscheinen. Es liegt u.a. daran daß jedesmal das komplette Dokument von Anfang an durchsucht wird. Nicht besonders schlau, schon klar, aber es ist die erste Version, und soll ja noch Raum für Verbesserungen lassen
#!/bin/bash
# Script zum Ändern aller deutschen Umlaute in HTML-Entities im aktuellen Dokument in kate
# leider ist es fürchterlich langsam.
# Stephan Elsner 2006
app="dcop kate"
docnum=`$app KateDocumentManager activeDocumentNumber`
doc="#$docnum"
# ------------------------------------------------------------------------------
# Suchen und Ersetzen aller Vorkommnisse eines Strings im aktuellen Kate-Dokument
function ReplaceAll() {
while ((1));
do
SearchReplace
if [ $result = "false" ]; then
return
fi
done
}
# ------------------------------------------------------------------------------
# Suchen und Ersetzen in kate
# benötigt neben $app und $doc auch $search und $replace
function SearchReplace() {
result=`$app SearchInterface$doc findFirstString $search 1`
if [ $result = "true" ]; then
matchline=`$app SearchInterface$doc currentMatchLine`
matchcol=`$app SearchInterface$doc currentMatchCol`
# Vorsicht, Bug in Kate: die übergabe unsinniger Parameter
# bei removeText kann Kate zum Absturz bringen!
dummy=`$app EditInterface$doc removeText $matchline $matchcol $matchline $((matchcol+1))`
dummy=`$app EditInterface$doc insertText $matchline $matchcol $replace`
fi
}
search="ä"
replace="ä"
ReplaceAll
search="ö"
replace="ö"
ReplaceAll
search="ü"
replace="ü"
ReplaceAll
search="Ä"
replace="Ä"
ReplaceAll
search="Ö"
replace="Ö"
ReplaceAll
search="Ü"
replace="Ü"
ReplaceAll
search="ß"
replace="ß"
ReplaceAll
exit
zurück zu Programmierung