Sveltepress হচ্ছে একটি সাইট বানানোর টুল। Vitepress থেকে অনুপ্রাণিত। SvelteKit, Unocss এর উপর নির্ভর করে তৈরী।

ন্যাভবারের প্লেগ্রাউন্ড ব্রাউজারের ভিতরে Starter-এর ফিচার ডিরেক্টরি খোলে। Markdown, Default Theme এবং Vite plugin এন্ট্রি একই Default Theme starter শেয়ার করে। ডকুমেন্ট সংস্করণ ব্যবস্থাপনা একটি Versions starter-এ চালু আছে (versions init / create · versions build)। Internationalization একটি তিন-লোকেল starter-এ চালু আছে। লোকেল প্লেগ্রাউন্ড সেই ভাষায় লেখা একই-পাথ Starter এমবেড করে (src/routes/+page.md, config/navbar.js) — /zh/ বা /bn/ রুট যোগ করে না, শুধু Internationalization এন্ট্রি ব্যতিক্রম। Custom theme শুধু প্লেগ্রাউন্ড হোম থেকে পাওয়া যায় (কোনো Guide leaf নেই); প্রিভিউয়ের ফ্রেম লেআউট অনুক্রম-এর সাথে মিলিয়ে GlobalLayout, +layout.sveltePageLayout দেখায়। ব্লগ থিম এন্ট্রি (কনফিগারেশন, পোস্ট লেখা, ফিচারসমূহ, কাস্টমাইজেশন) Blog starter শেয়ার করে। Virtual modules Kitchen-sink starter-এর একটি Reference এন্ট্রি; virtual:sveltepress/site, locale এবং versions পাতার Open in Playground সেখানেই যায়। Kitchen sink হলো All features এন্ট্রি এবং প্লেগ্রাউন্ড ক্রোমের CTA (সাইট ন্যাভবার আইটেম নয়)। Blog theme ও custom theme সেই ট্রিতে থাকে না। গাইড পাতায় Live code অপরিবর্তিত থাকে; ব্লগ ডেমো আগের মতোই একটি সম্পূর্ণ প্রদর্শনী।

অন্যান্য টুলের সাথে তুলনা

অন্যান্য আধুনিক ডকুমেন্টেশন সমাধানের সাথে Sveltepress-এর তুলনা:

ফিচার / দিকSveltepressVitePressAstro (Starlight)Docusaurus
মূল ইকোসিস্টেমSvelte / SvelteKitVue 3ফ্রেমওয়ার্ক-নিরপেক্ষReact
বিল্ড ইঞ্জিনVite 8 + SvelteKit 2Vite + Vue 3Vite + Astro কম্পাইলারWebpack
ফুলস্ট্যাক সক্ষমতাসম্পূর্ণ SvelteKit সক্ষমতা (SSR, API রুট, hooks)প্রধানত স্ট্যাটিক SSGSSR অ্যাডাপ্টার প্রয়োজনNode প্লাগইন প্রয়োজন
রিঅ্যাক্টিভিটি.md-তে সরাসরি Svelte 5 RunesVue 3 Composition APIডিফল্টরূপে স্ট্যাটিক (Islands)React Hooks
ইন্টারেক্টিভ কোডনেটিভ লাইভ কম্পোনেন্ট + Twoslash হোভারVue কম্পোনেন্টপ্লাগইন প্রয়োজনreact-live প্রয়োজন
ডকুমেন্ট সংস্করণকনটেন্ট-অ্যাড্রেসড অপরিবর্তনীয় ডেল্টা ও ডিফারেন্সব্রাঞ্চ/ডিরেক্টরি ভিত্তিকপ্লাগইন প্রয়োজনডিরেক্টরি স্ন্যাপশট কপি
অনুসন্ধানPagefind (বিল্ট-ইন) / DocSearch / MeilisearchPagefind / DocSearchPagefindAlgolia / লোকাল প্লাগইন
এআই নলেজ (llms.txt)বিল্ট-ইন স্বয়ংক্রিয় জেনারেশনথার্ড-পার্টি প্লাগইনথার্ড-পার্টি প্লাগইনথার্ড-পার্টি প্লাগইন

প্রজেক্টের স্ট্র্যাকচার

হুবহু Project structure - SvelteKit এর মতই।

শুধু পার্থক্য এই যে- পেজ এবং লআউটের জন্য .md ফাইল ব্যবহার করা যাবে।

উদাহরণস্বরূপ:

  • src/routes/+page.md হোমপেজ হিসেবে চিহ্নিত হবে।
  • src/routes/+layout.md রুটের কাস্টম লেআউট।
Sveltekit এর পূর্ণ শক্তি

Sveltepress sveltekit এর পূর্ণ শক্তি অক্ষুণ্ণ রাখে। আপনি SSG এর চেয়েও বেশি কিছু করতে পারবেন। যেমন, +page.server.js, +layout.server.js, hooks.server.js সার্ভার সাইড লজিক- যেমন অথেনটিকেশন, ডাটাবেস কানেকশন ইত্যাদির জন্য ব্যবহার করা যাবে।

লেআউট অনুক্রম

রুট লেআউট বাধ্যতামূলক

অবশ্যই src/routes/+layout.svelte অথবা src/routes/+layout.md থাকতে হবে রুট লেআউট হিসেবে। অন্যথায় থিম থেকে আসা গ্লোবাল লেআউট কাজ করবে না!

যেমন আপনার ফাইল ট্রি দেখতে এইরকম হলে

.
├─ src
│  ├─ routes
│  │  └─ +layout.(svelte|md)
│  │  ├─ foo
│  │  │  ├─ +page.(svelte|md)
│  │  │  ├─ +layout.(svelte|md)
txt

theme.globalLayout > src/routes/+layout.(svelte|md) > theme.pageLayout > src/routes/foo/+layout.(md|svelte) > src/routes/foo/+page.md

আপনাকে বুঝতে সাহায্য করার জন্য এখানে একটি গ্রাফ

কনফিগারেশন

Sveltepress এর কনফিগ @sveltepress/vite ভিট প্লাগিনে পাঠিয়ে দেয়া হয়, সমস্ত অপশন সম্পূর্ণরূপে টাইপকৃত।

আরো বিস্তারিত জানার জন্য ভিট প্লাগিন অপশন পড়ুন।

ডিপ্লয়মেন্ট

প্রথমেই Adapters - SvelteKit পড়া জরুরী। যদি আপনি npm/yarn/pnpm create @sveltepress ব্যবহার করে থাকেন তাহলে Adapter Static ডিফল্ট হিসেবে ব্যবহৃত হবে।

কিন্তু আপনি নির্দ্বিধায়। যে কোনো অ্যাডাপ্টার পরিবর্তন করতে পারেন।