Benchmarko Logo
Benchmarko Logo
Home
Projekte
CPCEMU
Software
Download
Kontakt
Links

Englisch
 
zurück

BM Website Generator

Version: v1.07
Datum: 20.01.2002
System: beliebig
Programmiersprache: Perl 5
Autor: Marco Vieth
Download (bmcreate107.zip - BM PerlGen v1.07)

 

Einführung

Sie ziehen es vor, Ihre HTML-Seiten mit einem Editor schreiben, wollen aber auf einige Vorzüge einer richtigen HTML-Entwicklungsumgebung nicht verzichten? Dann ist vielleicht bmcreate das richtige für Sie.

Dieses Programm paßt unter anderem die Links in Ihren HTML-Seiten automatisch an. Sie brauchen gar nicht genau zu wissen, wo Grafiken und andere HTML-Seiten einmal liegen werden. Um z.B. das Bild bm_german.gif einzubinden, schreiben Sie einfach
<img src="##bm_german.gif" ...> und bmcreate bindet den richtigen relativen Verweis ein: <img src="../../pics/bm_german.gif" ...>.
Dadurch brauchen Sie nicht aufpassen, wie viele Stufen zurück es zum Bilderordner sind und Umstrukturierungen der gesamten Website sind problemlos möglich.

Aber nicht nur Links werden unterstützt, sondern auch INCLUDEs und DEFINEs. Damin können Sie gemeinsame HTML-Teile in zentrale Dateien auslagern. Änderungen am Design einer Website können so an einer Stelle erfolgen.

Zu guter Letzt werden noch Umlaute in die dafür vorgesehenen HTML-Zeichenfolgen umgesetzt.

Vorzüge von bmcreate

  • Die Dateien werden in ein Publizierverzeichnis kopiert, die Originale bleiben erhalten
  • Es werden nur die Dateien kopiert, die sich geändert haben
  • Dateien mit gleichem Namen wie das Verzeichnis werden automatisch in index.html (bzw, index_e.html für englische Seiten) umbenannt.
  • Volle Kontrolle über den HTML-Quelltext
  • In HTML-Seiten können Makros definiert und benutzt werden
  • In HTML-Seiten werden Links automatisch angepaßt
  • In HTML-Seiten werden Umlaute ersetzt (kann auch mit ##CHARMAP ausgeschaltet werden, z.B. für JavaScript, s.u.)

Wie funktioniert das jetzt genau?

bmcreate kopiert die Dateien eines Verzeichnisbaues in einen Publizier-Verzeichnisbaum. Es werden nur die Dateien kopiert, die entweder noch nicht vorhanden waren oder neueren Datums sind, also geändert wurden. HTML-Dateien werden dabei besonders behandelt, da sie sogenannte Makros enthalten können, die durch ## gekennzeichnet sind und die neue Funktionalität ermöglichen. Definierte Makros sind z.B.

  • ##<Datei> sucht die Datei im Verzeichnisbaum und ersetzt das Makro durch den relativen Pfadnamen. Idealerweise bestehen Dateien aus Kleinbuchstaben und sind vom Namen her eindeutig. Falls eine Datei genauso heißt wie das Verzeichnis, in der sie sich befindet, wird sie im Publizerverzeichnis automatisch in index.html umgewandelt. Neben Dateien gibt es auch noch andere vordefinierte Werte:
  • ##<Definition> ersetzt das Makro durch dessen Wert. Es gibt schon einige vordefinierte Makros, die Sie benutzen können. Sie können aber auch eigene Makros definieren oder vorhandene neu definieren. Idealerweise benutzen Sie dafür Großbuchstaben. Hier die vordefinierten Makros:
    • ##DATE: aktuelles Datum, z.B. 19.04.2008
    • ##TIME: aktuelle Uhrzeit, z.B. 11:03:54
    • ##AUTHOR: Name des Autors, z.B. Marco Vieth
    • ##GENERATOR: Der Webseiten-Generator, z.B. BM PerlGen v1.075
    • ##MAILTO: die Mail-Adresse, z.B. mail@benchmarko.de
    • ##CHARMAP: Zeichenersetzung für Umlaute (äöüÄÖÜß) erlauben (1) oder verbieten (0). Derzeitige Einstellung: 1
    • ##_BM_TAG: die Makro-Kennung ##. Systemmakros starten mit einem Unterstrich (_) und sollten nicht benutzt werden.
    • ##_BM_NOCOPY: Dateimuster der nicht zu kopierenden Files, standardmäßig sind das inc_*.txt, *.pl und *.bat
    • ##DEFINE, ##INCLUDE, ##VFILE, ##IF, ##ELSE, ##ENDIF: Spezialmakros, die nicht neu definiert werden sollten.

    Die folgenden Spezialmakros sollten von HTML-Kommentaren umschlossen und jeweils in einer eigenen Zeile stehen.

  • <!-- ##DEFINE <Makro> = '<Wert>' --> weist einem Makro einen Wert zu. Idealerweise benutzen Sie als Makronamen nur Großbuchstaben.
  • <!-- ##INCLUDE '<Datei>' --> fügt den Text der angebenen Datei an der Stelle ein. Wenn die Datei automatisch gesucht werden soll, schreiben Sie auch vor den Dateinamen ##. Günstig ist es, die Include-Dateien inc_*.txt zu nennen, da solche Dateien nicht in das Publizierverzeichnis kopiert werden.
  • <!-- ##VFILE '<Datei>'--> öffnet ein neues virtuelles File (d.h. eines, was im Quellbaum nicht existiert) und schreibt den nachfolgenden HTML-Code hinein, bis entweder ein neues ##VFILE kommt oder die Datei zu Ende ist.
  • <!-- ##IF <Makro> = '<Wert>' --> oder
    <!-- ##IF <Makro> != '<Wert>' --> vergleicht das Makro mit dem Wert. Falls die Bedingung erfüllt ist, werden die folgenden Zeilen ausgegeben, andernfalls ignoriert. Solche Abfragen können auch geschachtelt werden, müssen aber wie üblich in einer eigenen Zeile stehen.
  • <!-- ##ELSE --> ist die Sonst-Bedingung innerhalb von IF.
  • <!-- ##ENDIF --> schließt ein IF ab.

Beispiel

...

Historie

1.00 (02.02.2001)
first tests; copy only modified files (with newer timestamps);
rename files to index.html, if they are named like the directory
1.01 (03.02.2001)
replace special characters;
nested ##INCLUDE "<file>" possible
1.02 (09.02.2001)
##DEFINE <key>='<value>' (value can be a ##<file>);
##INCLUDE '##<file>' (no double quotes any more, ## needed to search file)
1.03 (10.02.2001)
destination tree check; some statistical output
1.04 (13.02.2001)
support index_e.html for English pages
1.05 (14.09.2001)
##VFILE to create virtual files
1.051 (17.09.2001)
new internal parameter _BM_TAG to modify the tag ##, _BM_NOCOPY; open optional definition file bmcreate1.def first
1.06 (11.11.2001)
support for French and Spanish pages;
new commands ##IF, ##ELSE, ##ENDIF
1.061 (12.11.2001)
parameters are now defined in one html file context only
1.07 (19.01.2002)
Problem with uppercase filenames under Windows: convert all to lowercase

 


Marco Vieth, 19.04.2008 11:03:54