公开页补齐自引用 Canonical 与按类型的结构化数据,图片补上说明文字。
后台设置和内容编辑改成可导航布局;部署用访客 origin 生成 Canonical,避免落到容器地址。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,11 +10,12 @@ export type FeedSort = "latest" | "new" | "recommended";
|
||||
|
||||
const TAB_KEYS: FeedSort[] = ["latest", "new", "recommended"];
|
||||
|
||||
// 在指定板块内切换排序时保留 ?board=
|
||||
function tabHref(key: FeedSort, boardId: number) {
|
||||
// 在指定板块内切换排序时保留 ?board=;默认排序不写入 URL
|
||||
function tabHref(key: FeedSort, boardId: number, allowComments: boolean) {
|
||||
const params = new URLSearchParams();
|
||||
if (boardId > 0) params.set("board", String(boardId));
|
||||
if (key !== "latest") params.set("sort", key);
|
||||
const def = allowComments ? "latest" : "new";
|
||||
if (key !== def) params.set("sort", key);
|
||||
const qs = params.toString();
|
||||
return qs ? `/?${qs}` : "/";
|
||||
}
|
||||
@@ -31,7 +32,7 @@ export default function FeedTabs({ current, boardId = 0 }: { current: FeedSort;
|
||||
e.preventDefault();
|
||||
const next = (i + (e.key === "ArrowRight" ? 1 : keys.length - 1)) % keys.length;
|
||||
tabRefs.current[next]?.focus();
|
||||
router.push(tabHref(keys[next], boardId));
|
||||
router.push(tabHref(keys[next], boardId, allowComments));
|
||||
};
|
||||
|
||||
return (
|
||||
@@ -44,7 +45,7 @@ export default function FeedTabs({ current, boardId = 0 }: { current: FeedSort;
|
||||
ref={(el) => {
|
||||
tabRefs.current[i] = el;
|
||||
}}
|
||||
href={tabHref(key, boardId)}
|
||||
href={tabHref(key, boardId, allowComments)}
|
||||
role="tab"
|
||||
className="j13-tab inline-flex items-center gap-1"
|
||||
aria-selected={current === key}
|
||||
|
||||
Reference in New Issue
Block a user