@lytjs/metadata 6.7.0 → 6.9.0

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.
package/dist/index.cjs CHANGED
@@ -2,15 +2,11 @@
2
2
 
3
3
  var commonString = require('@lytjs/common-string');
4
4
 
5
- var __defProp = Object.defineProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
8
-
9
5
  // src/builder.ts
10
6
  var MetadataBuilder = class {
11
7
  constructor() {
12
8
  /** 元数据对象 */
13
- __publicField(this, "metadata", {});
9
+ this.metadata = {};
14
10
  }
15
11
  /**
16
12
  * 设置标题
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/builder.ts","../src/renderer.ts"],"names":["escapeHTML"],"mappings":";;;;;;;;;AAQO,IAAM,kBAAN,MAAsB;AAAA,EAAtB,WAAA,GAAA;AAEL;AAAA,IAAA,aAAA,CAAA,IAAA,EAAQ,YAAqB,EAAC,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9B,MAAM,KAAA,EAAqB;AACzB,IAAA,IAAA,CAAK,SAAS,KAAA,GAAQ,KAAA;AACtB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,YAAY,WAAA,EAA2B;AACrC,IAAA,IAAA,CAAK,SAAS,WAAA,GAAc,WAAA;AAC5B,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,SAAS,QAAA,EAA0B;AACjC,IAAA,IAAA,CAAK,SAAS,QAAA,GAAW,QAAA;AACzB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,UAAU,EAAA,EAA6B;AACrC,IAAA,IAAA,CAAK,QAAA,CAAS,YAAY,EAAE,GAAG,KAAK,QAAA,CAAS,SAAA,EAAW,GAAG,EAAA,EAAG;AAC9D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAQ,OAAA,EAAgC;AACtC,IAAA,IAAA,CAAK,QAAA,CAAS,UAAU,EAAE,GAAG,KAAK,QAAA,CAAS,OAAA,EAAS,GAAG,OAAA,EAAQ;AAC/D,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CAAI,KAAa,KAAA,EAAsB;AACrC,IAAA,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,GAAI,KAAA;AACrB,IAAA,OAAO,IAAA;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAA,GAAkB;AAChB,IAAA,OAAO,EAAE,GAAG,IAAA,CAAK,QAAA,EAAS;AAAA,EAC5B;AACF;AAOO,SAAS,qBAAA,GAAyC;AACvD,EAAA,OAAO,IAAI,eAAA,EAAgB;AAC7B;ACpFO,SAAS,eAAe,QAAA,EAA4B;AACzD,EAAA,MAAM,OAAiB,EAAC;AAExB,EAAA,IAAI,SAAS,KAAA,EAAO;AAClB,IAAA,IAAA,CAAK,KAAK,CAAA,OAAA,EAAUA,uBAAA,CAAW,QAAA,CAAS,KAAK,CAAC,CAAA,QAAA,CAAU,CAAA;AAAA,EAC1D;AAEA,EAAA,IAAI,SAAS,WAAA,EAAa;AACxB,IAAA,IAAA,CAAK,KAAK,CAAA,kCAAA,EAAqCA,uBAAA,CAAW,QAAA,CAAS,WAAW,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,EACrF;AAEA,EAAA,IAAI,QAAA,CAAS,QAAA,IAAY,QAAA,CAAS,QAAA,CAAS,SAAS,CAAA,EAAG;AACrD,IAAA,IAAA,CAAK,IAAA,CAAK,kCAAkCA,uBAAA,CAAW,QAAA,CAAS,SAAS,IAAA,CAAK,IAAI,CAAC,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,EAC1F;AAEA,EAAA,IAAI,SAAS,SAAA,EAAW;AACtB,IAAA,KAAA,MAAW,CAAC,KAAK,KAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,QAAA,CAAS,SAAS,CAAA,EAAG;AAC7D,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,IAAA,CAAK,IAAA,CAAK,sBAAsB,GAAG,CAAA,WAAA,EAAcA,wBAAW,MAAA,CAAO,KAAK,CAAC,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,MAChF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,SAAS,OAAA,EAAS;AACpB,IAAA,KAAA,MAAW,CAAC,KAAK,KAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAA,EAAG;AAC3D,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,IAAA,CAAK,IAAA,CAAK,uBAAuB,GAAG,CAAA,WAAA,EAAcA,wBAAW,MAAA,CAAO,KAAK,CAAC,CAAC,CAAA,EAAA,CAAI,CAAA;AAAA,MACjF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,IAAA,CAAK,KAAK,IAAI,CAAA;AACvB","file":"index.cjs","sourcesContent":["/**\n * 元数据构建器\n */\nimport type { Metadata, OpenGraphMetadata, TwitterMetadata } from '@lytjs/shared-types';\n\n/**\n * 元数据构建器类\n */\nexport class MetadataBuilder {\n /** 元数据对象 */\n private metadata: Metadata = {};\n\n /**\n * 设置标题\n *\n * @param title - 标题\n * @returns 构建器实例\n */\n title(title: string): this {\n this.metadata.title = title;\n return this;\n }\n\n /**\n * 设置描述\n *\n * @param description - 描述\n * @returns 构建器实例\n */\n description(description: string): this {\n this.metadata.description = description;\n return this;\n }\n\n /**\n * 设置关键词\n *\n * @param keywords - 关键词数组\n * @returns 构建器实例\n */\n keywords(keywords: string[]): this {\n this.metadata.keywords = keywords;\n return this;\n }\n\n /**\n * 设置 Open Graph 元数据\n *\n * @param og - Open Graph 元数据\n * @returns 构建器实例\n */\n openGraph(og: OpenGraphMetadata): this {\n this.metadata.openGraph = { ...this.metadata.openGraph, ...og };\n return this;\n }\n\n /**\n * 设置 Twitter 元数据\n *\n * @param twitter - Twitter 元数据\n * @returns 构建器实例\n */\n twitter(twitter: TwitterMetadata): this {\n this.metadata.twitter = { ...this.metadata.twitter, ...twitter };\n return this;\n }\n\n /**\n * 设置自定义属性\n *\n * @param key - 键\n * @param value - 值\n * @returns 构建器实例\n */\n set(key: string, value: unknown): this {\n this.metadata[key] = value;\n return this;\n }\n\n /**\n * 构建元数据\n *\n * @returns 元数据对象\n */\n build(): Metadata {\n return { ...this.metadata };\n }\n}\n\n/**\n * 创建元数据构建器\n *\n * @returns 构建器实例\n */\nexport function createMetadataBuilder(): MetadataBuilder {\n return new MetadataBuilder();\n}\n","/**\n * 元数据渲染器\n */\nimport type { Metadata } from '@lytjs/shared-types';\nimport { escapeHTML } from '@lytjs/common-string';\n\n/**\n * 渲染元数据为 HTML 标签\n *\n * @param metadata - 元数据对象\n * @returns HTML 标签字符串\n */\nexport function renderMetadata(metadata: Metadata): string {\n const tags: string[] = [];\n\n if (metadata.title) {\n tags.push(`<title>${escapeHTML(metadata.title)}</title>`);\n }\n\n if (metadata.description) {\n tags.push(`<meta name=\"description\" content=\"${escapeHTML(metadata.description)}\">`);\n }\n\n if (metadata.keywords && metadata.keywords.length > 0) {\n tags.push(`<meta name=\"keywords\" content=\"${escapeHTML(metadata.keywords.join(', '))}\">`);\n }\n\n if (metadata.openGraph) {\n for (const [key, value] of Object.entries(metadata.openGraph)) {\n if (value) {\n tags.push(`<meta property=\"og:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n if (metadata.twitter) {\n for (const [key, value] of Object.entries(metadata.twitter)) {\n if (value) {\n tags.push(`<meta name=\"twitter:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n return tags.join('\\n');\n}\n"]}
1
+ {"version":3,"sources":["../src/builder.ts","../src/renderer.ts"],"names":["escapeHTML"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * 元数据构建器\n */\nimport type { Metadata, OpenGraphMetadata, TwitterMetadata } from '@lytjs/shared-types';\n\n/**\n * 元数据构建器类\n */\nexport class MetadataBuilder {\n /** 元数据对象 */\n private metadata: Metadata = {};\n\n /**\n * 设置标题\n *\n * @param title - 标题\n * @returns 构建器实例\n */\n title(title: string): this {\n this.metadata.title = title;\n return this;\n }\n\n /**\n * 设置描述\n *\n * @param description - 描述\n * @returns 构建器实例\n */\n description(description: string): this {\n this.metadata.description = description;\n return this;\n }\n\n /**\n * 设置关键词\n *\n * @param keywords - 关键词数组\n * @returns 构建器实例\n */\n keywords(keywords: string[]): this {\n this.metadata.keywords = keywords;\n return this;\n }\n\n /**\n * 设置 Open Graph 元数据\n *\n * @param og - Open Graph 元数据\n * @returns 构建器实例\n */\n openGraph(og: OpenGraphMetadata): this {\n this.metadata.openGraph = { ...this.metadata.openGraph, ...og };\n return this;\n }\n\n /**\n * 设置 Twitter 元数据\n *\n * @param twitter - Twitter 元数据\n * @returns 构建器实例\n */\n twitter(twitter: TwitterMetadata): this {\n this.metadata.twitter = { ...this.metadata.twitter, ...twitter };\n return this;\n }\n\n /**\n * 设置自定义属性\n *\n * @param key - 键\n * @param value - 值\n * @returns 构建器实例\n */\n set(key: string, value: unknown): this {\n this.metadata[key] = value;\n return this;\n }\n\n /**\n * 构建元数据\n *\n * @returns 元数据对象\n */\n build(): Metadata {\n return { ...this.metadata };\n }\n}\n\n/**\n * 创建元数据构建器\n *\n * @returns 构建器实例\n */\nexport function createMetadataBuilder(): MetadataBuilder {\n return new MetadataBuilder();\n}\n","/**\n * 元数据渲染器\n */\nimport type { Metadata } from '@lytjs/shared-types';\nimport { escapeHTML } from '@lytjs/common-string';\n\n/**\n * 渲染元数据为 HTML 标签\n *\n * @param metadata - 元数据对象\n * @returns HTML 标签字符串\n */\nexport function renderMetadata(metadata: Metadata): string {\n const tags: string[] = [];\n\n if (metadata.title) {\n tags.push(`<title>${escapeHTML(metadata.title)}</title>`);\n }\n\n if (metadata.description) {\n tags.push(`<meta name=\"description\" content=\"${escapeHTML(metadata.description)}\">`);\n }\n\n if (metadata.keywords && metadata.keywords.length > 0) {\n tags.push(`<meta name=\"keywords\" content=\"${escapeHTML(metadata.keywords.join(', '))}\">`);\n }\n\n if (metadata.openGraph) {\n for (const [key, value] of Object.entries(metadata.openGraph)) {\n if (value) {\n tags.push(`<meta property=\"og:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n if (metadata.twitter) {\n for (const [key, value] of Object.entries(metadata.twitter)) {\n if (value) {\n tags.push(`<meta name=\"twitter:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n return tags.join('\\n');\n}\n"]}
@@ -0,0 +1,83 @@
1
+ import { OpenGraphMetadata, TwitterMetadata, Metadata } from '@lytjs/shared-types';
2
+ export { Metadata, OpenGraphMetadata, TwitterMetadata } from '@lytjs/shared-types';
3
+
4
+ /**
5
+ * 元数据构建器
6
+ */
7
+
8
+ /**
9
+ * 元数据构建器类
10
+ */
11
+ declare class MetadataBuilder {
12
+ /** 元数据对象 */
13
+ private metadata;
14
+ /**
15
+ * 设置标题
16
+ *
17
+ * @param title - 标题
18
+ * @returns 构建器实例
19
+ */
20
+ title(title: string): this;
21
+ /**
22
+ * 设置描述
23
+ *
24
+ * @param description - 描述
25
+ * @returns 构建器实例
26
+ */
27
+ description(description: string): this;
28
+ /**
29
+ * 设置关键词
30
+ *
31
+ * @param keywords - 关键词数组
32
+ * @returns 构建器实例
33
+ */
34
+ keywords(keywords: string[]): this;
35
+ /**
36
+ * 设置 Open Graph 元数据
37
+ *
38
+ * @param og - Open Graph 元数据
39
+ * @returns 构建器实例
40
+ */
41
+ openGraph(og: OpenGraphMetadata): this;
42
+ /**
43
+ * 设置 Twitter 元数据
44
+ *
45
+ * @param twitter - Twitter 元数据
46
+ * @returns 构建器实例
47
+ */
48
+ twitter(twitter: TwitterMetadata): this;
49
+ /**
50
+ * 设置自定义属性
51
+ *
52
+ * @param key - 键
53
+ * @param value - 值
54
+ * @returns 构建器实例
55
+ */
56
+ set(key: string, value: unknown): this;
57
+ /**
58
+ * 构建元数据
59
+ *
60
+ * @returns 元数据对象
61
+ */
62
+ build(): Metadata;
63
+ }
64
+ /**
65
+ * 创建元数据构建器
66
+ *
67
+ * @returns 构建器实例
68
+ */
69
+ declare function createMetadataBuilder(): MetadataBuilder;
70
+
71
+ /**
72
+ * 元数据渲染器
73
+ */
74
+
75
+ /**
76
+ * 渲染元数据为 HTML 标签
77
+ *
78
+ * @param metadata - 元数据对象
79
+ * @returns HTML 标签字符串
80
+ */
81
+ declare function renderMetadata(metadata: Metadata): string;
82
+
83
+ export { MetadataBuilder, createMetadataBuilder, renderMetadata };
@@ -0,0 +1,83 @@
1
+ import { OpenGraphMetadata, TwitterMetadata, Metadata } from '@lytjs/shared-types';
2
+ export { Metadata, OpenGraphMetadata, TwitterMetadata } from '@lytjs/shared-types';
3
+
4
+ /**
5
+ * 元数据构建器
6
+ */
7
+
8
+ /**
9
+ * 元数据构建器类
10
+ */
11
+ declare class MetadataBuilder {
12
+ /** 元数据对象 */
13
+ private metadata;
14
+ /**
15
+ * 设置标题
16
+ *
17
+ * @param title - 标题
18
+ * @returns 构建器实例
19
+ */
20
+ title(title: string): this;
21
+ /**
22
+ * 设置描述
23
+ *
24
+ * @param description - 描述
25
+ * @returns 构建器实例
26
+ */
27
+ description(description: string): this;
28
+ /**
29
+ * 设置关键词
30
+ *
31
+ * @param keywords - 关键词数组
32
+ * @returns 构建器实例
33
+ */
34
+ keywords(keywords: string[]): this;
35
+ /**
36
+ * 设置 Open Graph 元数据
37
+ *
38
+ * @param og - Open Graph 元数据
39
+ * @returns 构建器实例
40
+ */
41
+ openGraph(og: OpenGraphMetadata): this;
42
+ /**
43
+ * 设置 Twitter 元数据
44
+ *
45
+ * @param twitter - Twitter 元数据
46
+ * @returns 构建器实例
47
+ */
48
+ twitter(twitter: TwitterMetadata): this;
49
+ /**
50
+ * 设置自定义属性
51
+ *
52
+ * @param key - 键
53
+ * @param value - 值
54
+ * @returns 构建器实例
55
+ */
56
+ set(key: string, value: unknown): this;
57
+ /**
58
+ * 构建元数据
59
+ *
60
+ * @returns 元数据对象
61
+ */
62
+ build(): Metadata;
63
+ }
64
+ /**
65
+ * 创建元数据构建器
66
+ *
67
+ * @returns 构建器实例
68
+ */
69
+ declare function createMetadataBuilder(): MetadataBuilder;
70
+
71
+ /**
72
+ * 元数据渲染器
73
+ */
74
+
75
+ /**
76
+ * 渲染元数据为 HTML 标签
77
+ *
78
+ * @param metadata - 元数据对象
79
+ * @returns HTML 标签字符串
80
+ */
81
+ declare function renderMetadata(metadata: Metadata): string;
82
+
83
+ export { MetadataBuilder, createMetadataBuilder, renderMetadata };
package/dist/index.mjs CHANGED
@@ -1,14 +1,10 @@
1
1
  import { escapeHTML } from '@lytjs/common-string';
2
2
 
3
- var __defProp = Object.defineProperty;
4
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
- var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
6
-
7
3
  // src/builder.ts
8
4
  var MetadataBuilder = class {
9
5
  constructor() {
10
6
  /** 元数据对象 */
11
- __publicField(this, "metadata", {});
7
+ this.metadata = {};
12
8
  }
13
9
  /**
14
10
  * 设置标题
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/builder.ts","../src/renderer.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * 元数据构建器\n */\nimport type { Metadata, OpenGraphMetadata, TwitterMetadata } from '@lytjs/shared-types';\n\n/**\n * 元数据构建器类\n */\nexport class MetadataBuilder {\n /** 元数据对象 */\n private metadata: Metadata = {};\n\n /**\n * 设置标题\n *\n * @param title - 标题\n * @returns 构建器实例\n */\n title(title: string): this {\n this.metadata.title = title;\n return this;\n }\n\n /**\n * 设置描述\n *\n * @param description - 描述\n * @returns 构建器实例\n */\n description(description: string): this {\n this.metadata.description = description;\n return this;\n }\n\n /**\n * 设置关键词\n *\n * @param keywords - 关键词数组\n * @returns 构建器实例\n */\n keywords(keywords: string[]): this {\n this.metadata.keywords = keywords;\n return this;\n }\n\n /**\n * 设置 Open Graph 元数据\n *\n * @param og - Open Graph 元数据\n * @returns 构建器实例\n */\n openGraph(og: OpenGraphMetadata): this {\n this.metadata.openGraph = { ...this.metadata.openGraph, ...og };\n return this;\n }\n\n /**\n * 设置 Twitter 元数据\n *\n * @param twitter - Twitter 元数据\n * @returns 构建器实例\n */\n twitter(twitter: TwitterMetadata): this {\n this.metadata.twitter = { ...this.metadata.twitter, ...twitter };\n return this;\n }\n\n /**\n * 设置自定义属性\n *\n * @param key - 键\n * @param value - 值\n * @returns 构建器实例\n */\n set(key: string, value: unknown): this {\n this.metadata[key] = value;\n return this;\n }\n\n /**\n * 构建元数据\n *\n * @returns 元数据对象\n */\n build(): Metadata {\n return { ...this.metadata };\n }\n}\n\n/**\n * 创建元数据构建器\n *\n * @returns 构建器实例\n */\nexport function createMetadataBuilder(): MetadataBuilder {\n return new MetadataBuilder();\n}\n","/**\n * 元数据渲染器\n */\nimport type { Metadata } from '@lytjs/shared-types';\nimport { escapeHTML } from '@lytjs/common-string';\n\n/**\n * 渲染元数据为 HTML 标签\n *\n * @param metadata - 元数据对象\n * @returns HTML 标签字符串\n */\nexport function renderMetadata(metadata: Metadata): string {\n const tags: string[] = [];\n\n if (metadata.title) {\n tags.push(`<title>${escapeHTML(metadata.title)}</title>`);\n }\n\n if (metadata.description) {\n tags.push(`<meta name=\"description\" content=\"${escapeHTML(metadata.description)}\">`);\n }\n\n if (metadata.keywords && metadata.keywords.length > 0) {\n tags.push(`<meta name=\"keywords\" content=\"${escapeHTML(metadata.keywords.join(', '))}\">`);\n }\n\n if (metadata.openGraph) {\n for (const [key, value] of Object.entries(metadata.openGraph)) {\n if (value) {\n tags.push(`<meta property=\"og:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n if (metadata.twitter) {\n for (const [key, value] of Object.entries(metadata.twitter)) {\n if (value) {\n tags.push(`<meta name=\"twitter:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n return tags.join('\\n');\n}\n"]}
1
+ {"version":3,"sources":["../src/builder.ts","../src/renderer.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * 元数据构建器\n */\nimport type { Metadata, OpenGraphMetadata, TwitterMetadata } from '@lytjs/shared-types';\n\n/**\n * 元数据构建器类\n */\nexport class MetadataBuilder {\n /** 元数据对象 */\n private metadata: Metadata = {};\n\n /**\n * 设置标题\n *\n * @param title - 标题\n * @returns 构建器实例\n */\n title(title: string): this {\n this.metadata.title = title;\n return this;\n }\n\n /**\n * 设置描述\n *\n * @param description - 描述\n * @returns 构建器实例\n */\n description(description: string): this {\n this.metadata.description = description;\n return this;\n }\n\n /**\n * 设置关键词\n *\n * @param keywords - 关键词数组\n * @returns 构建器实例\n */\n keywords(keywords: string[]): this {\n this.metadata.keywords = keywords;\n return this;\n }\n\n /**\n * 设置 Open Graph 元数据\n *\n * @param og - Open Graph 元数据\n * @returns 构建器实例\n */\n openGraph(og: OpenGraphMetadata): this {\n this.metadata.openGraph = { ...this.metadata.openGraph, ...og };\n return this;\n }\n\n /**\n * 设置 Twitter 元数据\n *\n * @param twitter - Twitter 元数据\n * @returns 构建器实例\n */\n twitter(twitter: TwitterMetadata): this {\n this.metadata.twitter = { ...this.metadata.twitter, ...twitter };\n return this;\n }\n\n /**\n * 设置自定义属性\n *\n * @param key - 键\n * @param value - 值\n * @returns 构建器实例\n */\n set(key: string, value: unknown): this {\n this.metadata[key] = value;\n return this;\n }\n\n /**\n * 构建元数据\n *\n * @returns 元数据对象\n */\n build(): Metadata {\n return { ...this.metadata };\n }\n}\n\n/**\n * 创建元数据构建器\n *\n * @returns 构建器实例\n */\nexport function createMetadataBuilder(): MetadataBuilder {\n return new MetadataBuilder();\n}\n","/**\n * 元数据渲染器\n */\nimport type { Metadata } from '@lytjs/shared-types';\nimport { escapeHTML } from '@lytjs/common-string';\n\n/**\n * 渲染元数据为 HTML 标签\n *\n * @param metadata - 元数据对象\n * @returns HTML 标签字符串\n */\nexport function renderMetadata(metadata: Metadata): string {\n const tags: string[] = [];\n\n if (metadata.title) {\n tags.push(`<title>${escapeHTML(metadata.title)}</title>`);\n }\n\n if (metadata.description) {\n tags.push(`<meta name=\"description\" content=\"${escapeHTML(metadata.description)}\">`);\n }\n\n if (metadata.keywords && metadata.keywords.length > 0) {\n tags.push(`<meta name=\"keywords\" content=\"${escapeHTML(metadata.keywords.join(', '))}\">`);\n }\n\n if (metadata.openGraph) {\n for (const [key, value] of Object.entries(metadata.openGraph)) {\n if (value) {\n tags.push(`<meta property=\"og:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n if (metadata.twitter) {\n for (const [key, value] of Object.entries(metadata.twitter)) {\n if (value) {\n tags.push(`<meta name=\"twitter:${key}\" content=\"${escapeHTML(String(value))}\">`);\n }\n }\n }\n\n return tags.join('\\n');\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lytjs/metadata",
3
- "version": "6.7.0",
3
+ "version": "6.9.0",
4
4
  "description": "LytJS 元数据系统",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -31,9 +31,9 @@
31
31
  "clean": "rm -rf dist node_modules .turbo"
32
32
  },
33
33
  "dependencies": {
34
- "@lytjs/common-is": "^6.7.0",
35
- "@lytjs/common-string": "^6.7.0",
36
- "@lytjs/shared-types": "^6.7.0"
34
+ "@lytjs/common-is": "^6.9.0",
35
+ "@lytjs/common-string": "^6.9.0",
36
+ "@lytjs/shared-types": "^6.9.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "tsup": "^8.3.6",