این بلاگ

این بلاگ یک بلاگ شخصی و نمونه‌کار دوزبانه است. محتوای انگلیسی و فارسی در فایل‌های Markdown قرار می‌گیرد و Node 24 و TypeScript سایت استاتیک قابل انتشار را تولید می‌کنند.

استاتیک، از روی انتخاب

مدل انتشار سایت عمداً کوچک مانده است: نه دیتابیس دارد، نه برنامه‌ی سرور، نه CMS و نه فریم‌ورک فرانت‌اند. مخزن کد منبع اصلی است. فرایند build محتوا و قالب‌های HTML قابل ویرایش را به پوشه‌ی dist/ تبدیل می‌کند و هر میزبان استاتیک می‌تواند آن را ارائه کند.

محتوا و جفت‌شدن زبان‌ها

نوشته‌ها و پروژه‌ها در پوشه‌های جداگانه برای هر زبان قرار دارند. فایل‌های همتای انگلیسی و فارسی مقدار مشترک translationOf دارند تا زبان‌گزین، در صورت وجود ترجمه، خواننده را در صفحه‌ی معادل نگه دارد.

مولد سایت صفحه‌های اصلی زبان‌ها، فهرست و صفحه‌ی جزئیات نوشته‌ها و پروژه‌ها، صفحه‌های دسته‌بندی و برچسب، صفحه‌های جداگانه، ریدایرکت‌ها، صفحه‌های ۴۰۴ محلی‌سازی‌شده، robots.txt و sitemap را تولید می‌کند.

برای نوشتن بی‌دردسر

Markdown از GitHub Flavored Markdown پشتیبانی می‌کند؛ از جمله جدول‌ها، task listها، لینک‌ها و بلوک‌های کد. بلوک‌های Mermaid هنگام build به SVG استاتیک تبدیل می‌شوند، بنابراین صفحه‌های منتشرشده runtime مرورگر Mermaid را همراه خود ندارند.

پوسته‌ی مشترک از قالب‌های HTML قابل ویرایش و جای‌گذاری ساده استفاده می‌کند. Bootstrap به‌صورت محلی ارائه می‌شود، صفحه‌های فارسی با Vazir و راست‌به‌چپ ساخته می‌شوند و قابلیت‌های بومی مرورگر برای تعامل‌های ساده‌ای مثل منوی دسته‌بندی و انتخاب تم کافی هستند.

بررسی و انتشار

پروژه قالب‌بندی، lint، تست و build نهایی را هم به‌صورت محلی و هم در GitHub Actions اجرا می‌کند. با push کردن تگی که با v شروع می‌شود، خروجی dist/ در سرویس هاستینگ منتشر می‌شود.