কাস্টমাইজেশন

কালার প্যালেট

themeColor / themeColorLight দিয়ে ডার্ক বা লাইট প্যালেট ওভাররাইড করুন:

blogTheme({
  : {
    : '#fb923c',
    : '#dc2626',
    : '#1a0a00',
    : '#2d1200',
  },
  : {
    : '#c2410c',
    : '#fef9f0',
    : '#fde8c8',
  },
})
ts

যে কী গুলো বাদ দিবেন সেগুলোর জন্য থিম ডিফল্ট থাকবে। রানটাইমে এগুলো [data-theme="dark"] .sp-blog-root এবং [data-theme="light"] .sp-blog-root এ scoped CSS কাস্টম প্রোপার্টি হিসেবে inject হয়।

CSS কাস্টম প্রোপার্টি

সব কম্পোনেন্ট এই ভ্যারিয়েবলগুলো পড়ে। নিজের স্টাইলে এগুলো ওভাররাইড করে সূক্ষ্ম নিয়ন্ত্রণ করুন:

ভ্যারিয়েবলকাজ
--sp-blog-bgপেজ ব্যাকগ্রাউন্ড
--sp-blog-surfaceকার্ড/সাইডবার ব্যাকগ্রাউন্ড
--sp-blog-borderসেপারেটর, কার্ড বর্ডার
--sp-blog-textপ্রাইমারি টেক্সট (টাইটেল)
--sp-blog-contentবডি টেক্সট
--sp-blog-mutedমেটা টেক্সট (তারিখ, কাউন্ট)
--sp-blog-primaryঅ্যাকসেন্ট (লিংক, ট্যাগ, বাটন)
--sp-blog-secondaryসেকেন্ডারি অ্যাকসেন্ট

কম্পোনেন্ট প্রতিস্থাপন

src/routes/ এর স্ক্যাফোল্ডেড ফাইলগুলো @sveltepress/theme-blog/components/* থেকে কম্পোনেন্ট ইমপোর্ট করে। কোনো একটি প্রতিস্থাপন করতে — যেমন পোস্ট কার্ড — src/routes/+page.svelte এডিট করে নিজের কম্পোনেন্ট দিন:

src/routes/+page.svelte
<script lang="ts">
  import  from '$lib/MyGrid.svelte'

  const {  } = ()
</script>

< ={.posts} />
svelte

থিম এই বিল্ডিং ব্লকগুলো re-export করে:

  • @sveltepress/theme-blog/PostLayout.svelte
  • @sveltepress/theme-blog/components/MasonryGrid.svelte
  • @sveltepress/theme-blog/components/Timeline.svelte
  • @sveltepress/theme-blog/components/Pagination.svelte
  • @sveltepress/theme-blog/components/Sidebar.svelte
  • @sveltepress/theme-blog/components/SearchModal.svelte
  • @sveltepress/theme-blog/components/ReadingProgress.svelte
  • @sveltepress/theme-blog/components/GiscusComments.svelte
  • @sveltepress/theme-blog/components/RelatedPosts.svelte
  • @sveltepress/theme-blog/components/TaxonomyHeader.svelte

সাবপাথে ডিপ্লয়

svelte.config.jsBASE_PATH এবং vite.config.tsSITE_URL পড়ুন:

svelte.config.js
export default {
  kit: {
    paths: {
      base: process.env.BASE_PATH ?? '',
      relative: false,
    },
  },
}
js
vite.config.ts
blogTheme({
  : .. ?? 'http://localhost:4173',
  // ...
})
ts

দুটি ভ্যারিয়েবল সেট করে বিল্ড করুন, যেমন user.github.io/repo/blog এ GitHub Pages প্রজেক্ট সাইটের জন্য:

BASE_PATH=/repo/blog SITE_URL=https://user.github.io/repo/blog \
  pnpm vite build && pnpm pagefind --site dist
bash

থিম কম্পোনেন্টের সব ইন্টারনাল লিংক SvelteKit-এর $app/paths base ব্যবহার করে, তাই সাবপাথের নিচে এগুলো সঠিকভাবে resolve হয়। OG ইমেজ URL এবং RSS আইটেম URL SITE_URL ব্যবহার করে, যাতে সোশ্যাল ক্রলার পূর্ণ-কোয়ালিফাইড URL পায়।

পেজ যোগ করা

src/routes/ এর নিচে স্ক্যাফোল্ডার reserved না করা সবকিছুই আপনার। src/routes/+layout.svelte অপরিবর্তিত রাখলেই কাস্টম পেজগুলো স্বয়ংক্রিয়ভাবে GlobalLayout এ wrap হবে — প্রতিটি রুট সাইডবার + মেইন গ্রিডের ভিতরে রেন্ডার হয়।

Last update at: 2026/04/17 03:36:00