updateAttributes({ alt: event.target.value })}
+ {...altField}
placeholder="نام تصویر / متن جایگزین (Alt)…"
aria-label="متن جایگزین تصویر"
className={INLINE_FIELD_CLASS}
/>
updateAttributes({ title: event.target.value })}
+ {...titleField}
placeholder="عنوان تصویر (Title)…"
aria-label="عنوان تصویر"
className={INLINE_FIELD_CLASS}
@@ -143,18 +174,15 @@ export function ImageNodeView({ node, updateAttributes, deleteNode, selected }:
{showCaption ? (
updateAttributes({ caption: event.target.value })}
+ {...captionField}
placeholder="توضیح تصویر (کپشن)…"
aria-label="کپشن تصویر"
className={INLINE_FIELD_CLASS}
/>
updateAttributes({ caption_href: event.target.value })}
+ {...captionHrefField}
placeholder="لینک کپشن (اختیاری) — مثل منبع عکس…"
aria-label="لینک کپشن تصویر"
dir="ltr"
diff --git a/frontend/src/pages/Blog.tsx b/frontend/src/pages/Blog.tsx
index 623fdb0..fd27eea 100644
--- a/frontend/src/pages/Blog.tsx
+++ b/frontend/src/pages/Blog.tsx
@@ -9,7 +9,7 @@ import { useSite } from '../api'
import { useLang } from '../i18n/lang'
import { EditableItem } from '../admin/Editable'
import { useAdmin } from '../admin/AdminContext'
-import { formatJalali } from '../utils/date'
+import { formatJalali, formatEnDate } from '../utils/date'
import { toPersianDigits } from '../utils/digits'
import { PlusIcon } from 'lucide-react'
@@ -96,9 +96,7 @@ export function Blog() {
{featured.excerpt}
- {lang === 'en'
- ? new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'long', year: 'numeric' }).format(new Date(featured.date))
- : formatJalali(featured.date)}
+ {lang === 'en' ? formatEnDate(featured.date) : formatJalali(featured.date)}
{lang === 'en' ? featured.read : toPersianDigits(featured.read)}
diff --git a/frontend/src/utils/date.ts b/frontend/src/utils/date.ts
index 94ca961..114d7c5 100644
--- a/frontend/src/utils/date.ts
+++ b/frontend/src/utils/date.ts
@@ -97,3 +97,11 @@ export function toPublishedISO(value?: string | null): string | null {
})
return jalali.isValid ? toISODate(jalali) : null
}
+
+/** تاریخ میلادی انگلیسی برای سایت /en — با محافظ مقادیر نامعتبر/خالی */
+export function formatEnDate(value?: string | null): string {
+ if (!value) return ''
+ const date = new Date(value)
+ if (Number.isNaN(date.getTime())) return ''
+ return new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'long', year: 'numeric' }).format(date)
+}