اصلاحات بازبینی: تطبیق backfill با متن فارسی، رفع باگ متای /blog (ستون image ناموجود)، پاکسازی og:locale و برند در پوسته سئو، محدودکردن Traefik به پروژه خود، اصلاح مسیریابی Routes و عنوان برند در صفحات جزئیات
This commit is contained in:
+10
-16
@@ -37,20 +37,13 @@ const PUBLIC_ROUTES: { path: string; element: React.ReactElement }[] = [
|
||||
{ path: '/contact', element: <ContactPage /> },
|
||||
];
|
||||
|
||||
function LocaleRoutes({ prefix }: { prefix: '' | '/en' }) {
|
||||
return (
|
||||
<>
|
||||
{PUBLIC_ROUTES.map(({ path, element }) => (
|
||||
<Route
|
||||
key={`${prefix}${path}`}
|
||||
path={path === '/' ? (prefix || '/') : `${prefix}${path}`}
|
||||
element={element}
|
||||
/>
|
||||
))}
|
||||
{prefix === '' && <Route path="*" element={<Home />} />}
|
||||
</>
|
||||
);
|
||||
}
|
||||
// فرزند مستقیم <Routes> باید <Route> باشد — آرایههای Route بهجای کامپوننت واسط
|
||||
const FA_ROUTES = PUBLIC_ROUTES.map(({ path, element }) => (
|
||||
<Route key={path} path={path} element={element} />
|
||||
));
|
||||
const EN_ROUTES = PUBLIC_ROUTES.map(({ path, element }) => (
|
||||
<Route key={`en-${path}`} path={path === '/' ? '/en' : `/en${path}`} element={element} />
|
||||
));
|
||||
|
||||
function ScrollToTop() {
|
||||
const { pathname } = useLocation();
|
||||
@@ -75,8 +68,9 @@ function AnimatedRoutes() {
|
||||
<Route path="/admin/login" element={<AdminLoginPage />} />
|
||||
<Route path="/admin/write" element={<ArticleWritePage />} />
|
||||
<Route path="/admin/write/:id" element={<ArticleWritePage />} />
|
||||
<LocaleRoutes prefix="" />
|
||||
<LocaleRoutes prefix="/en" />
|
||||
{FA_ROUTES}
|
||||
<Route path="*" element={<Home />} />
|
||||
{EN_ROUTES}
|
||||
</Routes>
|
||||
</motion.main>
|
||||
</AnimatePresence>);
|
||||
|
||||
@@ -40,7 +40,7 @@ export function ArticleDetail() {
|
||||
useEffect(() => {
|
||||
if (!article) return;
|
||||
applySeo({
|
||||
title: `${article.title} | ${brand}`,
|
||||
title: `${article.title} | ${brand.name}`,
|
||||
description: article.excerpt,
|
||||
path: href(`/blog/${article.slug}`),
|
||||
image: article.image,
|
||||
|
||||
@@ -23,7 +23,7 @@ export function ProjectDetail() {
|
||||
useEffect(() => {
|
||||
if (!project) return;
|
||||
applySeo({
|
||||
title: `${project.title} | ${brand}`,
|
||||
title: `${project.title} | ${brand.name}`,
|
||||
description: project.summary,
|
||||
path: href(`/projects/${project.slug}`),
|
||||
image: project.image,
|
||||
|
||||
Reference in New Issue
Block a user