Sekme genişliğini, Pygments tarafından vurgulanan Sfenks kod parçacıklarının HTML çıktısında nasıl belirlersiniz? Varsayılan olarak, can sıkıcı bir 8'dir, ancak 4 istiyorum. Bu ayar hakkında Sphinx conf.py'de bir sözcük bulamadınız.Sphinx (belge aracı): çıkışta sekme genişliğini ayarlama
cevap
Bir Sphinx Uzantısı yazmanız gerekecektir. Add your custom Lexer ve VisibleWhitespaceFilter ile uygulayın.
Sphinx'imi 0.6.3'e ve Pygments'a 1.1.1 olarak güncelledim (pygmentize -V). def kurulumu (uygulama):: Dokundu Tüm dosyalarım, sonra conf.py bu eklenen VisibleWhitespaceFilter içe pygments.filters gelen pygments.lexers.compiled ithalat JavaLexer ithal lexers sphinx.highlighting gelen myLexer = JavaLexer() myLexer.add_filter (VisibleWhitespaceFilter (boşluk = '!')); app.add_lexer ('java', myLexer); Bu, Java kodumdaki tüm sekmeleri sekiz "!" Ile değiştirdi ve tüm boşlukları "!" ile beklenildiği gibi. Seçenek sekmelerini denediğimde = '!', Hiçbir şey değişmedi. Seçenek tabsize = 4'ü denediğimde hiçbir şey değişmedi. – jbasko
Sekmeler, daha önce zincirindeki boşluklarla değiştirilmiş gibi görünüyor. Yani, bu süzgeci diğer lexer'lara (dinlenme, hiçbiri) [ lexers ['rest']. Add_filter (...)] ile eklemeyi denedim, ancak bunların hiçbiri sekmeleri veya tabsize üzerinde herhangi bir etkiye sahip değildi. – jbasko
Aynı soruyu sphinx-dev grubunda da sordum ve bu, Sphinx tarafından kullanılan Docutils ile ilgili bir sorun ortaya çıkıyor. Docutils, tüm sekmeleri 8 boşlukla değiştirir ve şu anda Sphinx'ten bu değeri değiştirmenin bir yolu yoktur. Kullanım alanlarının yerine sekmelerin -
http://groups.google.com/group/sphinx-dev/browse_thread/thread/35b8071ffe9a8feb
tek çözümdür Sorum için yorumlarda S.Lott ve John Paulett tavsiye takip etmek gibi görünüyor.
sizin conf.py için böyle bir şey ekleyin:
import re
def process_docstring(app, what, name, obj, options, lines):
spaces_pat = re.compile(r"({8})")
ll = []
for l in lines:
ll.append(spaces_pat.sub(" ",l))
lines[:] = ll
def setup(app):
app.connect('autodoc-process-docstring', process_docstring)
Sfenks
Docstring preprocessing belgelerine de bakınız.
- 1. Xcode'ta pencere genişliğini ayarlama
- 2. VIM gui sekme genişliğini değiştir
- 3. Tablo görünümünde sütun genişliğini ayarlama
- 4. Reklam genişliğini match_parent olarak ayarlama
- 5. Python-Sfenks'te meta verileri nasıl eklenir (belge aracı)
- 6. Textarea'da sekme sembolünün genişliğini değiştirmek mümkün mü?
- 7. HTML .NET için belge oluşturma aracı
- 8. JSDoc gibi TypeScript için Belge Aracı
- 9. ExtJS textfield genişliğini kapsayıcısına göre ayarlama
- 10. Tablo sütun genişliğini Markdown aracılığıyla ayarlama
- 11. Bir wxPython TextCtrl genişliğini karakter sayısında ayarlama
- 12. Farklı web tarayıcılarında PRE sekmesi genişliğini ayarlama
- 13. CSS Textarea genişliğini% 100 olarak ayarlama
- 14. Android studio'da gezinme çekmecesinin genişliğini ayarlama
- 15. Bir görüntünün genişliğini yeni bir sekmede ayarlama
- 16. Sphinx kullanarak bir Python özellik belirleyicisi için nasıl belge üretebilirim?
- 17. UIDocumentInteractionController çıkışta çöküyor
- 18. Primefaces sekmesi: Etkin dizini sekme değiştirmeyi ayarlama
- 19. PyQt uygulamasında çıkışta sor
- 20. python-sphinx
- 21. Android'de TextView'ın genişliğini ve yüksekliğini dinamik olarak ayarlama
- 22. Tepkime önyükleme için özel daraltma genişliğini ayarlama NavBar
- 23. Android: Genişliğini temel alarak XML'de düğme yüksekliğini ayarlama
- 24. Dışa aktarma sırasında hücre genişliğini ayarlama js-xlsx
- 25. Excel/VBA: verileri yapıştırdıktan sonra sütun genişliğini otomatik olarak ayarlama
- 26. Visual Studio 2015'te WinMerge Diff/merge aracı olarak ayarlama
- 27. Bir takograf aracı için ek sınıf yolu ayarlama
- 28. Deneme/çıkışta programdan nasıl çıkabilirim?
- 29. RxJS gözlemlenebilir sekansı çoklu çıkışta
- 30. Visual Web Developer (Express): Dev Environment için Belge Kökünü Ayarlama
S. Lott ile anlaştıysanız, Java dünyasında bile sekmeler yerine boşluk kullanabilirsiniz. http://java.sun.com/docs/codeconv/html/CodeConventions.doc3.html#262 –
Bazılarının sadece alanlara geçiş yapması o kadar kolay olmayabilir: Tüm ekibinizin kod tabanı, sekmeleri kullanabilir ve tedarik edebilir boşlukları kullanan belgeler tutarsızdır. Tüm kodun bir diğerini kullanacak şekilde değiştirilmesi pratik değildir ve potansiyel olarak yıkıcıdır. Sfenks birçok farklı dil ve ortam için yararlıdır. Sekmeler desteklemiyorsa, çevredeki en iyi anlatımsal dokümantasyon araçlarının bozulmadığı argümanı, "PEP8, bu yüzden" en iyi ihtimalle kısa süreli ve ters tepki verdiğinden, bu sizin kırılan kodunuz. – Shabbyrobe
Ayrıca, sekme yerine, sfenks değil, seküler değiştirme olur farkındayım, ancak sfenks sorundan ciddi şekilde etkilenir ve onunla başa çıkmak için bazı sorumluluk almalıdır. – Shabbyrobe