News   Magazin   Börse   Links   ArcArchie   Homepages
 Magazin  StrongED Modus erweitern Home 
Hardware   Software   Praxis   Sonstiges  
StrongED Modus erweitern  Carlos Michael Santillán 8. 9. 2007
Text im Browser anzeigen Das man mit dem Texteditor StrongED einiges anfangen kann, sollte eigentlich bekannt sein. Einer der vielen Vorzüge sind die Modi für verschiedene Aufgaben. Für nahezu alle Arten von Texten gibt es einen passenden Modus, sei es z. B. für BASIC oder C Programme, Mails, HTML oder einfacher Text. Je nach Textart gibt es angepasste Funktionen und Schlüsselwörter werden unterschiedlich eingefärbt. StrongED verwaltet jeden Modus in einer eigenen Textdatei. Über diese Textdatei kann man selbst den jeweiligen Modus ändern. Für die Modi stellt StrongED einige Kommandos bereit, die auch in der StrongHelp Hilfe dokumentiert sind. Ich will hier nur kurz eine Möglichkeit aufzeigen einen Modus zu erweitern.

Der Text der ArcSite News wird als Text mit einigen HTML Tags geschrieben. Dabei wandelt ein Webtool die einfachen Zeilenumbrüche in HTML Umbrüche um und einiges mehr. Unschön an diesen Verfahren ist, daß z. B. Verweise auf andere Webseiten in HTML geschrieben werden müssen. Damit ist bei der Erstellung des Textes die Nachricht nicht sonderlich gut lesbar und birgt die Gefahr von Fehlern. Das Ergebnis sieht man erst, wenn man die News dem Webtool übergeben hat. Ich möchte aber den Text weiterhin in StrongED schreiben und dann gerne zwischendurch den aktuellen Stand als HTML begutachten, bevor ich die News dem Webtool übergebe. Nachträgliche Änderungen im Browser sind umständlich und man hat dort nicht die Möglichkeiten die ein Editor wie StrongED bietet. Die Lösung wäre in dem Text ein paar HTML Anweisungen hinzufügen, als HTML Datei zu speichern und dann im Browser anzuzeigen. Dies mit der Hand zu machen ist zwar nicht sehr aufwendig, aber eigentlich sollte der Rechner bzw. StrongED einem diese Arbeiten abnehmen.

Dazu habe ich den HTML Modus von StrongED etwas erweitert. Aber erstmal sollte man eine Kopie von der Modusdatei !StrongED.Defaults.Modes.HTML.ModeFile zur Sicherheit angelegt. Dann habe ich in dieser Datei am Ende des Blockes Functions folgende Zeilen eingefügt.

Ausschnitt aus Modusdatei Den Ausschnitt gibt es auch zum Download. Vor und hinter den Schlüsselwörtern Key, Menu und Select sind keine Leerzeichen, sondern jeweils ein Tabzeichen. Mit meinen vier Zeilen (incl. Leerzeile) hat StrongED zusätzlich den Menüpunkt "News im Browser anzeigen" im HTML Menü bekommen und es wird auf die Tastenkombination <Umschalt><F10> reagiert. Wenn man den Menüpunkt anklickt oder die Tastenkombination drückt, will StrongED die Kommandos in der Zeile hinter Select ausführen. Dort werden mit dem Kommando SetTmp() einige Variablen geholt von dem ich drei benötige. Die zweite Funktion in dieser Zeile SaveRun() speichert den Text und ruft dann die Obeydatei "htmlshow" auf. Der Pfad zum Obey wird über die StrongED-Variable <Tmp$Mode> angegeben und diese zeigt auf das aktuelle Modusverzeichnis. Mit <Tmp$Path>.<Tmp$Leaf> wird dem Obey noch der Dateiname incl. Pfad des Textes mitgegeben. Wie man sieht greift StrongED mit der Funktion SetTmp() einen helfend unter die Arme indem es die Tmp Variablen zur Verfügung stellt.

  1. gawk 'BEGIN { print "<html><body>" } { print $0 "<br>" } END { print "</body></html>" }' %0 > <Wimp$ScrapDir>.SEhtmlshow
  2. SetType <Wimp$ScrapDir>.SEhtmlshow &faf
  3. Filer_Run <Wimp$ScrapDir>.SEhtmlshow
Obey htmlshow, die Zeilen sind nummeriert (vermutlich wird die erste Zeile umgebrochen sein)

Da es die Datei "htmlshow" noch nicht gibt, wird die neue Funktion noch scheitern. Die Obeydatei muß nun im Verzeichnis !StrongED.Defaults.Modes.HTML.Tools angelegt werden. Vor dem Text muß nun "<html><body>" und am Schluß des Textes "</body></html>" hinzugefügt werden. Damit die Zeilenumbrüche auch im Browser als Umbrüche angezeigt werden, muß am Ende jeder Zeile noch ein "<br>" eingefügt werden. Dazu muß man ein Programm in z. B. BASIC, C, Perl oder Python schreiben. Diese Programmiersprachen sind mir aber für diesen kleinen Job viel zu umständlich. Ich habe mich für gawk, eine freie awk Variante, entschieden, die so eine kleine Aufgaben mit Links erledigt. Um (g)awk Programme zum Laufen zu bekommen braucht man einen awk Interpreter. Ich haben den von http://www.duncan.moore.freeuk.com/riscos/ genommen und ins Verzeichnis !Boot.Library abgelegt. Da der Standard WimpSlot von 640 kByte nicht nur für awk zu klein ist, muß man ihn erhöhen. Ich habe gute Erfahrungen mit einen WimpSlot von zwei MByte gemacht. Dies kann man im Taskmanager händisch einstellen oder in der Kommandozeile via *WimpSlot 2048 machen. Ich selbst habe den Kommandozeilenaufruf in eine Obeydatei geschrieben und in !Boot.Choices.Boot.Tasks abgelegt und damit ist mein Standard WimpSlot zwei MByte groß. Man kann aber auch gerne das Tool MiscSetup benutzen, das aber nichts anderes als mein Obey macht. Wer sich eher mit BASIC, C oder eine anderen Programmiersprache auskennt, kann gerne diese für solche Aufgaben nehmen. Man könnte auch statt eines Obey z. B. direkt ein BASIC Programm aufrufen. Das ist jedem selbst überlassen. Was zählt ist eh was hinten raus kommt. Das eigentliche awk Programm steht in der ersten Zeile des Obey zwischen den Hochkommas. Mit "%0" bekommt das Programm die Textdatei übergeben. Das entspricht der Datei <Tmp$Path>.<Tmp$Leaf> aus der Modusdatei, also dem Newstext aus StrongED. Das Ergebnis wird mit Hilfe der Systemvariablen Wimp$ScrapDir in der Datei "SEhtmlshow" im Verzeichnis für die temporären Daten in !Scrap gespeichert. Im Programm selbst wird zuerst im BEGIN-Block "<html><body>" ausgegeben. Dann kommt jede Zeile des Textes und dabei wird jeweils ein "<br>" am Zeilenende angehängt. Wenn alle Zeilen abgearbeitet sind, wird am Schluß im END-Block noch "</body></html>" ausgegeben. Wie man sieht benötigt das awk Programm nur sehr wenige Anweisungen um eine einfache HTML Seite zu erstellen. Mit SetType bekommt dann die Datei "SEhtmlshow" den Dateityp HTML (&faf) und wird anschließend mit *Filer_Run ausgeführt. In meinen Fall wird dann die HTML Datei von dem Browser NetSurf angezeigt. Die Datei wird nicht gelöscht, da diese dann gelöscht würde bevor der Browser sie anzeigen kann. Da die News eh nicht sehr umfangreich sind und die alte immer wieder überschrieben wird, ist es zu verschmerzen an dieser Stelle unsauber zu sein.

Mit ein paar Zeilen habe ich StrongED beigebracht mir auf bequeme Weise beim Schreiben der News immer den aktuellen Stand als HTML anzuzeigen. So kann ich den Text einfach lesen und die Links und andere HTML Anweisungen überprüfen. Vielleicht ist dies eine Anregung sich etwas mehr mit StrongED zu beschäftigen und der Editor kann noch weit mehr. Ein Blick in die Modusdateien und der Dokumentation kann da sehr hilfreich sein um kleine und größere Probleme elegant mit StrongED zu lösen.
Hardware   Software   Praxis   Sonstiges  
ArcSite   News   Magazin   Börse   Links   ArcArchie   Homepages