feat: add script to generate default blog cover image
- Introduced a new script `make-blog-cover.mjs` to create a default cover image for blog posts. - The image is generated in PNG format with dimensions 1200x630, suitable for Open Graph. - Utilizes the site's branding colors and logo from `public/nobat724.svg`. - Includes custom font styling using the Vazirmatn font. - The generated image is saved to `public/assets/images/blog-default-cover.png`.
This commit is contained in:
@@ -70,6 +70,20 @@ export const normalizeBlog = (blog) => {
|
||||
|
||||
// تبدیل مسیر نسبی تصویر (/uploads/...) به URL کامل backend.
|
||||
// مسیرهای absolute (http...) و asset های محلی (/assets، /default) دستنخورده میمانند.
|
||||
// تصویر پیشفرض همهٔ مقالهها — لیست، کارت، جزئیات، OG و توییتر همگی همین را
|
||||
// میگیرند تا هیچ مقالهای بدون تصویر (یا با آواتار کاربر) نمایش داده نشود.
|
||||
export const BLOG_FALLBACK_IMG = "/assets/images/blog-default-cover.png";
|
||||
|
||||
/**
|
||||
* کاور یک مقاله با ترتیب تقدم og_image → image_url → images[0].
|
||||
* جدا از imageUrl() است چون پیشفرض آن آواتار کاربر است و برای بلاگ غلط.
|
||||
*/
|
||||
export const blogCover = (blog) =>
|
||||
imageUrl(
|
||||
blog?.og_image || blog?.image_url || blog?.images?.[0]?.url,
|
||||
BLOG_FALLBACK_IMG
|
||||
);
|
||||
|
||||
export const imageUrl = (url, fallback = "/assets/images/user.png") => {
|
||||
if (!url) return fallback;
|
||||
if (/^https?:\/\//.test(url)) return url;
|
||||
|
||||
Reference in New Issue
Block a user