2012-10-07 32 views
10

Bất kỳ ý tưởng nào về cách tôi có thể tham chiếu đến hình ảnh trực tuyến trong khi ghi lại bằng Nhân sư?Chỉ định hình ảnh trực tuyến ở định dạng Nhân sư (định dạng lại)

này không làm việc:

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

Cung cấp cho tôi:

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

Thanks ...

+1

Bạn thấy nó mang lại một cảnh báo, nhưng không có gì chứng tỏ nó không hoạt động là. Trong thực tế, nó cho thấy có một số hỗ trợ cho nó (nó nhận ra một URI) và nó chỉ là không khuyến khích. – delnan

+0

Bạn hoàn toàn đúng! – stratosgear

Trả lời

3

Đó là khá lúng túng ...

Như delnan nêu trên trong mình bình luận, tôi chỉ nhận được một cảnh báo.

Trong phòng mình, tôi đã thử một số chỉ thị thô khá phức tạp trước khi tôi định hướng trên hình ảnh, và tôi chỉ nhìn vào đầu ra của Sphinx thay vì trên các trang được hiển thị. Khi tôi nhìn thấy đầu ra dài từ Sphinx tôi cho rằng tôi lại gặp lỗi khác.

Tuy nhiên, tôi đổ lỗi ... Hình ảnh tải tốt.

5

tôi sử dụng mã html liệu cho điều này, ví dụ:

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

Định dạng này cho phép các hình ảnh bên ngoài không có cảnh báo, cho phép sử dụng 'sphinx-build -W' (biến cảnh báo thành lỗi) trong các bộ tích hợp liên tục như travis/tox. – jwhitlock

+0

Tuy nhiên, trình phân tích cú pháp RST trên GitHub bỏ qua 'raw :: html' :( – jwhitlock

+0

Tôi không bao gồm README.rst trong tài liệu nhân sư của mình và không mong đợi bất kỳ ai nhìn vào thư mục/docs của tôi - GitHub cũng đánh bại sphinx markup –

19

Tính đến Sphinx 1.4, bạn có thể "khỉ vá" nhân sư từ tập tin docs/conf.py bạn như vậy:

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 

Một phiên bản trước của câu trả lời này cung cấp một bản vá không tương thích với bản phát hành nhân sư mới nhất 1.4 [1]. Hơn nữa, phiên bản tiếp theo của nhân sư nên hỗ trợ tùy chọn cấu hình này [2]:

suppress_warnings = ['image.nonlocal_uri'] 

Điều này sẽ loại trừ mọi cảnh báo 'không tìm thấy ảnh URI'.

tôi thấy cần thiết này bởi vì tôi muốn sphinx-build -W để phát ra "cảnh báo là lỗi" như một phần của cơ sở hạ tầng xây dựng thử nghiệm & tôi, để đảm bảo rằng không có lỗi trong tài liệu - Tôi biết rất rõ rằng tôi đang sử dụng URI hình ảnh không phải của địa phương và tôi OK với điều đó, nhưng tôi không muốn bỏ qua các cảnh báo khác.

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

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

+0

Điều này làm việc, nhưng phá vỡ Sphinx> 1.3 trong đó cảnh báo gây ra ngoại lệ (ví dụ, nếu một ref liên kết không tồn tại). Nó cần phải được sửa đổi một chút để chấp nhận kwargs **. Thông tin về bộ sưu tập tại đây: https://github.com/sphinx-doc/sphinx/issues/2429 –

+0

Đây là một bản vá khỉ khác http://www.dpetzel.info/tips/python/2013/09/24/sphinx -with-external-image-annoyance.html –

Các vấn đề liên quan