2012-09-06 6 views
9

Die Ausgabe von Sphinx, der Python-Dokumentationsgenerator, führt zu einer großen Anzahl von HTML-Dateien. Jeder hat einen Header mit einer großen Anzahl von JavaScript und CSS beinhaltet:Komprimieren von JS und CSS in statischen HTML-Dateien

<link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> 
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> 
<script type="text/javascript" src="../_static/jquery.js"></script> 
<script type="text/javascript" src="../_static/underscore.js"></script> 
<script type="text/javascript" src="../_static/doctools.js"></script> 
<script type="text/javascript" src="../_static/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> 
<link rel="stylesheet" type="text/css" href="../_static/custom.css" /> 
<link rel="stylesheet" type="text/css" href="../_static/colorbox/colorbox.css" /> 
<script type="text/javascript" src="../_static/colorbox/jquery.colorbox-min.js"></script> 

Die meisten davon sind individuell minimieren, aber das ist noch nicht optimal, weil es getrennte Anfragen an den Webserver erfordert, wenn die Client-Cache leer ist. Gibt es ein Tool wie YUI Compressor oder den Closure Compiler, die HTML-Dateien als Eingabe nehmen, alle einzelnen extern verknüpften Skripte komprimieren und dann die Ausgabe neu schreiben? Dies wäre ähnlich wie das django_compressor tut.

Antwort

0

Es gibt zwei Komponenten, nach denen Sie fragen - eine, die Ihre Ressourcen kombiniert und minimiert, und eine andere, die die statischen HTML-Dateien neu schreibt, um die minimierten Ressourcen zu verwenden.

Für die erste Komponente, glaube ich, könnten Sie this minify engine verwenden; Es wurde entwickelt, um Seiten dynamisch zu bedienen, aber Sie können entweder herausfinden, wie Sie direkt in den Code einhaken oder die Ausgabe in statische Dateien speichern (die URL ermöglicht Ihnen, mehrere Dateien anzugeben).

Für das zweite Element, sollte die Seite als XML (vorausgesetzt, es ist gültiges XHTML) und finden Sie alle <link> oder <script> Tags, Speichern einer Kopie des Dokuments ohne diese Elemente, stellen Sie die minimierte Ressourcen nicht schwierig sein, zu analysieren und Fügen Sie sie hinzu, sobald der Knoten geschlossen ist, lesen Sie den Rest der Datei und speichern Sie das erstellte XHTML-Dokument. Wenn dies zu viel ist, können Sie möglicherweise auch einen regulären Ausdruck verwenden, um <link> und <script> Tags zu suchen und zu ersetzen; Normalerweise können reguläre Ausdrücke XML nicht perfekt parsen, aber diese Tags sollten OK sein, weil sie nicht geschachtelt werden.

Wenn Sie zusammenstellen möchten, was ich beschrieben habe, aber mehr Hilfe brauchen, um anzufangen, fragen Sie einfach.

2

Stimmen Sie mit der obigen Antwort überein.

Sie können eine andere Sache tun.

Setzen Sie alle Skripte nach Body anstelle von Header. Möglicherweise wird es Ihre Ladegeschwindigkeit erhöhen.

1

Sie können versuchen Springboard. Ich denke, es wird gut für Ihre Bedürfnisse geeignet sein.