این بلاگ
این بلاگ یک بلاگ شخصی و نمونهکار دوزبانه است. محتوای انگلیسی و فارسی در فایلهای 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/ در سرویس هاستینگ منتشر میشود.