2012-11-24 27 views
12

मैंने अपना पूरा ब्लॉग वर्डप्रेस से जेकिल में स्थानांतरित कर दिया। अभी भी कुछ टुकड़े हैं जिन्हें यहां और वहां फिक्स करने की आवश्यकता है, लेकिन इस समय मुझे इस समस्या का सामना करना पड़ रहा है। मैं जेकिल में साइटमैप उत्पन्न करने में असमर्थ हूं। मैंने देखा कि कुछ प्लगइन्स हैं जो मेरे लिए काम कर सकते हैं। साइट परप्लगइन के बिना जेकिल में साइटमैप जेनरेट करें

जानकारी:

  • साइट Github पृष्ठों
  • पूरी साइट handcoded के माध्यम से की मेजबानी - जेबी या Octopress

का उपयोग नहीं यह बहुत अच्छा है अगर तुम मुझे की ओर कुछ संकेत मिल सकता है हो सकता है आवश्यक कैसे करें।

नोट: यह प्रश्न पूर्ववर्तियों के समान नहीं है। मैं उन विकल्पों की तलाश नहीं कर रहा हूं जो _site का उपयोग करते हैं।

उत्तर

10

आप अपनी साइट जड़ 'sitemap.xml' कहा जाता है में एक नई फ़ाइल बना सकते हैं, और उस पृष्ठ उपयोग तरल टैग के सभी पृष्ठों और पदों के लिए आवश्यक डेटा निकालने से अधिक पुनरावृति करने के लिए। ऐसा लगता है कि यह काम बहुत आसानी से करेगा, यह मानते हुए कि आप केवल एक पृष्ठ बनाना चाहते हैं जो साइट पर प्रत्येक पृष्ठ को एक XML प्रारूप में सूचीबद्ध करता है जो उपयुक्त मानक के अनुरूप है।

+1

आप पोस्ट के साथ ऐसा कर सकते हैं, हां, लेकिन पृष्ठों के साथ नहीं। यदि आपके पास कुछ ओहर स्थिर पृष्ठ हैं, उदा। एक 'मेरे बारे में' पृष्ठ, यह site.posts सरणी का हिस्सा नहीं होगा। इसलिए, साइटमैप इस appproach साथ अधूरी रहेगी। – Polygnome

+3

पॉलीग्नोम - यह सही नहीं है। एक है: पेज एक्सेसर जो आपको साइट पेजेज%} में पृष्ठ के लिए '{% के ​​माध्यम से सभी पृष्ठों (पोस्ट नहीं) तक पहुंचने की अनुमति देता है। प्रासंगिक स्रोत यहां है: https://github.com/mojombo/jekyll/blob/master/lib/jekyll/site.rb – heliotrope

+0

दिलचस्प। इसका उल्लेख https://github.com/mojombo/jekyll/wiki/Template- डेटा में नहीं है। शायद आप इसे वहां जोड़ देंगे? – Polygnome

2

आप प्लगइन का उपयोग किये बिना जैकिल में स्वचालित साइटमैप स्वचालित रूप से उत्पन्न नहीं कर सकते हैं।

आप क्या कर सकते हैं अपनी खुद की रूबी (या अन्य) स्क्रिप्ट बनाते हैं जो साइटमैप जेएसओएन डेटा के रूप में उत्पन्न करता है और फिर इसे अपने config.yml में डालें। वहां से आप उस डेटा को जेकील से एक्सेस कर सकते हैं और इसे प्रदर्शित कर सकते हैं।

लेकिन जैकिल के साथ ऐसा करने के लिए कोई अंतर्निहित तरीका नहीं है।

10

this article में John Day द्वारा समझाया रूप में, आप इस सामग्री के साथ अपनी साइट के रूट में एक sitemap.xml फ़ाइल बना सकते हैं:,

--- 
layout: nil 
title : "Sitemap" 
sitemap_exclude: y 
--- 
<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
    {% for post in site.posts %} 
    <url> 
     <loc>{{site.production_url}}{{ post.url | remove: 'index.html' }}</loc> 
    </url> 
    {% endfor %} 

    {% for page in site.pages %} 
    {% if page.sitemap_exclude != 'y' %} 
    <url> 
     <loc>{{site.production_url}}{{ page.url | remove: 'index.html' }}</loc> 
    </url> 
    {% endif %} 
    {% endfor %} 
</urlset> 

_config.yml में साइट की पूरी आधार URL के साथ production_url नामक एक चर को परिभाषित (जैसे http://example.com) ।

आप साइटमैप से किसी भी लिंक को बाहर निकालना चाहते हैं, तो पृष्ठ या पोस्ट के सामने इस मामले में sitemap_exclude: y शामिल हैं।

अधिक उन्नत उदाहरण के लिए इस आलेख का संदर्भ लें: Building a Better Sitemap.xml with Jekyll

2

बस इस पर आया क्योंकि मेरी साइट github-pages पर होस्ट की गई है। ऐसा लगता है कि जिथब पेज अब इसका समर्थन करते हैं।

बस _config.yml में जोड़ने के लिए किया था:

gems: 
    - jekyll-sitemap 

(आप वैकल्पिक रूप से अपने Gemfile को जोड़ सकते हैं, लेकिन मेरा पहले से ही निर्भरता के माध्यम से शामिल किया गया था)

(मज़ेदार तथ्य: Jekyll-रीडायरेक्ट-से गीथब पृष्ठों द्वारा भी समर्थित है)

+2

यदि कोई और इस पर ठोकर खाता है, तो सुनिश्चित करें कि आपके पास '- jekyll-sitemap' टाइप करने से पहले कोई टैब नहीं है, जेकील इस तरह से नहीं बनाएगा। मैंने इसे पहले अपने जेमफाइल में जोड़ा लेकिन मेरा _config.yml नहीं था और यह साइटमैप उत्पन्न नहीं किया था। – matrixanomaly

+0

इसके अलावा, मुझे एहसास नहीं हुआ कि मुझे साइटमैप.एक्सएमएल को _साइट फ़ोल्डर में दिखाने के लिए साइट को पूरी तरह पुन: उत्पन्न करने की आवश्यकता है। – evan