Vorweg: Kommentare , Fragen, Vorschläge... sind erwünscht.
Ich habe auf Basis des Scraper Modules mir ein HTML-Parser als Code-optimizer
geschrieben. Es sind 2 Stufen(doppelt ausführen) möglich, wobei sich das Erscheinungsbild nach der 1. nicht verändern sollte.
Im Grunde sind es nur 2 Funktionen die 1. löscht unnötige <SPAN>tags (ein sogenanntes"Allgemeines Inline-Element"-siehe SelfHtml)
Wenn dieses keine Attribute besitzt oder wenn es welche hat und es mehrfach hintereinander vorkommt.
Die Zweite ist speziell auf, mit Zeilennummern Dokumentierten Script-code optimiert.
Sie fast alle <SPAN>tags vom Typ "gutter"(Zeilennummern) zusammen und unterteilt das gesamte Dokument in 2 Tabellenspalten. Somit wird besonders bei längeren ScriptDokus eine menge Code gesparrt.
Grund für dieses Script war der schlechte HTML Code(Css) der speziell mit dem jEdit Plugin Code2HTML erzeugt wird. Mit diesem Script müssten die Seiten weniger als halb so groß werden. Eigentlich könnte man das JavaPlugin verbessern, aber hoch lebe Python.
Hier ist das Modul natürlich als Referenz Code . Kommentare mit ## sind von mir.
Am Basis Code habe ich im Prinzip nichts geändert, nur die Variable "outlist" wurde der Scraper-class zugewiesen.
Kennt jemand andere Module dieser Art?
HTML optimizer <span - table> (jEdit)
-
- User
- Beiträge: 55
- Registriert: Montag 30. Mai 2005, 16:03
- Wohnort: schönsten Stadt Deutschlands
- Kontaktdaten:
Zuletzt geändert von Olliminatore am Mittwoch 8. Juni 2005, 15:09, insgesamt 4-mal geändert.
[size=84][url=http://de.wikipedia.org/wiki/Jamba]Love Jamba[/url] <!--Olliminatore-->input<?/> [url=http://www.spreeblick.com/blog/index.php?p=324]Boycott Jamba[/url][code]def olliminiert(optimiert, eliminiert, terminiert):[/code][/size]
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Willst du damit Python-Sourcecode nach HTML wandeln???
Könnte ich auch gebrauchen
Hab zwar schon ein Python2HTML Konverter. Das ganze basiert auf dem MoinMoin - Python Source Parser, aber der Code ist auch nicht wirklich schön...
Könnte ich auch gebrauchen
Hab zwar schon ein Python2HTML Konverter. Das ganze basiert auf dem MoinMoin - Python Source Parser, aber der Code ist auch nicht wirklich schön...
-
- User
- Beiträge: 55
- Registriert: Montag 30. Mai 2005, 16:03
- Wohnort: schönsten Stadt Deutschlands
- Kontaktdaten:
Ja, genau.
Man/Wir könnten das beste aus allen 3 Modulen vereinen.
So dass kein jEdit für Python mehr benötigt wird.
<offtopic>
Bin geschockt, habe gerade das mit Dookie gelesen.
Man/Wir könnten das beste aus allen 3 Modulen vereinen.
So dass kein jEdit für Python mehr benötigt wird.
<offtopic>
Bin geschockt, habe gerade das mit Dookie gelesen.
Zuletzt geändert von Olliminatore am Mittwoch 8. Juni 2005, 16:38, insgesamt 1-mal geändert.
[size=84][url=http://de.wikipedia.org/wiki/Jamba]Love Jamba[/url] <!--Olliminatore-->input<?/> [url=http://www.spreeblick.com/blog/index.php?p=324]Boycott Jamba[/url][code]def olliminiert(optimiert, eliminiert, terminiert):[/code][/size]
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also der beste Ansatz wäre natürlich den "MoinMoin - Python Source Parser" umzubauen, um direkt guten Code zu erzeugen... Schön wäre natürlich eine richtige Trennung zwischen HTML und CSS
In der jetzigen Version mach der aus dem:
das:
Wie man sieht produziert es unnötigen Code, weil er für jedes Token seperat ein font-Tag setzt, obwohl es oft kombinierbar ist. Somit ist es nicht damit getan, aus den font-Tags einfach z.B. <span class...-Tags zu machen...
In der jetzigen Version mach der aus dem:
Code: Alles auswählen
import os
for Verz, VerzList, DateiListe in os.walk("C:\\"):
print Verz
for Datei in DateiListe:
print Datei
Code: Alles auswählen
<pre><font face="Lucida,Courier New"><font color="#C00000">import</font> <font color="#000000">os</font>
<font color="#C00000">for</font> <font color="#000000">Verz</font><font color="#0000C0">,</font> <font color="#000000">VerzList</font><font color="#0000C0">,</font> <font color="#000000">DateiListe</font> <font color="#C00000">in</font> <font color="#000000">os</font><font color="#0000C0">.</font><font color="#000000">walk</font><font color="#0000C0">(</font><font color="#004080">"C:\\"</font><font color="#0000C0">)</font><font color="#0000C0">:</font>
<font color="#C00000">print</font> <font color="#000000">Verz</font>
<font color="#C00000">for</font> <font color="#000000">Datei</font> <font color="#C00000">in</font> <font color="#000000">DateiListe</font><font color="#0000C0">:</font>
<font color="#C00000">print</font> <font color="#000000">Datei</font><font color="#000000"></font></font></pre>
-
- User
- Beiträge: 55
- Registriert: Montag 30. Mai 2005, 16:03
- Wohnort: schönsten Stadt Deutschlands
- Kontaktdaten:
Ja genau, dafür schafft meine 1. Funktion (Zeile 204) abhilfe.
Wir müssten das Modul(MoinMoin) so umschreiben dass es diese Gleichnisse/Ungleichheit schon vorher erkennt.
Meine Funktionen setzen ja erstmal "nur" auf schon vorhandenes HTML an.
Edit: Nach W3-Konsortium ist das Inline-Element <font>tag auch deprecated.
Meine Funktion habe ich nochmal nachgebessert, Attribut-namen werden nun alle klein geschrieben. (das Code2HTML Plugin schreibt fälschlicher weise alle gross)
Wir müssten das Modul(MoinMoin) so umschreiben dass es diese Gleichnisse/Ungleichheit schon vorher erkennt.
Meine Funktionen setzen ja erstmal "nur" auf schon vorhandenes HTML an.
Edit: Nach W3-Konsortium ist das Inline-Element <font>tag auch deprecated.
Meine Funktion habe ich nochmal nachgebessert, Attribut-namen werden nun alle klein geschrieben. (das Code2HTML Plugin schreibt fälschlicher weise alle gross)
[size=84][url=http://de.wikipedia.org/wiki/Jamba]Love Jamba[/url] <!--Olliminatore-->input<?/> [url=http://www.spreeblick.com/blog/index.php?p=324]Boycott Jamba[/url][code]def olliminiert(optimiert, eliminiert, terminiert):[/code][/size]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Kennt ihr schon SilverCity? Das ist der Lexer von SciTE, wird auch beim Generieren der Quellcodes in der reST Doku von DrPython verwendet.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ist wirklich nicht schlecht, da auch einige Sprachen direkt unterstützt werden Dr erzeugte Code basiert auf CSS... Ist zwar auch nicht super klein, aber geht wohl auch nicht besser...
Es gibt da auch direkt eine Online-CGI-DEMO:
http://www.sweetapp.com/cgi-bin/cgi-sty ... plate.html
Wenn ich mal soweit bin, werde ich es in PyLucid einbauen, damit man Source-Code anschauen kann
EDIT: Leider muß man SilverCity installieren, wie man hier http://www.python-forum.de/viewtopic.php?t=3524 nachlesen kann, somit fällt es für mich erstmal Flach...
Derweilen habe ich TinyTextile geschrieben: http://www.python-forum.de/viewtopic.php?t=3523
EDIT2: http://pylucid.python-hosting.com/file/ ... Textile.py
Es gibt da auch direkt eine Online-CGI-DEMO:
http://www.sweetapp.com/cgi-bin/cgi-sty ... plate.html
Wenn ich mal soweit bin, werde ich es in PyLucid einbauen, damit man Source-Code anschauen kann
EDIT: Leider muß man SilverCity installieren, wie man hier http://www.python-forum.de/viewtopic.php?t=3524 nachlesen kann, somit fällt es für mich erstmal Flach...
Derweilen habe ich TinyTextile geschrieben: http://www.python-forum.de/viewtopic.php?t=3523
EDIT2: http://pylucid.python-hosting.com/file/ ... Textile.py