Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6509
Wohnort: Hamburg
|
Für meine interne Dokumentation möchte ich einige Shellscripte in HTML Dateien Einbinden. Da die Scripte ständigen Verbesseungen unterliegen, möchte ich sie nicht direkt in die HTML Dateien einbauen, zumal sie in mehreren Dateien auftauchen. Zunächst hatte ich es mit iframes versucht und dann noch mit object, jedoch war beide Male das Ergebniss unbefridiegend. Das Problem ist, das Umlaute nicht richtig dargestellt werden. Zuletzt hatte ich es mit folgendem Konstrukt versucht:
<object data="nextboot.txt" type="text/plain;charset=UTF-8" name="box1" width="80%" height="300" style="background-color: #F7F9FA;border: 1px solid #0000FF;" >
Keine object Unterstützung.
</object>
Google hat mir verraten, das es derzeit wohl kaum einen Browser gibt, der in solchen Konstukten "charset" unterstützt. Kennt jemand eine weitere Möglichkeit externe Textdateien innerhalb von HTML Dokumenten korrekt darzustellen ohne die Mithilfe eines Servers (ich möchte die Docs auf USB-Stick mitnehmen können)?
|
posti
Anmeldungsdatum: 30. März 2009
Beiträge: 2087
|
Hi Du kannst doch ein beliebiges File in einer PHP auslesen und in die anzuzeigende HTML 'einbauen' - so könntest Du die jeweils aktuelle Datei einbinden und Diese, sobald eine neue Version vorliegt, Diese hochladen und der Inhalt ändert sich entsprechend. Meine letzten PHP-Operationen sind aber schon einige Tage her :/ MfG
|
frostschutz
Anmeldungsdatum: 18. November 2010
Beiträge: 7790
|
Die Textdateien in HTML umwandeln ist keine Option? Schreib dir ein Script dafür. 😉
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6509
Wohnort: Hamburg
|
Ich wollte ja eigentlich ohne Script auskommen da dies ja auch bei jeder Änderung gestartet werden muss. Und ich arbeite daran ja nicht täglich, sondern nur Nachbesserungen erforderlich sind. Und ich habe die Korrekturen in der Doku schon einige Male verschlampt, desshalb soll das automatisch gehen. Wenn schon Script dann Javascript, aber damit habe ich bisher wenig gemacht. Aber wenn man damit folgendes machen könnte
...
<pre>
<!-- hier Textx einfügen -->
</pre>
...
wäre das Problem möglicherweise schon gelöst.
|
noisefloor
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29567
|
Hallo, Javascript kann AFAIK _keine_ Dateien von der lokalen Platte / Stick lesen. Gruß, noisefloor
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Ich würde auf eine 1:1-Abbildung verzichten und mit Hilfe von Pygments alle Scripte in HTML umwandeln. Anstelle der Original-Scripte bindest Du dann die konvertierten ein. Bei einer Änderung musst Du den Highlighter eben noch einmal aufrufen. Dafür kannst Du ja aber ein kleines Script schreiben, welches stumpf alle Script-Dateien umwandelt. Selbst bei einigen hundert sollte das fix genug gehen 😉
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6509
Wohnort: Hamburg
|
Javascript kann AFAIK _keine_ Dateien von der lokalen Platte / Stick lesen.
Direkt nicht, ich hatte aber gedacht das es vielleicht geht, wenn die URL über Javascript geöffnet wird. Aber das geht dann auch erst durch den Browser und erzeugt die bekannten Probleme. Und für Ajax braucht man dann wieder einen Server, der das alleine aber besser kann. @Lysander Syntax Highlighting brauche ich eigentlich nicht, aber falls Syntax mal mein Thema ist, werde ich gerna darauf zurückgreifen. Ich habe jetzt gerade mal ein 40 Zeilen Script für die Konvertierung geschrieben und experimentiere gerade damit herum. Jetzt stellt sich aber noch die Froge, ob man für sowas <object> oder <iframe> nimmt. Vom Aussehen ist beides identisch.
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Dakuan schrieb: @Lysander Syntax Highlighting brauche ich eigentlich nicht, aber falls Syntax mal mein Thema ist, werde ich gerna darauf zurückgreifen.
Pygments wandelt aber Quellcode ja in HTML um! Ob Du die Tags dann per CSS heighlightest oder nicht, ist in Deinem Falle tatsächlich Bonus. Damit ersparst Du Dir Ärger mit Sonderzeichen.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6509
Wohnort: Hamburg
|
Damit ersparst Du Dir Ärger mit Sonderzeichen.
Womit wir wieder beim Ausgangsproblem wären 😉 Aber da reicht dann auch ein minimaler HTML Header mit
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Eigentlich reicht dann auch ein Einzeiler wie
cat header.txt script.sh trailer.txt >output.html
Bisher sieht das alles gut aus. Ich erkenne aber gerade, dass sich bei der Dokumentation der Scripte für meine Server schon früher Fehler eingeschlichen haben. Ich habe also noch einiges zu tun.
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
Peace. Dakuan schrieb: cat header.txt script.sh trailer.txt >output.html
Und du nutzt in deinem Quellcode kein < oder > oder " oder ... die zerhacken dir dann nämlich deine HTML-Seite. ps: Ich verstehe einfach nicht, wieso du dich so gegen fertige, getestete Lösungen sträubst, die nebenbei einfacher und schneller zu realisieren wären.
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6509
Wohnort: Hamburg
|
Ich sträube mich nicht gegen fertige Lösungen. Ich bin nur bestrebt alles so einfach und Übersichtlich wie möglich zu halten. Ist vielleicht ein nerviger Tick von mir, aber ich denke nachlegen kann man bei Bedarf immer noch. Bei den Scripten handelt es sich übrigens Scripte für Grub, die sich komplett innerhalb <pre></pre> Tags befinden. Und ich finde es praktisch, wenn man benötigte Teile davon direkt vom Browserfenster in die SSH Sitzung mit nano einfügen kann. Ich will damit keinen Layoutwettbewerb gewinnen, sondern nur bequem arbeiten. Die Rechner mit denen ich rumspiele sind übrigens headless und ich komme da nur über SSH ran.
|
cornix
Anmeldungsdatum: 9. März 2007
Beiträge: 4763
Wohnort: Ringenberg
|
Dakuan schrieb: Aber da reicht dann auch ein minimaler HTML Header mit
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Entweder stehe ich völlig auf dem Schlauch und habe das Problem nicht verstanden – oder Du hast die Lösung genannt. edit: wobei natürlich der Vorschlag von Lysander much more sexy ist. 😀 Gruß, cornix
|
Dakuan
(Themenstarter)
Anmeldungsdatum: 2. November 2004
Beiträge: 6509
Wohnort: Hamburg
|
Entweder stehe ich völlig auf dem Schlauch und habe das Problem nicht verstanden – oder Du hast die Lösung genannt.
Das sollte eigentlich die ergoogelte Lösung sein, jedoch hat die Webseite, wo ich das gefunden hatte (irgendwo auf Trefferseite 5+), auch erwähnt, das keiner der mainstream Browser sich danach richtet. Offenbar ist es so, dass alle per <iframe> oder <object> eingefügten Dateien immer die Zeichencodierung US-ASCII verwenden, egal was charset="?" sagt. Zumindest bei Firefox scheint die einzige Möglichkeit das zu überschreiben zu sein, wenn es sich um eine HTML Datei mit entsprechenden Meta-Tags handelt. Ein text/plain defaults alwasy to US-ASCII 😉 Da man Objektdaten offenbar auch einer anderen Anwendung (Video/Audio) übergeben kann, hatte ich die Hoffnung das man über diesen Weg mit Javascipt etwas tricksen kann.
... wobei natürlich der Vorschlag von Lysander much more sexy ist
Da stimme ich grundsätzlich zu, aber es bedeutet mehr Arbeit und es ist bei jeder Aktualisierung jedesmal ein zusätzlicher Punkt auf meiner To-Do Liste. Leider bin ich recht vergesslich und manche Scrite müssen länger als ein Jahr nicht aktualisiert werden. Da schleichen sich dann leicht Fehler ein wenn man eine notwendige Konvertierung vergisst. Zum Automatisieren bräuchte ich dann einen Server, was dann aber die Verwendung eines USB-Sticks bei mobilem Einsatz ausschliesst. Vorschlag: Es sollte für HTML Dokumente einen enfachen include Befehl geben.
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Dakuan schrieb: Da stimme ich grundsätzlich zu, aber es bedeutet mehr Arbeit und es ist bei jeder Aktualisierung jedesmal ein zusätzlicher Punkt auf meiner To-Do Liste. Leider bin ich recht vergesslich und manche Scrite müssen länger als ein Jahr nicht aktualisiert werden. Da schleichen sich dann leicht Fehler ein wenn man eine notwendige Konvertierung vergisst.
Daher solltest Du Dir einfach ein Script basteln, welches stumpf alle (oder durch Regeln definierbare) Scripte umwandelt und entsprechend in einen Zielordner kopiert. Damit vergisst Du nie etwas. Ich habe das bei meiner Diplomarbeit für die Umwandlung von Graphviz-Dateien in EPS ebenso gehandhabt.
Zum Automatisieren bräuchte ich dann einen Server, was dann aber die Verwendung eines USB-Sticks bei mobilem Einsatz ausschliesst.
Naja, mit ein wenig Aufwand könnte man da auch ein lokales Python drauf packen oder aber zumindest pygments und dann das Script auch vom Stick aus starten können. Ohne die Wandlung des Codes in HTML kommst Du imho eh nicht wirklich weiter...
|