৩ মিনিটের রান্না, Deno-এর Lume CMS দিয়ে দ্রুত ব্লগ বা ওয়েবসাইট চালু করুন

হ্যালো, আমি অদক্ষ।
আমি দীর্ঘদিন ধরে Deno অনুসরণ করছিলাম এবং একটি সহজ পরিবেশে বাস্তবায়নযোগ্য এবং সহজে ব্যবহারযোগ্য CMS খুঁজছিলাম, তখনই LumeCMS-এর সাথে আমার পরিচয় হয়।
সুতরাং, Deno ইনস্টল করা আছে ধরে নিয়ে একটি ডিরেক্টরি তৈরি করা যাক।
mkdir newsite
এবং, Lume ইনস্টল করুন।
deno run -A https://deno.land/x/lume/init.ts

এখন, যেহেতু আমি একটি থিম ব্যবহার করতে চাই, তাই "Install a theme" নির্বাচন করুন এবং তারপর "_config.ts" নির্বাচন করুন।

এখন "Simple Blog" নির্বাচন করুন।

হ্যাঁ, এটিই শেষ। তাহলে চলুন এটি বাস্তবে চালানো যাক।
deno task lume cms

এটি অ্যাক্সেস করলে...।


আরে, এটা খুব দ্রুত...।
তবে, স্ট্যান্ডার্ড আপলোড ফোল্ডারটি হলো `./uploads` যেখানে `deno task lume cms` চালানো হয়েছিল, কিন্তু ব্লগে Markdown ফরম্যাটে কপি ও পেস্ট করলে এটি `./_site/uploads` হয়ে যায়, যার ফলে ছবির পাথ ভুল হয় এবং ছবি প্রদর্শিত হয় না।
আমি মনে করি এই ধরনের স্পেসিফিকেশন রাখা হয়েছে কারণ এর পেছনের ধারণা হলো LumeCMS অন্যান্য SSG যেমন Hugo-এর মতো পরিবেশেও ব্যবহার করা যাবে।

সেজন্য, `_config.ts` ফাইলটি খুলুন।
vim _config.ts
import lume from "lume/mod.ts";
import blog from "blog/mod.ts";
const site = lume();
site.use(blog());
// এখানে uploads ফোল্ডারে কপি করার জন্য
site.copy("uploads", "uploads");
export default site;
এর মাধ্যমে, `./uploads`-এ আপলোড করা ছবিগুলো `./_site/uploads` ফোল্ডারে কপি হবে এবং সঠিকভাবে দেখা যাবে। আমি এটি এভাবে করেছি কারণ আমি ভেবেছিলাম যে যদি আসল ফাইলগুলো `./uploads`-এ রাখা হয়, তাহলে `./_site/uploads`-এ কপি করা ছবিগুলো নিয়ে কাজ করা সহজ হবে (যেমন ফরম্যাট পরিবর্তন করা)।
একটি পরীক্ষামূলক পোস্ট তৈরি করার পর ডিরেক্টরি কাঠামোটি এমন:
├── 404.md
├── _cms.ts
├── _config.ts
├── _data.yml
├── _site
│ ├── 404.html
│ ├── archive
│ │ └── index.html
│ ├── favicon.png
│ ├── feed.json
│ ├── feed.xml
│ ├── index.html
│ ├── js
│ │ ├── comments.js
│ │ └── main.js
│ ├── pagefind
│ │ ├── fragment
│ │ │ └── en_3551ff1.pf_fragment
│ │ ├── index
│ │ │ └── en_8fc6f26.pf_index
│ │ ├── pagefind-entry.json
│ │ ├── pagefind-highlight.js
│ │ ├── pagefind-modular-ui.css
│ │ ├── pagefind-modular-ui.js
│ │ ├── pagefind-ui.css
│ │ ├── pagefind-ui.js
│ │ ├── pagefind.en_7625ba4347.pf_meta
│ │ ├── pagefind.js
│ │ ├── wasm.en.pagefind
│ │ └── wasm.unknown.pagefind
│ ├── robots.txt
│ ├── sitemap.xml
│ ├── styles.css
│ ├── test
│ │ └── index.html
│ └── uploads
│ └── images-(2)-(9).jpeg
├── deno.json
├── deno.lock
├── favicon.png
├── posts
│ └── test.md
└── uploads
└── images-(2)-(9).jpeg
এবং পোস্ট তৈরির পৃষ্ঠাটি দেখতে এমন।

SSG-এর দুর্বলতা হলো স্মার্টফোন থেকে পোস্ট করা যায় না (যদিও অসম্ভব নয়), এবং Markdown লেখা খুব সহজ হলেও স্মার্টফোন থেকে এটি কঠিন। কিন্তু এটি দিয়ে এখন খুব সহজে এই কাজটি করা সম্ভব হয়েছে।
আমার জন্য এটি ঠিক সেটাই ছিল যা আমি খুঁজছিলাম, তাই আমি আশা করি ভবিষ্যতে সাইটটি মাইগ্রেট করতে পারব।
WP থেকে SSG-তে মাইগ্রেশন নিয়ে অনেক আর্টিকেল পাওয়া যাবে। তবে, আমি সাধারণত তখনই করি যখন আমার কাজ করার ইচ্ছা হয়।
তাহলে।
আবার দেখা হবে।