2012-10-07 9 views
10

Qualche idea su come posso fare riferimento a un'immagine online mentre sto documentando con Sphinx?Specificare un'immagine online nel formato Sfinge (testo ristretto)

Questo non funziona:

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

Mi dà:

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

Grazie ...

+1

hai mostrato dà un avvertimento, ma non c'è niente che indica che non funziona. In effetti, indica che esiste un supporto (riconosce un URI) e non è raccomandato. – delnan

+0

Hai assolutamente ragione! – stratosgear

risposta

3

che è abbastanza imbarazzante ...

Come delnan accennato in precedenza nella sua commento, sto ricevendo solo un avvertimento.

Nella mia difesa, stavo provando alcune direttive raw piuttosto complicate prima di optare per la direttiva immagine, e stavo solo guardando l'output di Sphinx piuttosto sulle pagine renderizzate. Quando ho visto il lungo output di Sphinx, ho pensato di aver colpito di nuovo un altro errore.

Tuttavia, sono da incolpare ... L'immagine si carica bene.

5

Io uso codice html prima per questo, ad esempio:

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

Questo formato consente le immagini esterne senza l'avviso, che consente l'uso di 'sphinx-build-W' (trasformare gli avvisi in errori) in suite di integrazione continua come travis/tox. – jwhitlock

+0

Tuttavia, il parser RST su GitHub ignora 'raw :: html' :( – jwhitlock

+0

Non includo README.rst nei miei documenti sphinx, e non mi aspetto che qualcuno cerchi nella mia directory/docs - GitHub spoils markup sphinx comunque –

19

Come di sfinge 1.4, è possibile sfinge "patch scimmia" dal file docs/conf.py in questo modo:

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 

Una versione precedente di questa risposta ha fornito una patch che è incompatibile con l'ultima versione 1.4 della sfinge [1]. Inoltre, la prossima versione di sfinge dovrebbe sostenere questa opzione di configurazione [2]:

suppress_warnings = ['image.nonlocal_uri'] 

Ciò esclude eventuali avvisi di 'immagine non locale URI trovato'.

ho trovato questo necessario perché voglio il sphinx-build -W a emettono "avvisi come errori" come parte del mio test & costruzione di infrastrutture, per garantire che non vi siano errori nella documentazione - I so bene che ho Sto usando URI di immagini non locali e sto bene con , ma non voglio ignorare gli altri avvertimenti.

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

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

+0

Questo funziona, ma rompe Sfinge> 1.3 in tali avvisi causano eccezioni (ad esempio se un riferimento collegato non esiste). Deve essere leggermente modificato per accettare kwargs **. Informazioni MOre qui: https://github.com/sphinx-doc/sphinx/issues/2429 –

+0

Ecco un'altra patch per le scimmie http://www.dpetzel.info/tips/python/2013/09/24/sphinx -con-esterno-image-annoyance.html –

Problemi correlati