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: "" # the subpath of your site, e.g. /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-এর ফাইনাল ভ্যালু হবে ব্ল্যাঙ্ক। এটি আমার ওয়েবসাইটে ডিফাইন করা সকল URL-কে রিলেটিভ URL-এ রূপান্তর করবে এবং সেগুলো আমার লোকাল ল্যাপটপে কাজ করবে।
ডাইনামিক কনফিগ ফাইল কম্বাইন করা
একটি সহজ উদাহরণ হিসেবে, ধরুন আপনি আপনার ওয়েবসাইটে করেন্ট ডেট দেখাতে চান। এর জন্য 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-এ, আমি Python ব্যবহার করছি Mastodon ইউজার Статистиক ফেচ করতে। আমি তারপর সেগুলো একটি নতুন _config-data.yml ফাইলে লিখছি (বর্তমানে ম্যানুয়ালি)। শেষে, হোম পেজ এবং অন্যান্য এগুলো কনফিগারেশন ফাইল থেকে ডিসপ্লে করে। এইভাবে, আমি একটি ডাইনামিক ব্যাকএন্ড লিভারেজ করতে পারি এবং এখনও সকল স্ট্যাটিক ওয়েবসাইটের ভালোবাসা জিনিসগুলো রক্ষা করতে পারি।
আশা করি এটি আপনার নিজস্ব স্ট্যাটিক ওয়েবসাইট প্রজেক্টের জন্য কিছু আইডিয়া জাগিয়েছে। Jamstack স্ট্যাটিক ওয়েবসাইটের জন্য দারুন, কিন্তু আপনি ডাইনামিক কন্টেন্টের জন্য একটি পুরো API ব্যাকএন্ড তৈরি করা এড়াতে পারেন। কেন না বিল্ড জব ব্যবহার করে আপডেটেড কন্টেন্ট সহ কনফিগ ফাইল তৈরি করুন? এটি প্রতিটি ইউজ কেসের জন্য উপযোগী নাও হতে পারে, কিন্তু একটা কম API মানে কম ইনফ্রাস্ট্রাকচার mouvিং পার্টস।
আশা করি এটি আপনার পরবর্তী স্ট্যাটিক ওয়েবসাইট প্রজেক্টে কিছু হেল্প করবে। পড়তে থাকুন, এবং হ্যাপি কোডিং।