HTML optimizer <span - table> (jEdit)

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Olliminatore
User
Beiträge: 55
Registriert: Montag 30. Mai 2005, 16:03
Wohnort: schönsten Stadt Deutschlands
Kontaktdaten:

Mittwoch 8. Juni 2005, 13:04

Vorweg: Kommentare , Fragen, Vorschläge... sind erwünscht. :mrgreen:

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. :-P

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?
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]
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 8. Juni 2005, 13:43

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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Olliminatore
User
Beiträge: 55
Registriert: Montag 30. Mai 2005, 16:03
Wohnort: schönsten Stadt Deutschlands
Kontaktdaten:

Mittwoch 8. Juni 2005, 15:01

Ja, genau.
Man/Wir könnten das beste aus allen 3 Modulen vereinen. :D
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]
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 8. Juni 2005, 15:19

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:

Code: Alles auswählen


import os

for Verz, VerzList, DateiListe in os.walk("C:\\"):
    print Verz
    for Datei in DateiListe:
        print Datei
das:

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>
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...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Olliminatore
User
Beiträge: 55
Registriert: Montag 30. Mai 2005, 16:03
Wohnort: schönsten Stadt Deutschlands
Kontaktdaten:

Mittwoch 8. Juni 2005, 16:51

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)
[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]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 8. Juni 2005, 21:10

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 Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 8. Juni 2005, 21:15

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten