feat: 可配置站点 URL 风格
- 新增 urlStyle 工具与测试:postPath/userPath/sitePagePath 统一生成链接 - 管理端新增 UrlStylePanel 设置面板,settings 服务与 handler 适配 - 全站路由链接与 JSON-LD/sitemap 切换为统一 URL 生成 - middleware 与相关组件适配
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
||||
import { formatDateTime, formatRelative } from "@/lib/format";
|
||||
import { toast } from "@/lib/toast";
|
||||
import ConfirmDialog from "@/components/ConfirmDialog";
|
||||
import { useUrlStyle } from "@/components/SiteBrandProvider";
|
||||
import {
|
||||
AdminEmpty,
|
||||
AdminPageHeader,
|
||||
@@ -62,6 +63,7 @@ export default function AnnouncementAdmin({
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const searchParams = useSearchParams();
|
||||
const urlStyle = useUrlStyle();
|
||||
const statusFilter = readStatus(searchParams.get("status"));
|
||||
const [list, setList] = useState(initial);
|
||||
const [loadError, setLoadError] = useState(initError);
|
||||
@@ -215,7 +217,7 @@ export default function AnnouncementAdmin({
|
||||
<span className={`j13-anno-tag is-${a.tag_color}`} title={a.tag}>
|
||||
{a.tag}
|
||||
</span>
|
||||
{a.published ? <code>{announcementPublicPath(a.id)}</code> : null}
|
||||
{a.published ? <code>{announcementPublicPath(a.id, urlStyle)}</code> : null}
|
||||
</p>
|
||||
{summary ? <p className="admin-doc-excerpt" title={summary}>{summary}</p> : null}
|
||||
</td>
|
||||
@@ -241,7 +243,7 @@ export default function AnnouncementAdmin({
|
||||
</Link>
|
||||
{a.published ? (
|
||||
<a
|
||||
href={announcementPublicPath(a.id)}
|
||||
href={announcementPublicPath(a.id, urlStyle)}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="admin-doc-textbtn"
|
||||
|
||||
Reference in New Issue
Block a user