मैं जेकील के लिए एक कस्टम टैग प्लगइन लिखने की कोशिश कर रहा हूं जो साइट पर सभी पृष्ठों (पोस्ट नहीं) के पदानुक्रमित नेविगेशन पेड़ को आउटपुट करेगा। मैं मूल रूप से एक निश्चित सीएसएस वर्ग द्वारा नोट किए गए वर्तमान पृष्ठ वाले पृष्ठों पर लिंक के साथ <ul>
के लिंक (पृष्ठ टेक्स्ट के रूप में पृष्ठ शीर्षक के साथ) के साथ घोंसला घोंसला चाहता हूं।जेकिल प्लगइन से पृष्ठ डेटा प्राप्त नहीं कर सकता
मैं रूबी के साथ बहुत अनुभवहीन हूं। मैं एक PHP लड़का हूँ।
मुझे लगा कि मैं बस सभी पृष्ठों के माध्यम से पुनरावृत्ति करने की कोशिश कर रहा हूं और यह सुनिश्चित करने के लिए कि मैं कम से कम ऐसा कर सकता हूं, एक आयामी सूची आउटपुट करूँगा।
module Jekyll
class NavTree < Liquid::Tag
def initialize(tag_name, text, tokens)
super
end
def render(context)
site = context.registers[:site]
output = '<ul>'
site.pages.each do |page|
output += '<li><a href="'+page.url+'">'+page.title+'</a></li>'
end
output += '<ul>'
output
end
end
end
Liquid::Template.register_tag('nav_tree', Jekyll::NavTree)
और मैं {% nav_tree %}
के माध्यम से मेरी तरल टेम्प्लेट में डालने कर रहा हूँ: यहाँ क्या मैं अब तक राशि है।
समस्या यह है कि page
उपरोक्त कोड में परिवर्तनीय सभी डेटा नहीं है जो आप चाहते हैं। page.title
अपरिभाषित है और page.url
इसके सामने एक फॉरवर्ड स्लैश वाला बेसनाम है (उदा। /a/b/c.html
के लिए, यह सिर्फ मुझे /c.html
दे रहा है)।
मैं क्या गलत कर रहा हूं?
साइड नोट: मैंने पहले से ही शुद्ध तरल मार्कअप के साथ ऐसा करने का प्रयास किया है, और अंत में मैंने छोड़ दिया। मैं आसानी से तरल के साथ site.pages
के माध्यम से ठीक कर सकता हूं, लेकिन मैं सूचियों को उचित रूप से घोंसला करने का कोई तरीका नहीं समझ पाया।
मैंने गिटहब पर एक मुद्दा बनाया [https://github.com/mojombo/jekyll/issues/548) यह देखने के लिए कि क्या कोई जवाब जानता है या नहीं। – jnrbsn
क्या आपने कभी घोंसला काम करने का प्रबंधन किया था? अगर अंतिम – bwest
@ ब्रैंड दुर्भाग्यवश, मैं इसे खत्म करने के लिए कभी नहीं मिला तो मुझे अंतिम कोड देखना अच्छा लगेगा। – jnrbsn