Htm2Slideshow ist freie Software im Sinne der GNU General Public License.
Copyright (C) 2008, 2009, 2010
Michael Uplawski <michael.uplawski@uplawski.de>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Der vollständige, englische Text der Lizenz liegt im Programmarchiv, hier geht es zu einer deutschen Übersetzung: GPL, V3
Da es sich bei Ruby um eine Interpreter-Sprache handelt, muss
Ruby (ab Version 1.8.6) installiert sein, sonst funktioniert
Html2Slideshow nicht. Wer das noch nachholen muss, sollte hier
beginnen: Ruby
Homepage.
Außerdem werden, um die grafische Oberfläche nutzen zu
können, die Ruby/GTK2-Bindings
gebraucht.
Version 0.6 ist die erste, deren grafische Oberfläche ich mit der GTK2-Bibliothek programmiert habe.
Es gibt keine Ruby-Gem für Html2Slideshow.
Das Zip-Archiv entpackt sich in ein Verzeichnis html2slideshow_[Versions-Kennzeichen]. Darin sind alle Dateien enthalten, die benötigt werden und sie liegen auch bereits dort, wo sie hingehören. Es kann also das gesamte Verzeichnis zuerst an seinen endgültigen Platz verschoben werden.
Unter Linux gehe ich vielleicht so vor:
mv html2slideshow_0.2.3 /usr/local/share/.
Das kann sich aber kein Mensch lange merken und wenn ich das
Programm aktualisieren oder löschen möchte, liegt es in
/usr/local/share vielleicht längst gut versteckt...
Darum verwende ich bei sowas immer Paco:
paco -lD mv html2slideshow_0.2.3 /usr/local/share
So. Jetzt muss noch dafür gesorgt werden, dass der
Ruby-Interpreter bequem an das Start-Skript
html2slideshow.rb
herankommt. Dazu liegt im
Programm-Verzeichnis bereits ein Shell-Skript
html2slideshow.sh
, das z.B. in /usr/local/bin
oder an anderer Stelle im Suchpfad für ausfürbare
Dateien untergebracht werden kann, eventuell auch einfach als
symbolischer Link. Den Inhalt sollte man noch anpassen, damit es
auch funktioniert. So sieht das Original-Skript aus:
#!/bin/sh
ruby /usr/local/share/html2slideshow_0.6/html2slideshow.rb
"$@"
Für den Start des GUI-Programms sollte das Startskript durch den GTK-Dialog ersetzt werden, wie folgt
#!/bin/sh
ruby /usr/local/share/html2slideshow_0.6/html2slideshowGui.rb
Es gibt keinen Windows-Installer für Html2Slideshow
Das Programmverzeichnis kann an einem beliebigen Ort
untergebracht werden, auch in
c:\Programme\html2slideshow
Danach sollte die Batch-Datei html2slideshow.bat in den
Pfad für ausführbare Dateien verlegt werden. Alternativ
lässt sich natürlich der Aufruf des Ruby-Interpreters
mit einem Programmsymbol auf dem Windows-Desktop oder in der
Startleiste verknüpfen:
rubyw c:\Programme\html2slideshow_0.6\html2slideshowGui.rb
Es gibt keine Langanleitung
.
Diese Anleitung gilt auch nur für das Konsolenprogramm, da für die GUI ein eigenes HOWTO im Programmverzeichnis zu finden ist oder hier: HOWTO (englisch)
Ausgangspunkt kann ein Verzeichnis mit Bild-Dateien der unterstützten Grafikformate sein oder eine oder mehrere (X)HTML-Seiten, in denen solche Bilder verlinkt wurden. Aus solchen Seiten besteht bisher eigentlich mein ganzer Web-Auftritt.
Bis man sich durch den Text nach unten geskrollt hat, vergeht Zeit. Leute, die gerne nur die 20 Fotos anschauen, haben bei mir ziemliches Pech. Aber darum wende ich jetzt eben html2slideshow auf alle meine Provence-Seiten an und erzeuge rasch ein paar Diashows, völlig ohne Text (ich ignoriere die Dateiendungen .sh oder .bat für die Startskripte):
html2slideshow -s [lokales Web-Projekt]/Provence -t slideshow
Die beiden Parameter bedeuten:
Die anderen möglichen Parameter sind:
Mein Ruby-Programm html2slideshow
findet entweder in
einem Verzeichnis die dort enthaltenen Bilddateien oder liest den
Inhalt aller (x)html-Dateien in diesem Verzeichnis und extrahiert
daraus alle Referenzen zu verlinkten Bildern. Zu jeder Seite, die
solche Referenzen enthält, wird danach eine neue XHTML-Seite
erzeugt, die beim Aufruf im Browser eine JavaScript-Diashow der
gefundenen Bilder anzeigen kann. Werden als Quelle keine
HTML-Dateien verwendet, entsteht statt dessen eine Diashow aus
den Bildern in einem Verzeichnis.
Die Bild-Dateien selbst, bleiben stets wo sie sind und werden auch von dort für die Diashow geladen. Es wird auch kein Bild in seiner Größe angepasst. Die Bilder müssen also vor dem Erzeugen der Diashow bereits so dimensioniert werden, dass sie ins Browserfenster passen. Der Platz, den die Bedienelemente der Diashow beanspruchen, muss dabei berücksichtigt werden.
Zur Zeit verweigere ich dem Microsoft-Internet-Explorer den Zugang zu den erzeugten Seiten, weil ich für die Fehldarstellungen in diesem Browser keine Verantwortung übernehmen möchte.
Beginnend mit Version 0.4, sollen Änderungen im Programm und vielleicht auch Ankündigungen solcher Änderungen auf dieser neuen Seite aufgelistet werden (englisch): History of changes.
Es funktioniert.
Es funktioniert nicht alles so, wie ich es mir wünsche. Ich
bin zufrieden damit, in meiner aktuellen
Lieblings-Pogrammiersprache ein Programm geschaffen zu haben, das
mir selbst schon jetzt ein bisschen nützlich ist.
Darüber hinaus bin ich ziemlich überzeugt davon, dass
trotz der hin und wieder noch unbeholfen wirkenden Umsetzung,
mein Ruby- Code nicht schlecht ist und die Software sogar
recht stabil arbeitet. Freilich kann überall noch geschraubt
und poliert werden.
Die erzeugten Diashows werden JPEGs, GIFs oder PNGs enthalten, die Formate, die man gewöhnlich im Web findet. Allerdings untersuche ich keine Datei nach entsprechenden Header-Daten, um etwa die Kompatibilität mit Web-Browsern sicherzustellen. Jede Datei, die eine der folgenden Dateiendungen aufweist, wird folglich eingeschlossen: jpg, jpeg, jp2, png, gif.
Die Shoes-Version des Programms unterstützt darüber hinaus auch JNG-Dateien (auch wenn Ihr Browser das nicht tut).
Jeder einzelnen Diashow-Seite liegt die gleiche Vorlagendatei zugrunde, dazu werden eine JavaScript- und eine CSS-Datei eingebunden. Letztere werden im gleichen Verzeichnis neben den Diashow-Dateien abgelegt und können dort auch angepasst werden, um z.B. das äußere Erscheinungsbild der Diashows zu ändern.
Nach dem Generieren enthalten die Diashow-Dateien feste Pfade zu den angezeigten Bildern. Wenn in den zugrundeliegenden (X)HTML-Seiten mit relativen Pfaden gearbeitet worden ist, werden diese nur an die neue Verzeichnis-Struktur der Diashow angepasst. Ein Verschieben der Diashow-Dateien macht diese Pfade ungültig, die Diashow funktioniert dann nicht mehr!
Ein paar der animierten Bilder-Galerien, die man im Web seit langer Zeit findet, hatten mich angespornt, etwas ähnliches mit meiner Web-Site zu verknüpfen. Dabei war der erste Gedanke, auf einen vorhandenen Dienst zurückzugreifen, um alle Fotos auch separat von den langen Texten, in die ich sie immer einpacke, zu präsentieren.
Keine der Lösungen, auf die ich gestoßen bin, hat
mir gefallen. Es ist viel zu kompliziert, Leute erst zu einer
fremden Web-Site zu leiten, wo sie dann noch ein Passwort
eingeben und vielleicht sogar erst einen Account
registrieren müssen, nur, um meine paar
Fotos am Stück ansehen zu können... Wer braucht
das?
Meine Web-Seiten sind bisher recht statisch, d.h. ohne viele
dynamische Elemente präsentieren sie Fotos und Text.
Einerseits möchte ich auch weiterhin auf JavaScript
verzichten, soweit es geht. Andererseits benötigen die
Diashows JavaScript, um die Bilder gegeneinander
auszutauschen.
Der Kompromiss besteht darin, dass ich wiederum die Fotos jeder
thematische Seite in eine separate Diashow überführe
und nicht etwa nur eine einzige Diashow generiere, in der
ich dann die Beschriftung umschalte, je nachdem, wo der Besucher
gerade hergekommen ist.
Maximal verdoppelt sich damit die Zahl der Web-Seiten. Der Generator nimmt mir die Arbeit ab, so dass mich dieser Umstand völlig kalt lässt. Dagegen bleibt der JavaScript-Code auf das Nötigste beschränkt und weitgehend fehlerunanfällig (Fehler des MS-Internet-Explorers ignoriere ich hier).
Die Masse an Diashow-Dateien wäre dann ein Problem, wenn ich einzelne daraus oder alle nachträglich ändern wollte. Es gilt aber für jeden selbstgebauten Generator, dass er eigentlich schon kaputt ist, wenn seine Ausgaben nicht gleich und unverändert benutzt werden können. Also würde ich eher das Programm Html2Slideshow ändern, meine ganzen Diashows wegwerfen und dann neu erzeugen.
So ist das gedacht. Eine Interpretersprache wie Ruby ist dafür auch wie geschaffen: Der Quellcode ist das Programm, es wird auch nicht erst irgendeine XML-Soße verfüttert oder massig Konfiguration fällig, sondern gleich der Generator modifiziert und zack. Fäddich.
Hier geht es um ein Programm, dass nicht dafür geschrieben wurde, Diashows im Internet zu veröffentlichen, sondern solche Fotoshows zu konfigurieren und in einer Instanz von MagicLantern (auch auf einem anderen PC) laufen zu lassen.
Ich weiß nicht, ob ich als Fan
von Paul Lutus durchgehe. Eigentlich
glaube ich, seit Elkie Brooks Minutes
kein Fan mehr von
irgend jemandem zu sein.
Aber die Produktivität dieses Mannes und die beinahe
bedrückende Qualität seiner technischen oder
redaktionellen Erzeugnisse hat schon seit langem meinen Respekt,
auch, wenn ich in vielen Dingen anderer Meinung bin.
Aber zur Software: MagicLantern ist erst einmal das, was man unter einem typischen Diashow-Programm versteht. Es lassen sich damit Bilder von der Festplatte zu einer automatisch oder manuell gesteuerten Diashow zusammenstellen. Das Programm bietet einiges an Optionen, die ich nicht erkläre. Es gibt auch eine vollständige Online-Hilfe.
MagicLantern ist ein Java-Programm. Das heißt zum
Beispiel, dass es auf allen Betriebssystemen läuft, für
die eine passende Java-Umgebung installiert werden kann. Paul
Lutus macht keine exakten Angaben zur erforderlichen
Java-Version, ein Java5- oder 6-Release sollte aber in jedem Fall
funktionieren. Zum Anderen bedeutet Java aber, dass man sich
anders mit der Software befassen muss, als es andere Programme
verlangen. So kann eine speicherintensive Operation, wie die
Erzeugung der Minibilder in MagicLantern zusammen mit der ohnehin
laufenden Java-Runtime-Umgebung erheblich die Resourcen des PCs
beanspruchen. Das tun andere Programm ganz genau so, allerdings
ist die Java-Umgebung normalerweise nicht automatisch darauf
vorbereitet. Der Autor empfielt, den Speicher für die
Java-Umgebung mit dem Startparameter -Xmx1000m
gleich
üppiger zuzuweisen.
Unterm Strich ist MagicLantern in meinen Augen das ausgereifteste GUI-Programm zur Erzeugung solcher Diashows, das ich kenne, meine eigenen Versuche inbegriffen. Es gibt sonst nur Konsolenprogramme, die mir ähnlich gut gefallen; die gehöhren aber wohl in eine andere Kategorie. Ω
