स्थिर साइट जनरेटर 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: [email protected]
images-path: /static/images/
videos-path: /static/videos/
js-path: /static/js/
baseurl: "" # the subpath of your site, e.g. /blog
चूंकि स्थानीय jekyll serve
यूआरएल है http : //लोकलहोस्ट:4000, ऊपर परिभाषित यूआरएल काम नहीं करेगा। मैं हमेशा _config.yml
. की कॉपी बना सकता हूं _config-local.yml
. के रूप में और सभी मानों को बदलें। लेकिन एक आसान विकल्प है।
Jekyll कई कॉन्फ़िगरेशन फ़ाइलों को निर्दिष्ट करने की अनुमति देता है, जिसमें बाद की घोषणाएं पिछली घोषणाओं को ओवरराइड करती हैं। इसका मतलब है कि मैं एक नया _config-local.yml
परिभाषित कर सकता हूं निम्नलिखित कोड के साथ:
url:""
फिर मैं उपरोक्त फ़ाइल को अपने मुख्य _config.yml
. के साथ जोड़ सकता हूं इस तरह:
bundle exec jekyll serve --incremental --config _config.yml,_config-local.yml
दोनों फाइलों को मिलाकर, url
. का अंतिम मान इसके लिए jekyll serve
रिक्त हो जाएगा। यह मेरी वेबसाइट में परिभाषित सभी यूआरएल को सापेक्ष यूआरएल में बदल देता है और उन्हें मेरे स्थानीय लैपटॉप पर काम करता है।
डायनेमिक कॉन्फ़िग फ़ाइलों को संयोजित करना
एक साधारण उदाहरण के रूप में, मान लीजिए कि आप अपनी वेबसाइट पर वर्तमान तिथि प्रदर्शित करना चाहते हैं। इसके लिए बैश कमांड है:
> 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 }}
इसके कॉन्फ़िगर किए गए मान को आउटपुट करता है।
निष्कर्ष
ऊपर दिया गया उदाहरण काफी सरल है, लेकिन संभावनाएं अनंत हैं। बैश, पायथन और अन्य प्रोग्रामिंग भाषाएं गतिशील रूप से जेकिल कॉन्फिग फाइल जेनरेट कर सकती हैं। फिर मैं इन्हें build
. के दौरान जोड़ सकता हूं या serve
प्रक्रिया।
Findmymastodon.com के लिए, मैं मास्टोडन उपयोगकर्ता आंकड़े लाने के लिए पायथन का उपयोग कर रहा हूं। फिर मैं इन्हें एक नई _config-data.yml फ़ाइल (वर्तमान में मैन्युअल रूप से) में लिख रहा हूं। अंत में, होम पेज और अन्य इन्हें कॉन्फ़िगरेशन फ़ाइल से प्रदर्शित करते हैं। इस तरह, मैं एक गतिशील बैकएंड का लाभ उठा सकता हूं और अभी भी सभी स्थिर वेबसाइट अच्छाइयों को बनाए रख सकता हूं जो मुझे बहुत पसंद हैं।
मुझे आशा है कि इसने आपकी अपनी स्थिर वेबसाइटों के लिए कुछ विचारों को जन्म दिया है। स्थिर वेबसाइटों के लिए Jamstack बहुत अच्छा है, लेकिन आप गतिशील सामग्री के लिए संपूर्ण API बैकएंड बनाने से बच सकते हैं। इसके बजाय अद्यतन सामग्री के साथ कॉन्फिग फाइल बनाने के लिए बिल्ड जॉब का उपयोग क्यों न करें? यह हर उपयोग के मामले के अनुकूल नहीं हो सकता है, लेकिन एक कम एपीआई का मतलब है कम बुनियादी ढांचे को हिलाने वाले हिस्से।
मुझे आशा है कि यह आपके अगले स्थिर वेबसाइट प्रोजेक्ट के दौरान किसी तरह आपकी मदद करेगा। पढ़ते रहिये और कोडिंग करते रहिये।