2012-10-07 8 views
10

Jakieś pomysły dotyczące tego, w jaki sposób mogę odnieść się do obrazu online podczas dokumentowania za pomocą Sphinx?Określanie obrazu online w formacie Sphinx (restrukturyzowany tekst)

to nie działa:

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

Daje mi:

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

Dzięki ...

+1

Pokazałeś daje ostrzeżenie, ale nic nie wskazuje, że nie działa. W rzeczywistości oznacza to, że istnieje pewne wsparcie dla niego (rozpoznaje URI) i po prostu nie jest zalecane. – delnan

+0

Masz absolutną rację! – stratosgear

Odpowiedz

3

To dość żenujące ...

As delnan wspomniano w jego komentarz, dostaję tylko Ostrzeżenie.

W mojej obronie próbowałem dość skomplikowanych dyrektyw, zanim zdecydowałem się na dyrektywę obrazu, a ja po prostu patrzyłem na wynik Sphinxa raczej na renderowanych stronach. Kiedy zobaczyłem długą produkcję Sfinksa, założyłem, że znowu uderzyłem w kolejny błąd.

Mimo to, jestem winien ... Obraz ładuje się dobrze.

5

używam surowy kod HTML na to, np:

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

Ten format umożliwia zewnętrzne obrazy bez ostrzeżenia, które pozwalają na użycie 'sphinx-build-W' (zmieniają ostrzeżenia w błędy) w ciągłych zestawach integracji, takich jak Travis/tox. – jwhitlock

+0

Jednak parser RST na GitHub ignoruje 'raw :: html' :( – jwhitlock

+0

Nie włączam README.rst do moich dokumentów sphinx, i nie oczekuj nikogo patrzącego na mój katalog/docs - GitHub psuje oznaczenia sfinksa –

19

Jako Sfinks 1.4, można "małpa łata" sfinks z pliku docs/conf.py tak:

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 

poprzedniej wersji tej odpowiedzi dostarczył łatkę, która jest niezgodna z najnowszym wydaniem Sphinx 1.4 [1]. Ponadto, kolejna wersja Sfinksa powinny wspierać to opcja konfiguracji [2]:

suppress_warnings = ['image.nonlocal_uri'] 

To wyklucza ostrzeżenia o „nielokalne obrazu znalezionych URI”.

znalazłem to konieczne, ponieważ chcę sphinx-build -W do emitować „ostrzeżenia jako błędy” jako część mojego testu & infrastruktury budowlanej, aby zapewnić, że nie ma żadnych błędów w dokumentacji - Wiem bardzo dobrze, że "Używam nielokalnych obrazów URI i jestem OK z , ale nie chcę ignorować innych ostrzeżeń.

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

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

+0

Działa to, ale łamie Sfinksa> 1.3 w tym, że ostrzeżenia powodują wyjątki (na przykład, jeśli połączony ref nie istnieje). Należy go nieco zmodyfikować, aby zaakceptować kwargs **. MOI informacje tutaj: https://github.com/sphinx-doc/sphinx/issues/2429 –

+0

Oto kolejna łatka dla małp http://www.dpetzel.info/tips/python/2013/09/24/sphinx -z-obrazem zewnętrznym-zirytowaniem.html –

Powiązane problemy