প্রকল্প সম্পর্কে
nfuwari হলো Lucius7's Blog (blog.lucius7.cn)-এর সোর্স রিপোজিটরি, যা Astro-এর Fuwari থিমের উপর ভিত্তি করে তৈরি এবং GitHub Pages-এ ডেপ্লয় করা একটি ব্যক্তিগত সাইট।
চীনা এবং ইংরেজি কন্টেন্ট আলাদা রাখা হয়েছে। পোস্টগুলো src/content/posts/zh/ এবং src/content/posts/en/-এর অধীনে থাকে, যার প্রতিটির নিজস্ব তালিকা, ক্যাটাগরি এবং ট্যাগ কাউন্ট, পোস্ট নেভিগেশন, RSS ফিড এবং সার্চ ইনডেক্স রয়েছে এবং রুট URL-টি /zh/-এ রিডাইরেক্ট করে। ইন্টারফেস স্ট্রিংগুলো src/i18n/-এ থাকে, About পেজগুলো ভাষা অনুযায়ী src/content/spec/-এর অধীনে থাকে এবং অনুবাদগুলো অভিন্ন রিলেটিভ পাথ বা translationKey দ্বারা লিঙ্ক করা যায়, যেখানে ল্যাঙ্গুয়েজ সুইচারটি টার্গেট ভাষার হোম পেজে ফিরে যায়।
লেখালেখি Markdown-চালিত। একটি জেনারেটর স্ক্রিপ্ট (pnpm new-post zh/name বা pnpm new-post en/name) frontmatter ডিফল্টসহ একটি ড্রাফট তৈরি করে যার মধ্যে lang: zh_CN বা lang: en অন্তর্ভুক্ত থাকে; পোস্টগুলো ডিফল্টভাবে draft: true থাকে এবং শুধুমাত্র লোকাল ডেভেলপমেন্টে দৃশ্যমান হয়, কারণ প্রোডাকশন বিল্ডে ড্রাফটগুলো বাদ দেওয়া হয়। Frontmatter ফিল্ড এবং ভ্যালিডেশন src/content/config.ts-এ সংজ্ঞায়িত। remark-math এবং rehype-katex-এর মাধ্যমে গণিত সমর্থিত, যার স্টাইল এবং ফন্ট সাইট দ্বারা সরবরাহ করা হয়।
পাঠকরা লাইট এবং ডার্ক থিম, ক্যাটাগরি, ট্যাগ, Pagefind সার্চ, RSS এবং সাইটম্যাপ আউটপুট পান। সাইটের পরিচয়, থিম হিউ, প্রোফাইল, নেভিগেশন, সোশ্যাল লিঙ্ক এবং পোস্ট লাইসেন্স src/config.ts-এ কনফিগার করা থাকে, অন্যদিকে ব্যানার ইমেজ, অবতার (একটি Tencent QQ অবতার এন্ডপয়েন্ট), সাইট আইকন এবং ফুটার রেজিস্ট্রেশন লিঙ্ক সেখানে অথবা public/ এবং src/assets/-এর মাধ্যমে কনফিগার করা যায়।
দুটি ঐচ্ছিক ড্যাশবোর্ড ফিচার লেখকের OJFlare পাবলিক API থেকে ডেটা পড়ে: একটি সাইডবার উইজেট যা সর্বশেষ তিনটি গৃহীত Codeforces/AtCoder সাবমিশন দেখায়, এবং About পেজে একটি AC কন্ট্রিবিউশন ক্যালেন্ডার যা problemId দ্বারা গৃহীত ইতিহাস ডিডুপ্লিকেট করে, Asia/Taipei (UTC+8) তারিখ ব্যবহার করে এবং বছর ও প্ল্যাটফর্ম ফিল্টার অফার করে। উভয়ই একটি পোলিং লুপ শেয়ার করে, পেজটি দৃশ্যমান থাকা অবস্থায় প্রতি পাঁচ মিনিটে রিফ্রেশ হয়, রিফ্রেশ ব্যর্থ হলে আগে লোড করা রেকর্ডগুলো ধরে রাখে এবং কনফিগারেশনে নিষ্ক্রিয় করা যেতে পারে; ব্লগের বিল্ড API-এর অ্যাক্সেসযোগ্যতার ওপর নির্ভর করে না।
টুলিং-এর মধ্যে রয়েছে ড্রাফট-অন্তর্ভুক্ত প্রিভিউয়ের জন্য pnpm dev, pnpm lint, Astro/Svelte/TypeScript চেকিংয়ের জন্য pnpm check, pnpm build (যা Pagefind ইনডেক্স তৈরি করে) এবং বিল্ট সাইটের জন্য pnpm preview। টেস্ট স্ক্রিপ্টগুলো লাইভ সার্ভিসের সাথে যোগাযোগ না করেই ল্যাঙ্গুয়েজ রাউটিং, MacFlare অ্যাক্টিভিটি উইজেট এবং OJFlare পার্সিং পরীক্ষা করে। GitHub Actions main-এর আপডেটে স্টাইল চেক, টাইপ চেক, বিল্ড এবং ডেপ্লয়মেন্ট চালায়, যা GitHub Pages-এ পাবলিশ হয়, এবং একটি কাস্টম ডোমেইন Alibaba Cloud ESA-এর মাধ্যমে পরিবেশন করা হয় এবং CNAME ফাইলে রেকর্ড করা থাকে। Dependabot প্রতি সপ্তাহে npm এবং GitHub Actions চেক করে। লেখালেখি, দ্বিভাষিক কন্টেন্ট, LaTeX, ডেপ্লয়মেন্ট এবং ডিপেন্ডেন্সি রিভিউ-এর গাইডগুলো docs/-এর অধীনে থাকে এবং প্রজেক্ট কোডটি MIT লাইসেন্স এবং আপস্ট্রিম অ্যাট্রিবিউশন বজায় রাখে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.