Jekyll, स्टैटिक साइट जनरेटर, कॉन्फिगरेशन के लिए _config.yml का उपयोग करता है। कॉन्फिगरेशन्स सभी Jekyll-विशिष्ट हैं। लेकिन आप इन फ़ाइलों में अपने स्वयं के कंटेंट के साथ वेरिएबल्स भी परिभाषित कर सकते हैं और उन्हें अपनी वेबसाइट पर पूरे में उपयोग कर सकते हैं। इस लेख में, मैं डायनामिक रूप से Jekyll कॉन्फिग फ़ाइलें बनाने के कुछ लाभों पर प्रकाश डालूंगा।
मेरे स्थानीय लैपटॉप पर, मैं अपनी Jekyll वेबसाइट को टेस्टिंग के लिए सर्व करने के लिए निम्न कमांड का उपयोग करता हूं:
bundle exec jekyll serve --incremental --config _config.ymlकई कॉन्फिगरेशन फ़ाइलों को संयोजित करना
स्थानीय टेस्टिंग के दौरान, कॉन्फिगरेशन विकल्पों को ओवरराइड करना कभी-कभी आवश्यक होता है। मेरी वेबसाइट के वर्तमान _config.yml में निम्न सेटिंग्स हैं:
# Jekyll Configuration
# Site Settings
url: "https://notes.ayushsharma.in"
website_url: "https://notes.ayushsharma.in/"
title: ayush sharma's notes ☕ + ? + ?️
email: ayush@ayushsharma.in
images-path: /static/images/
videos-path: /static/videos/
js-path: /static/js/
baseurl: "" # आपकी साइट का सबपथ, जैसे /blog
चूंकि स्थानीय jekyll serve URL http : //localhost:4000 है, ऊपर परिभाषित URL काम नहीं करेगा। मैं हमेशा _config.yml की एक कॉपी _config-local.yml के रूप में बना सकता हूं और सभी मानों को बदल सकता हूं। लेकिन एक आसान विकल्प है।
Jekyll कई कॉन्फिगरेशन फ़ाइलों को निर्दिष्ट करने की अनुमति देता है जहां बाद की घोषणाएं पिछली को ओवरराइड करती हैं। इसका मतलब है कि मैं निम्न कोड के साथ एक नया _config-local.yml परिभाषित कर सकता हूं:
url:""फिर मैं ऊपर की फ़ाइल को अपने मुख्य _config.yml के साथ इस तरह संयोजित कर सकता हूं:
bundle exec jekyll serve --incremental --config _config.yml,_config-local.ymlदोनों फ़ाइलों को संयोजित करके, इस jekyll serve के लिए url का अंतिम मान खाली होगा। यह मेरी वेबसाइट में परिभाषित सभी URLs को सापेक्ष URLs में बदल देता है और उन्हें मेरे स्थानीय लैपटॉप पर काम करने लायक बनाता है।
डायनामिक कॉन्फिग फ़ाइलों को संयोजित करना
एक सरल उदाहरण के रूप में, मान लीजिए आप अपनी वेबसाइट पर वर्तमान तारीख प्रदर्शित करना चाहते हैं। इसके लिए bash कमांड है:
> date '+%A, %d %B %Y'
Saturday, 16 October 2021
मुझे पता है कि मैं Jekyll के _config.yml का उपयोग कस्टम कंटेंट के लिए भी कर सकता हूं। मैं ऊपर की तारीख को एक नई Jekyll कॉन्फिग फ़ाइल में आउटपुट करूंगा।
my_date=`date '+%A, %d %B %Y'`; echo 'my_date: "'$my_date'"' > _config-data.ymlअब _config-data.yml में है:
my_date: "Saturday, 16 October 2021"मैं अपनी नई कॉन्फिग फ़ाइल को दूसरों के साथ संयोजित कर सकता हूं और my_date वेरिएबल को अपनी वेबसाइट पर उपयोग कर सकता हूं।
bundle exec jekyll serve --incremental --config _config.yml,_config-local.yml,_config-data.ymlउपरोक्त कमांड चलाने पर, {{ site.my_date }} इसका कॉन्फिगर किया गया मान आउटपुट करता है।
निष्कर्ष
उपरोक्त उदाहरण काफी सरल है, लेकिन संभावनाएं अनंत हैं। Bash, Python, और अन्य प्रोग्रामिंग भाषाएं डायनामिक रूप से Jekyll कॉन्फिग फ़ाइलें जनरेट कर सकती हैं। मैं फिर build या serve प्रक्रिया के दौरान इन्हें संयोजित कर सकता हूं।
findmymastodon.com के लिए, मैं Mastodon यूजर आंकड़े लाने के लिए Python का उपयोग कर रहा हूं। मैं फिर इन्हें एक नई _config-data.yml फ़ाइल में लिख रहा हूं (वर्तमान में मैन्युअली)। अंत में, होम पेज और अन्य कॉन्फिगरेशन फ़ाइल से इन्हें प्रदर्शित करते हैं। इस तरह, मैं एक डायनामिक बैकएंड का लाभ उठा सकता हूं और फिर भी वह सभी स्टैटिक वेबसाइट अच्छाई बरकरार रख सकता हूं जिसका मैं इतना शौकीन हूं।
मुझे आशा है कि इसने आपके अपने स्टैटिक वेबसाइट प्रोजेक्ट्स के लिए कुछ विचार जगाए हैं। Jamstack स्टैटिक वेबसाइट्स के लिए बहुत अच्छा है, लेकिन आप डायनामिक कंटेंट के लिए एक संपूर्ण API बैकएंड बनाने से बच सकते हैं। क्यों न इसके बजाय एक बिल्ड जॉब का उपयोग करके अपडेटेड कंटेंट के साथ कॉन्फिग फ़ाइलें बनाएं? यह हर उपयोग के मामले के लिए उपयुक्त नहीं हो सकता है, लेकिन एक कम API का मतलब है कम इन्फ्रास्ट्रक्चर मूविंग पार्ट्स।
मुझे आशा है कि यह आपके अगले स्टैटिक वेबसाइट प्रोजेक्ट के दौरान किसी तरह मदद करता है। पढ़ते रहें, और हैप्पी कोडिंग।