2017-10-24 1 views
0

Ich habe diese Ordnerstruktur zur Erzeugung von docs (html) in Sphinx:das Hinzufügen von benutzerdefinierten Skript auf bestimmte Dokumente in Sphinx

doc-root 
- static (custom.css, custom.js) 
- doc-1 (*.rst) 
- doc-2 (*.rst) 
- doc-3 (*.rst) 
conf.py 
index.rst (toctree for doc-1, doc-2 and doc-3) 

ich htmls bin zu erzeugen und wollen nur die custom.js als Script-Tag hinzufügen für doc-2.

Ich habe versucht, die App.add_javascript ('custom.js') in der Einrichtung (App) von root conf.py hinzuzufügen, aber sphinx fügt die custom.js allen generierten htmls hinzu.

Ich habe ein doc-1/conf.py hinzugefügt und das Setup (app) hinzugefügt, aber es wird nie aufgerufen, weil ich htmls aus dem Stammverzeichnis mit der Option -c aus dem root erzeuge.

Gibt es eine Möglichkeit, dies zu erreichen, indem Sie sphinx respect conf.py aus seinen Unterordnern herausholen oder indem Sie im Stamm conf.py Logik bereitstellen?

Antwort

0

ich eine Lösung herausgefunden haben:

Fügen Sie die custom.js zu _static/ Ordner; dann erstellen Sie eine doc-root/templates/layout.html Datei mit Inhalt:

{% extends "!layout.html" %} 

{%- block extrahead %} 
<meta name="sourcename" content="{{ sourcename }}" /> 
{% if "doc-2" in sourcename %} 
    <script type="text/javascript" src="./_static/custom.js"></script> 
{% endif %} 
{% endblock %} 

die src attr auf die richtige relativ js Datei sorgen. Ich habe das Meta-Tag nur hinzugefügt, um den aktuellen Dokumentwert wiederzugeben. Wenn die Variable Quellenname den Wert doc-2/index.rst.txt enthält, wird das Skript hinzugefügt.

Verwandte Themen