220 lines
9.3 KiB
JavaScript
220 lines
9.3 KiB
JavaScript
import { randomUUID } from 'node:crypto'
|
||
import { readFileSync, writeFileSync } from 'node:fs'
|
||
import { dirname, join } from 'node:path'
|
||
import { fileURLToPath } from 'node:url'
|
||
|
||
const __dirname = dirname(fileURLToPath(import.meta.url))
|
||
const dbPath = join(__dirname, '..', 'data', 'content.json')
|
||
|
||
const testPosts = [
|
||
{
|
||
title: 'هویت بصری چیست و چرا برای برند شما حیاتی است؟',
|
||
slug: 'hoviat-basari',
|
||
excerpt:
|
||
'هویت بصری فراتر از لوگو است؛ در این مقاله با اجزای هویت بصری و نقش آن در اعتمادسازی و رشد برند آشنا میشوید.',
|
||
coverUrl: '/uploads/bg-brand-identity.png',
|
||
seoTitle: 'هویت بصری چیست؟ | راهنمای کامل برندینگ بصری — استودیو نورو',
|
||
seoDescription:
|
||
'هویت بصری شامل لوگو، رنگ، تایپوگرافی و لحن بصری برند است. بیاموزید چطور هویت بصری حرفهای بسازید.',
|
||
daysAgo: 5,
|
||
content: `## مقدمه
|
||
|
||
هویت بصری مجموعهای از عناصر گرافیکی است که برند شما را در ذهن مخاطب متمایز میکند. بسیاری از کسبوکارها هویت بصری را فقط به لوگو محدود میکنند، در حالی که موفقترین برندها از یک سیستم یکپارچه استفاده میکنند.
|
||
|
||
## هویت بصری شامل چه چیزهایی است؟
|
||
|
||
* لوگو و نشان تجاری
|
||
* پالت رنگ سازمانی
|
||
* تایپوگرافی و فونتهای برند
|
||
* الگوها، آیکونها و عناصر گرافیکی
|
||
* لحن بصری در عکسها و تصاویر
|
||
|
||
## مزایای هویت بصری حرفهای
|
||
|
||
* افزایش اعتماد مشتری
|
||
* تمایز از رقبا
|
||
* یکپارچگی در همه کانالها
|
||
* کاهش هزینه طراحی در بلندمدت
|
||
|
||
## نتیجهگیری
|
||
|
||
سرمایهگذاری روی هویت بصری، سرمایهگذاری روی آینده برند شماست. در استودیو نورو، هویت بصری را بر اساس استراتژی برند و مخاطب هدف طراحی میکنیم.`,
|
||
},
|
||
{
|
||
title: '۱۰ اصل طلایی طراحی UI/UX برای وبسایتهای حرفهای',
|
||
slug: 'ui-ux-principles',
|
||
excerpt:
|
||
'طراحی رابط و تجربه کاربری خوب فقط زیبایی نیست؛ با ۱۰ اصل کلیدی UI/UX وبسایت خود را کاربرپسند کنید.',
|
||
coverUrl: '/uploads/bg-ui.png',
|
||
seoTitle: 'اصول طراحی UI/UX | ۱۰ نکته برای وبسایت بهتر — استودیو نورو',
|
||
seoDescription:
|
||
'از سادگی و سلسلهمراتب بصری تا دسترسپذیری؛ ۱۰ اصل طراحی UI/UX که تبدیل بازدیدکننده به مشتری را آسانتر میکند.',
|
||
daysAgo: 12,
|
||
content: `## مقدمه
|
||
|
||
وبسایت شما اغلب اولین نقطه تماس مشتری با برند است. طراحی UI/UX ضعیف میتواند حتی با محصول عالی، فروش را کاهش دهد.
|
||
|
||
## ۱۰ اصل کلیدی
|
||
|
||
### 1. سادگی
|
||
|
||
هر عنصر باید هدف مشخصی داشته باشد. از شلوغی بپرهیزید.
|
||
|
||
### 2. سلسلهمراتب بصری
|
||
|
||
مهمترین پیام باید بیشترین توجه را بگیرد.
|
||
|
||
### 3. یکپارچگی
|
||
|
||
دکمهها، فونتها و فاصلهها در همه صفحات یکسان باشند.
|
||
|
||
### 4. خوانایی
|
||
|
||
تضاد کافی بین متن و پسزمینه ضروری است.
|
||
|
||
### 5. واکنشگرایی
|
||
|
||
سایت باید روی موبایل بینقص کار کند.
|
||
|
||
### 6. سرعت بارگذاری
|
||
|
||
هر ثانیه تأخیر، نرخ تبدیل را کاهش میدهد.
|
||
|
||
### 7. دسترسپذیری
|
||
|
||
طراحی برای همه کاربران، از جمله افراد دارای محدودیت بینایی.
|
||
|
||
### 8. بازخورد بصری
|
||
|
||
کاربر باید بداند کلیک یا ارسال فرم موفق بوده است.
|
||
|
||
### 9. مسیر کاربری روشن
|
||
|
||
کاربر در ۳ کلیک به هدف اصلی برسد.
|
||
|
||
### 10. تست با کاربر واقعی
|
||
|
||
قبل از لانچ، با مخاطب هدف تست کنید.
|
||
|
||
## نتیجهگیری
|
||
|
||
UI/UX خوب نامرئی است؛ کاربر فقط نتیجه را حس میکند: سادگی، سرعت و اعتماد.`,
|
||
},
|
||
{
|
||
title: 'راهنمای طراحی پست و قالب اینستاگرام برای برندها',
|
||
slug: 'social-media-design',
|
||
excerpt:
|
||
'سوشال مدیا ویترین برند شماست. نکات طراحی قالب پست، استوری و هایلایت برای اینستاگرام حرفهای.',
|
||
coverUrl: '/uploads/bg-social.png',
|
||
seoTitle: 'طراحی سوشال مدیا | قالب اینستاگرام حرفهای — استودیو نورو',
|
||
seoDescription:
|
||
'چطور قالب اینستاگرام یکپارچه بسازیم؟ راهنمای رنگ، تایپوگرافی و چیدمان پست برای برندهای ایرانی.',
|
||
daysAgo: 20,
|
||
content: `## مقدمه
|
||
|
||
اینستاگرام برای بسیاری از برندهای ایرانی، مهمترین کانال ارتباطی با مشتری است. طراحی نامنظم پستها اعتماد را کاهش میدهد.
|
||
|
||
## عناصر یک فید حرفهای
|
||
|
||
* پالت رنگ ثابت (۲ تا ۳ رنگ اصلی)
|
||
* فونت مشخص برای تیتر و متن
|
||
* قالبهای تکرارشونده برای انواع محتوا
|
||
* فضای سفید کافی
|
||
* تصاویر با کیفیت و یکدست
|
||
|
||
## انواع قالبهای پرکاربرد
|
||
|
||
### قالب معرفی محصول
|
||
|
||
تصویر بزرگ + نام محصول + CTA کوتاه
|
||
|
||
### قالب آموزشی
|
||
|
||
تیتر bold + ۳ تا ۵ bullet point
|
||
|
||
### قالب نقلقول
|
||
|
||
متن برجسته + لوگو یا آیکون برند
|
||
|
||
## اشتباهات رایج
|
||
|
||
* استفاده از فونتهای مختلف در هر پست
|
||
* رنگهای ناهماهنگ
|
||
* متن بیش از حد روی تصویر
|
||
* کیفیت پایین تصاویر
|
||
|
||
## نتیجهگیری
|
||
|
||
فید اینستاگرام یکپارچه یعنی برند حرفهایتر. استودیو نورو قالبهای اختصاصی سوشال مدیا طراحی میکند.`,
|
||
},
|
||
{
|
||
title: '۵ اشتباه رایج در طراحی لوگو که باید از آنها دوری کنید',
|
||
slug: 'logo-design-mistakes',
|
||
excerpt:
|
||
'از کپیبرداری تا جزئیات اضافه؛ ۵ اشتباه رایج در طراحی لوگو که میتواند برند شما را ضعیف کند.',
|
||
coverUrl: '/uploads/blog-logo-types-comparison.png',
|
||
seoTitle: 'اشتباهات طراحی لوگو | ۵ خطای رایج — استودیو نورو',
|
||
seoDescription:
|
||
'۵ اشتباه رایج در طراحی لوگو: پیچیدگی، ترند زودگذر، رنگ نامناسب و کپی از رقبا. راهکارهای عملی برای اجتناب.',
|
||
daysAgo: 8,
|
||
content: `## مقدمه
|
||
|
||
طراحی لوگو یک فرآیند استراتژیک است، نه فقط انتخاب یک شکل زیبا. متأسفانه بسیاری از کسبوکارها در همین مرحله اشتباهات پرهزینهای مرتکب میشوند.
|
||
|
||

|
||
|
||
## ۱. پیچیدگی بیش از حد
|
||
|
||
لوگوی شلوغ در سایز کوچک (فاویکون، استوری) ناخوانا میشود.
|
||
|
||
## ۲. پیروی از ترندهای زودگذر
|
||
|
||
ترند امسال، قدیمی فردا. لوگو باید ماندگار باشد.
|
||
|
||
## ۳. کپی از برندهای دیگر
|
||
|
||
لوگوی مشابه یعنی از دست دادن تمایز و ریسک حقوقی.
|
||
|
||
## ۴. نادیده گرفتن مخاطب هدف
|
||
|
||
لوگوی لوکس برای برند کودکانه یا برعکس، اشتباه است.
|
||
|
||
## ۵. طراحی بدون استراتژی
|
||
|
||
بدون تحقیق برند، لوگو فقط یک تصویر تزئینی میشود.
|
||
|
||
## راهکار
|
||
|
||
قبل از طراحی: مخاطب، رقبا، ارزشهای برند و کاربردهای آینده لوگو را مشخص کنید.
|
||
|
||
## نتیجهگیری
|
||
|
||
لوگوی موفق ساده، مرتبط و ماندگار است. برای انتخاب نوع مناسب لوگو، مقاله «انواع لوگو» ما را هم بخوانید.`,
|
||
},
|
||
]
|
||
|
||
const db = JSON.parse(readFileSync(dbPath, 'utf-8'))
|
||
|
||
for (const template of testPosts) {
|
||
db.blogPosts = db.blogPosts.filter((p) => p.slug !== template.slug)
|
||
|
||
const publishedAt = new Date()
|
||
publishedAt.setDate(publishedAt.getDate() - template.daysAgo)
|
||
|
||
db.blogPosts.push({
|
||
id: randomUUID(),
|
||
title: template.title,
|
||
slug: template.slug,
|
||
excerpt: template.excerpt,
|
||
content: template.content,
|
||
coverUrl: template.coverUrl,
|
||
published: true,
|
||
publishedAt: publishedAt.toISOString(),
|
||
seoTitle: template.seoTitle,
|
||
seoDescription: template.seoDescription,
|
||
})
|
||
}
|
||
|
||
writeFileSync(dbPath, JSON.stringify(db, null, 2), 'utf-8')
|
||
console.log(`Seeded ${testPosts.length} test posts. Total blog posts: ${db.blogPosts.length}`)
|