रिकॉर्ड के लिए, इस समाधान भी बहुत कुछ एक समाधान की तुलना में एक हैक
सबसे पहले, तुम सब मेरे वैकल्पिक हल को समझने की जरूरत के आधार पर किया जाता है, लेकिन अब के लिए, मैं कुछ बेहतर नहीं मिलता ... थीम। अपने डॉक्टर में, आप थीम (डिफ़ॉल्ट एक या एक कस्टम) का उपयोग करते हैं लेकिन फिर भी, आप थीम का उपयोग करते हैं। यह विषय अलग-अलग भाग (पृष्ठ, टोक, ...) में विभाजित है जिसे व्यक्तिगत रूप से ओवरराइड किया जा सकता है। यह ओवरराइड अलग-अलग स्तर पर किया जा सकता है: थीम स्वयं या प्रोजेक्ट की कस्टम टेम्पलेट निर्देशिका में (डिफ़ॉल्ट रूप से _templates
) (conf.py
में कॉन्फ़िगर करने योग्य)।
मेरा कामकाज page.html
टेम्पलेट को _templates
डीआईआर में ओवरराइड करना है जो आपके दस्तावेज़ में सभी पृष्ठों का प्रतिनिधित्व करता है। इस टेम्पलेट में, आपके पास pagename
(प्रत्येक फ़ाइल का सापेक्ष दस्तावेज़ पथ) तक पहुंच है। यह जानकर, आप इस टेम्पलेट में कुछ सशर्त जांच कर सकते हैं यह पता लगाने के लिए कि क्या यह एक फ़ाइल है जिसे आप & ओवरराइड करना चाहते हैं, फिर इसे ओवरराइड करें। यदि यह एक फ़ाइल जो अधिरोहित जा करने की जरूरत नहीं है, बस डिफ़ॉल्ट व्यवहार पर वापस आने:
{% extends "layout.html" %}
{% block body %}
{% if pagename == 'index' %}
{% include 'custom/index.html' %}
{% else %}
{{ body }}
{% endif %}
{% endblock %}
के रूप में समझाते हैं, यह वास्तव में एक हैक की तरह लगता है ...
आप क्या
{% extends meta.page_template|default('basic/page.html') %}
और अपने index.rst में आप तो पृष्ठ-स्तरीय-मेटा डेटा का उपयोग अंत में एक समाधान मिल गया? –
हां, मुझे एक समाधान मिला है लेकिन यह वास्तव में एक हैक की तरह लगता है ... मैंने 'पृष्ठ.html 'टेम्पलेट को ओवरराइड कर दिया है और' pagename' के अनुसार कुछ सशर्त जांच करें और फिर 'कस्टम टेम्पलेट' वास्तविक एक ... – egeloen
क्या आप यहां समाधान पेस्ट कर सकते हैं? उपयोगी होगा भले ही यह सिर्फ एक हैक है। –