শুধু HTML, CSS আর JS
নতুন কোনো ভাষা নেই। লুপ আর শর্ত লিখুন HTML-এর নিজের <template> ট্যাগে, মান বসান {{ }} দিয়ে।
হালকা স্ট্যাটিক ওয়েব ফ্রেমওয়ার্ক
কম্পোনেন্ট, লেআউট আর ব্লগসহ সাইট বানান সাধারণ HTML, CSS আর JavaScript লিখে। বিল্ড করলে পাবেন হালকা, দ্রুত স্ট্যাটিক সাইট, যা যেকোনো হোস্টিংয়ে চলে।
$ npx @msilabs/alo init my-site
যা যা পাবেন
নতুন কোনো ভাষা নেই। লুপ আর শর্ত লিখুন HTML-এর নিজের <template> ট্যাগে, মান বসান {{ }} দিয়ে।
components/ ফোল্ডারে ফাইল রাখলেই <Card /> লেখা যায়। কোনো import নেই, কোনো কনফিগারেশন নেই।
data/ ফোল্ডারের প্রতিটি লেখা থেকে নিজে থেকেই পেইজ তৈরি হয়। খসড়া থাকে শুধু আপনার কম্পিউটারে।
ব্রাউজারে যায় শুধু তৈরি হওয়া HTML। যে পেইজে স্ক্রিপ্ট নেই, সেখানে এক লাইন JS-ও যায় না।
ফাইল সংরক্ষণ করলেই ব্রাউজার নিজে থেকে রিলোড হয়। ভুল হলে ফাইল আর লাইনসহ এরর দেখায়।
dist/ ফোল্ডারটিই পুরো সাইট। GitHub Pages, Netlify বা সাধারণ হোস্টিং, সব জায়গায় চলে।
দেখতে ঠিক HTML-এর মতো
components/ ফোল্ডারে একটি ফাইল রাখলেই সেটি কম্পোনেন্ট। কোনো import নেই, কোনো কনফিগারেশন নেই।
অ্যাট্রিবিউট দিয়ে যা পাঠান, কম্পোনেন্টের ভেতরে সেটি পাওয়া যায় props-এ।
components/Card.alo
<template>
<article class="card">
<h3>{{ props.title }}</h3>
<slot />
</article>
</template>
pages/page.alo
<template>
<Card title="স্বাগতম">
<p>আলো দিয়ে বানানো প্রথম কার্ড।</p>
</Card>
</template>
ইন্টারঅ্যাকটিভ কম্পোনেন্ট
এই কাউন্টারটি একটি আলো কম্পোনেন্ট। তার স্ক্রিপ্টে $el হলো কম্পোনেন্টের নিজের এলিমেন্ট,
আর শুরুর সংখ্যাটি বিল্ডের সময় আসে data-start অ্যাট্রিবিউট দিয়ে। কোনো রিঅ্যাক্টিভ রানটাইম নেই।
ব্লগ
এডিটর এক্সটেনশন, পেজিনেশন আর নামযুক্ত স্লট, আর কেন এই তিনটিই আগে।
একটি workflow ফাইল আর একটি ফ্ল্যাগ দিয়ে বিনামূল্যে সাইট অনলাইনে।
মেনু, তালিকা আর ব্লগের লেখা HTML-এর বাইরে রাখার উপায়।
প্রশ্ন আর উত্তর
HTML আর একটু CSS জানলেই শুরু করা যায়। ইন্টারঅ্যাকটিভ কিছু লাগলে সাধারণ JavaScript।
না। বিল্ড করলে সাধারণ HTML, CSS আর JS ফাইল তৈরি হয়, যেকোনো স্ট্যাটিক হোস্টিংয়ে আপলোড করলেই চলে।
না। লুপ আর শর্ত চলে বিল্ডের সময়, একবার। ব্রাউজারে চলে শুধু আপনার নিজের লেখা স্ক্রিপ্ট।
অবশ্যই। এই সাইটটিই আলো দিয়ে বানানো। Markdown-এর বাংলা হেডিং থেকেও পড়ার মতো লিংক তৈরি হয়।