2015-04-12 8 views
5

Trong python-sphinx có only directive, có thể được sử dụng để có điều kiện ảnh hưởng đến tài liệu theo đầu ra của nó. Ví dụ: văn bản chỉ xuất hiện bằng html hoặc latex.Làm cách nào tôi có thể sử dụng chỉ thị nội tuyến chỉ bằng cách sử dụng vai trò trong python-sphinx?

Nó được sử dụng như thế này:

 
.. only:: not latex 

    Here there is some Text, that does not appear in latex output. 

.. only:: html 

    Here there is some Text, that only appears in html output. 

Làm thế nào tôi có thể sử dụng các chỉ thị vai trò trong việc đúng cách để sử dụng inline chỉ hạng nhất, chúng ta hãy nói như thế này:

 
Here there is some Text, that :only-notlatex:`does not appear in latex`
:only-html:`only appears in html`.

tôi thấy một cái gì đó tương tự cho chỉ thị thô. Điều này cũng có thể cho chỉ thị duy nhất? Tôi đã thử:

 

.. role:: only-html(only) 
    :format: html 

.. role:: only-notlatex(only) 
    :format: not latex 

Nhưng điều này không hiệu quả.

+2

Đừng nhầm lẫn giữa chỉ thị và vai trò. Các chỉ thị làm việc trên các khối văn bản (toàn bộ các đoạn); vai trò dành cho văn bản nội tuyến (trong các đoạn văn). Không có vai trò tích hợp tương ứng với chỉ thị 'chỉ'. Bạn sẽ phải tạo vai trò tùy chỉnh của riêng bạn cho mục đích này. Tôi không thể cung cấp bất kỳ hướng dẫn chi tiết nào, nhưng đây là một bài viết có thể giúp bạn bắt đầu: http://doughellmann.com/2010/05/09/defining-custom-roles-in-sphinx.html. – mzjn

+0

OK, cảm ơn. Điều này thật ý nghĩa. Tôi đã bối rối vì tôi nghĩ [raw] (http://docutils.sourceforge.net/docs/ref/rst/directives.html#raw-data-pass-through) là một chỉ thị và cho nó hoạt động. Nhưng như đã nêu [ở đây] (http://docutils.sourceforge.net/docs/ref/rst/directives.html#custom-interpreted-text-roles), điều này có vẻ là "một trường hợp đặc biệt". –

+0

Tôi đã biến bình luận của mình thành một câu trả lời đúng đắn. – mzjn

Trả lời

1

Chỉ thị hoạt động trên các khối văn bản (toàn bộ các đoạn); vai trò dành cho văn bản nội tuyến (trong các đoạn văn).

Bạn đã đề cập raw và thực sự có cả số directiverole với tên đó, để "truyền dữ liệu thô".

Nhưng không có vai trò tích hợp nào tương đương nội tuyến của chỉ thị only. Bạn sẽ phải tạo vai trò tùy chỉnh của riêng mình cho mục đích này. Tôi không thể cung cấp bất kỳ hướng dẫn chi tiết nào, nhưng đây là một bài viết có thể giúp bạn bắt đầu: http://doughellmann.com/2010/05/09/defining-custom-roles-in-sphinx.html.

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