2012-10-07 10 views
10

Irgendwelche Ideen, wie ich bei der Dokumentation mit Sphinx auf ein Online-Bild verweisen kann? Das funktioniert nichtAngabe eines Online-Bildes im Sphinx-Format (restructuredtext)

:

.. image:: http://www.mysite.com/images/someimage.png 

Gibt mir:

/home/user/proj/2010/11/08/the_forever_war.rst:11: WARNING: nonlocal image URI found: http://www.mysite.com/images/someimage.png 

Dank ...

+1

Sie zeigte, dass es eine Warnung gibt, aber es gibt nichts angibt, dass es nicht funktioniert. Tatsächlich zeigt es an, dass es eine Unterstützung dafür gibt (es erkennt einen URI) und es wird einfach nicht empfohlen. – delnan

+0

Sie haben absolut recht! – stratosgear

Antwort

3

Das ganz embarassing ...

Wie delnan oben erwähnt sein Kommentar, ich bekomme nur eine Warnung.

Zu meiner Verteidigung versuchte ich einige recht komplizierte rohe Anweisungen, bevor ich mich auf die Bild-Richtlinie einigte, und ich schaute nur auf die Ausgabe von Sphinx, eher auf den gerenderten Seiten. Als ich die lange Ausgabe von Sphinx sah, nahm ich an, dass ich wieder einen Fehler hatte.

Trotzdem bin ich schuld ... Das Bild lädt gut.

5

Ich verwende rohen HTML-Code für diese, zB:

.. raw:: html 

    <p style="height:22px"> 
    <a href="https://travis-ci.org/aio-libs/aiozmq" > 
     <img src="https://travis-ci.org/aio-libs/aiozmq.svg?branch=master"/> 
    </a> 
    </p> 
+0

Dieses Format ermöglicht die externen Bilder ohne die Warnung, die die Verwendung von "Sphinx-Build-W" (Warnungen in Fehler verwandeln) in Continuous Integration Suites wie Travis/Tox ermöglicht. – jwhitlock

+0

Der RST-Parser auf GitHub ignoriert jedoch 'raw :: html' :( – jwhitlock

+0

Ich nehme README.rst nicht in meine Sphinx-Dokumente und erwarte nicht, dass jemand in mein/docs-Verzeichnis schaut - GitHub verdirbt sowieso Sphinx-Markup –

19

Ab Sphinx 1.4 können Sie "monkey patch" Sphinx von Ihrem docs/conf.py Datei wie folgt:

import sphinx.environment 
from docutils.utils import get_source_line 

def _warn_node(self, msg, node, **kwargs): 
    if not msg.startswith('nonlocal image URI found:'): 
     self._warnfunc(msg, '%s:%s' % get_source_line(node), **kwargs) 

sphinx.environment.BuildEnvironment.warn_node = _warn_node 

Eine frühere Version Diese Antwort lieferte einen Patch, der mit der neuesten sphinx 1.4-Version nicht kompatibel ist [1]. Darüber hinaus sollte die nächste Version von Sphinx diese Konfigurationsoption unterstützt [2]:

suppress_warnings = ['image.nonlocal_uri'] 

Diese Warnungen ausschließen von ‚nonlocal Bild URI gefunden‘.

fand ich diese notwendig, weil ich die sphinx-build -W zu emittieren „Warnungen als Fehler“ als Teil meines Test & Bauumgebung wollen, , um sicherzustellen, dass es keine Fehler in der Dokumentation sind - ich sehr gut weiß, dass ich verwende nichtlokale Bild-URIs und ich bin OK mit das, aber ich möchte die anderen Warnungen nicht ignorieren.

[1] https://github.com/sphinx-doc/sphinx/issues/2429#issuecomment-210255983

[2] https://github.com/sphinx-doc/sphinx/issues/2466

+0

Das funktioniert, aber bricht Sphinx> 1.3 dass Warnungen Ausnahmen verursachen (zB wenn eine verlinkte Referenz nicht existiert). Es muss leicht modifiziert werden, um Kwargs zu akzeptieren **. MOre Informationen hier: https://github.com/sphinx-doc/sphinx/issues/2429 –

+0

Hier ist ein anderer Affe-Patch http://www.dpetzel.info/tips/python/2013/09/24/sphinx -mit-external-image-ärgerlichkeit.html –

Verwandte Themen