2012-03-14 17 views
14

Bu, "ReST Strikethrough" ReST strikethrough'un bir izlemesidir, ancak ReST bağlamından ziyade bir Sfenks biçimindedir. Benim sorum, sfenksde “rol” direktifinin koyacağı merkezi bir yer olup olmadığı ya da bu yönergelerin gerçekten bir sfenks doktorluğu içinde her rst dosyasında tekrarlanması gerekip gerekmediğidir. Daha ayrıntılı olarakSphinx'te küresel bir rol/rol nasıl oluşturabilirim?

:

Bir rol yönergesini kullanarak satır içi metin için özel CSS stilleri (örnek olarak Rest Üstü bakınız) tanımlamak kolaydır:

.. role:: custom 
    :class: custom 

This is an :custom:`inline text`. 

bir html render çevirir
.. This is an <span class="custom">inline text</span>. .. 

Ayrıca özel bir stil kolayca nasıl "özel" metnini kontrol etmek için bir CSS sınıf seçici eklemek için sfenks (http://www.tinkerer.me/doc/theming.html bakınız) eklenebilir oluşturuldu (renk, üstü çizili, yazı tipi, boyut ...)

Beni rahatsız eden şey, deneylerimde, özel rolü kullanan her ReST dosyasındaki rol yönergesini tekrarlamak zorunda kalmamdır. Tüm site için bunu bir kez tanımlayabileceğim bir "merkezi" yer var mı?

+0

Güncellenmiş Tinkerer linki: http://www.tinkerer.me/doc/more_tinkering.html#theming – stratosgear

+0

Burada bazı açıklamalar ekledim: http://stackoverflow.com/a/24932178/2923406 – Rolf

cevap

17

O conf.py dosyasında ayarlanır rst_prolog aradığım merkezi bir yer gibi görünüyor. Rst_prolog "okunan her kaynak dosyanın başında eklenecek bir reStructuredText dizgesidir".

rst_prolog = """ 
.. role:: test2 
""" 

Not Ayrıca benim amaç için, bir sınıf attibute olmadan rol direktif gayet güzel çalışıyor: Benim durumumda, ben sadece conf.py için aşağıdaki eklendi.

Açıkça, Chris'in işaret ettiği gibi, bir çok şeyi gerçekleştiren bir rst_prolog, bir global.rst dosyasını ekleyerek sağlanabilir. Ancak, göreceli yolu ile ilgili sorunlar olabilir. Belki de rst_prolog = open ('global.rst', 'r') kullanmak daha iyidir read() --untested]

3

documenting your project using sphinx adresindeki örnekte, tüm rol yönergelerinizi içeren global.rst dosyasını, diğer dosyalarınıza eklemek için include dosyasını kullanabilirsiniz.

sözdizimi: Bu siteden

.. include:: myfile.rst 

Will "satır içi" Verilen dosya (myfile.rst). Kullandığım genel bir sözleşme, global.rst adlı global bir ilk dosya oluştur ve her sayfanın en üstünde yer al. vb yaygın görüntü veya ortak dosyalar bağlantıları bağlantılar için çok yararlı

+0

Sanırım '.. include :: myfile.rst' – Rolf