czon 0.5.0 → 0.5.1

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.
@@ -102,6 +102,7 @@ async function buildPipeline(options) {
102
102
  await (0, processTranslations_1.processTranslations)();
103
103
  // 渲染模板
104
104
  await (0, template_1.spiderStaticSiteGenerator)();
105
+ await (0, template_1.downloadCDNResources)();
105
106
  // 生成 robots.txt
106
107
  await (0, robots_1.generateRobotsTxt)();
107
108
  // 生成 sitemap.xml
@@ -33,13 +33,14 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.spiderStaticSiteGenerator = void 0;
36
+ exports.downloadCDNResources = exports.spiderStaticSiteGenerator = void 0;
37
37
  const fs = __importStar(require("fs/promises"));
38
38
  const path = __importStar(require("path"));
39
+ const sitemap_1 = require("../build/sitemap");
39
40
  const metadata_1 = require("../metadata");
40
41
  const paths_1 = require("../paths");
41
- const sitemap_1 = require("../build/sitemap");
42
42
  const ssg_1 = require("../ssg");
43
+ const resourceMap_1 = require("../ssg/resourceMap");
43
44
  const convertMarkdownToHtml_1 = require("../utils/convertMarkdownToHtml");
44
45
  const frontmatter_1 = require("../utils/frontmatter");
45
46
  const writeFile_1 = require("../utils/writeFile");
@@ -151,4 +152,19 @@ const spiderStaticSiteGenerator = async () => {
151
152
  }
152
153
  };
153
154
  exports.spiderStaticSiteGenerator = spiderStaticSiteGenerator;
155
+ const downloadCDNResources = async () => {
156
+ for (const resource of resourceMap_1.EXTERNAL_RESOURCES) {
157
+ const targetFilePath = path.join(paths_1.CZON_DIST_DIR, 'assets', resource.name);
158
+ console.info(`⬇️ Downloading resource: ${resource.url} -> ${targetFilePath}`);
159
+ const response = await fetch(resource.url);
160
+ if (!response.ok) {
161
+ console.error(`❌ Failed to download resource: ${resource.url}, status: ${response.status}`);
162
+ throw new Error(`Failed to download resource: ${resource.url}`);
163
+ }
164
+ const buffer = await response.arrayBuffer();
165
+ await (0, writeFile_1.writeFile)(targetFilePath, Buffer.from(buffer));
166
+ console.info(`✅ Resource downloaded: ${targetFilePath}`);
167
+ }
168
+ };
169
+ exports.downloadCDNResources = downloadCDNResources;
154
170
  //# sourceMappingURL=template.js.map
@@ -30,7 +30,7 @@ const ContentPage = props => {
30
30
  react_1.default.createElement("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0" }),
31
31
  react_1.default.createElement("title", null, title),
32
32
  react_1.default.createElement("meta", { name: "description", content: `tags: ${tags.join(', ')}` }),
33
- react_1.default.createElement("script", { src: "https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4", defer: true }),
33
+ react_1.default.createElement("script", { src: (0, node_path_1.relative)(props.ctx.path, '/assets/tailwindcss.js'), defer: true }),
34
34
  react_1.default.createElement("style", null, style_1.style),
35
35
  react_1.default.createElement("script", { dangerouslySetInnerHTML: {
36
36
  __html: `
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.IndexPage = void 0;
7
+ const node_path_1 = require("node:path");
7
8
  const react_1 = __importDefault(require("react"));
8
9
  const sortBy_1 = require("../utils/sortBy");
9
10
  const ContentMeta_1 = require("./components/ContentMeta");
@@ -59,7 +60,7 @@ const IndexPage = props => {
59
60
  react_1.default.createElement("footer", null,
60
61
  react_1.default.createElement(LanguageSwitcher_1.LanguageSwitcher, { ctx: props.ctx, lang: props.lang }),
61
62
  react_1.default.createElement(CZONFooter_1.CZONFooter, null))), footer: null }),
62
- react_1.default.createElement("script", { src: "https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4", defer: true }))));
63
+ react_1.default.createElement("script", { src: (0, node_path_1.relative)(props.ctx.path, '/assets/tailwindcss.js'), defer: true }))));
63
64
  // TODO: 渲染多语言首页列表
64
65
  // return (
65
66
  // <div>
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EXTERNAL_RESOURCES = void 0;
4
+ exports.EXTERNAL_RESOURCES = [
5
+ {
6
+ name: 'tailwindcss.js',
7
+ url: 'https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4',
8
+ },
9
+ ];
10
+ //# sourceMappingURL=resourceMap.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "czon",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "CZone - AI enhanced Markdown content engine",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",