@rxdrag/website-lib 0.0.121 → 0.0.122

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,6 +41,7 @@ if (!resolvedMeta || !resolvedTitle) {
41
41
  try {
42
42
  const pathname = Astro.url?.pathname || "";
43
43
  const slug = typeof Astro.params?.slug === "string" ? Astro.params.slug : undefined;
44
+ const id = typeof Astro.params?.id === "string" ? Astro.params.id : undefined;
44
45
 
45
46
  if (slug && pathname.startsWith("/posts/categories/")) {
46
47
  const category = await rx.getPostCategoryBySlug(slug);
@@ -52,6 +53,11 @@ if (!resolvedMeta || !resolvedTitle) {
52
53
  const page = await rx.getPageByType(PageType.ProductList);
53
54
  resolvedTitle = resolvedTitle ?? category?.name ?? "Products";
54
55
  resolvedMeta = resolvedMeta ?? page?.meta;
56
+ } else if (id && pathname.startsWith("/profiles/")) {
57
+ const user = await rx.getOneUser(id);
58
+ const page = await rx.getPageByType(PageType.Profile);
59
+ resolvedTitle = resolvedTitle ?? user?.name ?? "Profile";
60
+ resolvedMeta = resolvedMeta ?? page?.meta;
55
61
  } else if (slug && pathname.startsWith("/posts/")) {
56
62
  const post = await rx.getPostBySlug(slug, { width: 1200, height: 600 });
57
63
  resolvedTitle = resolvedTitle ?? post?.title;
@@ -88,6 +88,23 @@ interface BaseBlockProps extends HTMLAttributes<'div'> {
88
88
  }
89
89
  ```
90
90
 
91
+ **Layout(页面壳 / Document Wrapper)**
92
+ ```ts
93
+ import type { PageMeta } from "@rxdrag/rxcms-models";
94
+
95
+ interface LayoutProps {
96
+ lang?: string;
97
+ title?: string;
98
+ meta?: PageMeta;
99
+ class?: string;
100
+ className?: string;
101
+ }
102
+ ```
103
+ - 语义:页面级文档壳,负责 `<html>/<head>/<body>` 结构
104
+ - SEO:支持传入 `title` 与 `meta`(`PageMeta`)
105
+ - 插槽:支持 `<slot name="head" />` 向 head 注入自定义内容(预加载/脚本/样式等)
106
+ - 每个模板都要实现一个,但是接口保持不变
107
+
91
108
  ### 2. 布局原子
92
109
 
93
110
  **Grid(网格)**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rxdrag/website-lib",
3
- "version": "0.0.121",
3
+ "version": "0.0.122",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.ts",
@@ -26,19 +26,19 @@
26
26
  "eslint": "^7.32.0",
27
27
  "gsap": "^3.12.7",
28
28
  "typescript": "^5",
29
- "@rxdrag/eslint-config-custom": "0.2.12",
30
- "@rxdrag/slate-preview": "1.2.63",
31
29
  "@rxdrag/rxcms-models": "0.3.96",
30
+ "@rxdrag/slate-preview": "1.2.63",
31
+ "@rxdrag/tsconfig": "0.2.0",
32
32
  "@rxdrag/entify-hooks": "0.2.77",
33
- "@rxdrag/tsconfig": "0.2.0"
33
+ "@rxdrag/eslint-config-custom": "0.2.12"
34
34
  },
35
35
  "dependencies": {
36
36
  "aos": "3.0.0-beta.6",
37
37
  "clsx": "^2.1.0",
38
38
  "react": "^19.1.0",
39
39
  "react-dom": "^19.1.0",
40
- "@rxdrag/website-lib-core": "0.0.115",
41
- "@rxdrag/rxcms-models": "0.3.96"
40
+ "@rxdrag/rxcms-models": "0.3.96",
41
+ "@rxdrag/website-lib-core": "0.0.115"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "astro": "^4.0.0 || ^5.0.0"