সব অপশন vite.config.ts এর blogTheme() এ পাস করা হয়।

BlogThemeOptions

অপশনটাইপডিফল্টবর্ণনা
titlestringসাইটের টাইটেল। <title>, সাইডবার ব্র্যান্ড, OG ট্যাগ এবং RSS ফিডে ব্যবহৃত হয়।
descriptionstringসাইটের বর্ণনা। meta এবং OG এ ব্যবহৃত হয়।
basestringসাইটের সম্পূর্ণ URL (যেমন https://example.com)। অ্যাবসোলিউট RSS লিংক এবং OG ইমেজ URL তৈরিতে ব্যবহৃত হয়।
authorAuthorProfileসাইডবারে দেখানো লেখকের পরিচয়।
about{ html: string }সাইডবারে লেখকের তথ্যের নিচে রেন্ডার করা HTML ব্লক (সংক্ষিপ্ত রাখুন — স্বতন্ত্র About পেজ আর নেই)।
navbarArray<{ title, to }>লেখকের তথ্যের নিচের নেভ লিংক। to এ স্বয়ংক্রিয়ভাবে SvelteKit-এর base যুক্ত হবে।
themeColorThemeColorEmber প্যালেটডার্ক মোড প্যালেট ওভাররাইড।
themeColorLightThemeColorক্রিমলাইট মোড প্যালেট ওভাররাইড।
defaultMode'system' | 'dark' | 'light''system'ইউজার টগল করার আগের ইনিশিয়াল কালার মোড।
postsDirstring'src/posts'*.md পোস্ট স্ক্যান করার ডিরেক্টরি।
pageSizenumber12হোম লিস্টিং এ প্রতি পেজে পোস্টের সংখ্যা।
highlighterHighlighterOptionsShiki/Twoslash অপশন।
rss{ enabled, limit, copyright }enabled, 20RSS ফিড তৈরি। static/rss.xml এ লেখে।
ogImage{ enabled, fontPath, tagline }enabledSatori দিয়ে প্রতি পোস্টের OG ইমেজ তৈরি। নেটিভ অ্যাডঅন লোড করা না গেলে এড়িয়ে যায়।
giscusGiscusConfigGitHub Discussions-ভিত্তিক কমেন্ট সক্রিয় করতে সেট করুন।
searchreservedএখন কনফিগার করবেন না। বর্তমান রিলিজ সবসময় বিল্ট-ইন Pagefind সার্চ ব্যবহার করে।

AuthorProfile

interface AuthorProfile {
  AuthorProfile.name: stringname: string
  AuthorProfile.avatar?: string | undefinedavatar?: string // অ্যাবসোলিউট URL অথবা /-দিয়ে শুরু static/ পাথ
  AuthorProfile.bio?: string | undefinedbio?: string
  
AuthorProfile.socials?: {
    github?: string;
    twitter?: string;
    mastodon?: string;
    bluesky?: string;
    email?: string;
    website?: string;
    rss?: string;
} | undefined
socials
?: {
github?: string | undefinedgithub?: string // ইউজারনেম, URL না twitter?: string | undefinedtwitter?: string // ইউজারনেম, URL না mastodon?: string | undefinedmastodon?: string // পূর্ণ প্রোফাইল URL bluesky?: string | undefinedbluesky?: string // 'name.bsky.social' ফরম্যাটের handle email?: string | undefinedemail?: string website?: string | undefinedwebsite?: string // পূর্ণ URL rss?: string | undefinedrss?: string // পূর্ণ URL অথবা /-দিয়ে শুরু পাথ } }
ts

ThemeColor

interface ThemeColor {
  ThemeColor.primary?: string | undefinedprimary?: string // ডিফল্ট '#fb923c'
  ThemeColor.secondary?: string | undefinedsecondary?: string // ডিফল্ট '#dc2626'
  ThemeColor.bg?: string | undefinedbg?: string // ডিফল্ট '#1a0a00'
  ThemeColor.surface?: string | undefinedsurface?: string // ডিফল্ট '#2d1200'
}
ts

HighlighterOptions

interface HighlighterOptions {
  HighlighterOptions.themeDark?: string | undefinedthemeDark?: string // Shiki থিম, ডিফল্ট 'night-owl'
  HighlighterOptions.themeLight?: string | undefinedthemeLight?: string // Shiki থিম, ডিফল্ট 'vitesse-light'
  HighlighterOptions.languages?: string[] | undefinedlanguages?: string[] // অতিরিক্ত ভাষা, ডিফল্টের সাথে মার্জ হবে
  HighlighterOptions.twoslash?: boolean | undefinedtwoslash?: boolean // Twoslash TypeScript হোভার তথ্য সক্রিয় করে
}
ts

GiscusConfig

interface GiscusConfig {
  GiscusConfig.repo: `${string}/${string}`repo: `${string}/${string}`
  GiscusConfig.repoId: stringrepoId: string
  GiscusConfig.category: stringcategory: string
  GiscusConfig.categoryId: stringcategoryId: string
  GiscusConfig.mapping?: "number" | "pathname" | "url" | "title" | "og:title" | "specific" | undefinedmapping?: 'pathname' | 'url' | 'title' | 'og:title' | 'specific' | 'number'
  GiscusConfig.reactionsEnabled?: boolean | undefinedreactionsEnabled?: boolean
  GiscusConfig.inputPosition?: "top" | "bottom" | undefinedinputPosition?: 'top' | 'bottom'
  GiscusConfig.lang?: string | undefinedlang?: string
}
ts

এই ভ্যালুগুলো giscus.app থেকে নিন। giscus সেট করলে প্রতি পোস্টের নিচে স্বয়ংক্রিয়ভাবে একটি GiscusComments কম্পোনেন্ট রেন্ডার হয়। থিম স্যুইচ (লাইট/ডার্ক) অটোমেটিক প্রোপাগেট হয়।

এনভায়রনমেন্ট ভ্যারিয়েবল

উদাহরণ সাইট বিল্ড টাইমে দুটি env ভ্যারিয়েবল পড়ে:

ভ্যারিয়েবলপ্রভাব
BASE_PATHSvelteKit-এর paths.base। সাবপাথে ডিপ্লয় করার সময় সেট করুন।
SITE_URLblogTheme() এর base ওভাররাইড করে। OG/RSS অ্যাবসোলিউট URL তৈরিতে ব্যবহৃত হয়।

থিম নিজে এগুলো পড়ে না — এগুলো আপনার svelte.config.js এবং vite.config.ts দিয়ে ওয়্যার করা হয়।