Ich benutze Sphinx, um ein Python-Projekt zu dokumentieren. Ich verwende die Zeichenfläche, um einige Ergebnisse in der Dokumentation zu visualisieren. Meine Dokumentation muss Firefox und IE unterstützen. Ich muss die Bibliothek excanvas.js in die Dokumentation aufnehmen, aber nur, wenn der Browser IE ist. Wie kann ich diese Bibliothek bedingt einbeziehen, damit die relativen Pfade korrekt sind?Wie ändert man die <head> in Sphinx-Dokumentation, so dass die relativen Links aktualisiert werden?
Beispiel ....
Dokumentation Ordner
/sphinx
/source
working_test_page.rst
test_block.html
/nested
non_working_test_page.rst
test_block_copy.html
/_templates
layout.html
/_static
excanvas.js
...
Per Anhang bei Sphinx' documentation pages wurde die Datei layout.html geändert. Diese Änderung bestand darin, einen bedingten HTML-Block in den Vorlagenkopf einzufügen, der excanvas.js hinzufügt, wenn die Seite im IE angezeigt wird.
{% extends "!layout.html" %}
{% block extrahead %}
<!--[if IE]>
<script type="text/javascript" src="_static/excanvas.js"></script>
<![endif]-->
{% endblock %}
Die Datei working_test_page.rst und non_working_test_page.rst haben den gleichen Inhalt. Der Inhalt folgt. Der einzige Unterschied ist der Speicherort der Dateien.
Script Test
==========
.. raw:: html
:file: test_block_1.html
Die Datei test_block.html und test_block_copy.html haben den gleichen Inhalt. Die zwei Dateien enthalten ein wenig HTML, das eine Zeichenfläche einrichtet und verwendet.
Wenn Sphinx kompiliert die ersten Dateien in das HTML-Build-Verzeichnis die folgenden Dateien Struktur Ergebnisse:
/sphinx
/build
working_test_page.html
/nested
non_working_test_page.html
/_static
excanvas.js
...
Die Datei working_test_page.html hat den richtigen Pfad zu excanvas.js und korrekt geladen. Die Datei non_working_test_page.html hat den falschen Pfad zu excanvas.js und lädt nicht korrekt.
Wie kann excanvas.js bedingt geladen werden, so dass die relativen Pfade in der Sphinx-Dokumentation unabhängig vom Speicherort der ersten Dateien korrekt sind?