@chronoter/main 0.1.4 → 0.1.5
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/cli.js +32 -54
- package/dist/index.js +23 -48
- package/dist/server/client/main.css +5373 -0
- package/dist/server/client/main.js +1643 -0
- package/dist/server/templates/index.html +3 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import ignore from 'ignore';
|
|
|
3
3
|
import * as fs from 'fs/promises';
|
|
4
4
|
import { readFile } from 'fs/promises';
|
|
5
5
|
import * as path from 'path';
|
|
6
|
-
import { dirname, resolve, join, relative, extname, basename } from 'path';
|
|
6
|
+
import { dirname, resolve, join, relative, extname, basename, normalize, sep } from 'path';
|
|
7
7
|
import { visit } from 'unist-util-visit';
|
|
8
8
|
import { compile } from '@mdx-js/mdx';
|
|
9
9
|
import matter from 'gray-matter';
|
|
@@ -589,7 +589,28 @@ var init_routing_middleware = __esm({
|
|
|
589
589
|
req.chronoterRoute = route;
|
|
590
590
|
}
|
|
591
591
|
const templatePath = __dirname$1.endsWith("dist") ? resolve(__dirname$1, "server/templates/index.html") : resolve(__dirname$1, "templates/index.html");
|
|
592
|
-
|
|
592
|
+
let html = await readFile(templatePath, "utf-8");
|
|
593
|
+
const normalizedDirname = normalize(__dirname$1);
|
|
594
|
+
const isProduction = normalizedDirname.includes(`${sep}dist${sep}`) || normalizedDirname.endsWith(`${sep}dist`);
|
|
595
|
+
if (isProduction) {
|
|
596
|
+
html = html.replace(
|
|
597
|
+
"<!--__CHRONOTER_STYLES__-->",
|
|
598
|
+
'<link rel="stylesheet" href="/server/client/main.css" />'
|
|
599
|
+
);
|
|
600
|
+
html = html.replace(
|
|
601
|
+
"<!--__CHRONOTER_SCRIPTS__-->",
|
|
602
|
+
'<script type="module" src="/server/client/main.js"></script>'
|
|
603
|
+
);
|
|
604
|
+
} else {
|
|
605
|
+
html = html.replace("<!--__CHRONOTER_STYLES__-->", "");
|
|
606
|
+
html = html.replace(
|
|
607
|
+
"<!--__CHRONOTER_SCRIPTS__-->",
|
|
608
|
+
'<script type="module" src="/src/server/client/main.tsx"></script>'
|
|
609
|
+
);
|
|
610
|
+
}
|
|
611
|
+
const safeConfigJson = JSON.stringify(config).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026");
|
|
612
|
+
const configScript = `<script type="application/json" id="chronoter-config">${safeConfigJson}</script>`;
|
|
613
|
+
html = html.replace("<!--__CHRONOTER_CONFIG__-->", configScript);
|
|
593
614
|
const transformedHtml = await server.transformIndexHtml(url, html);
|
|
594
615
|
res.statusCode = route ? 200 : 404;
|
|
595
616
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
@@ -921,50 +942,6 @@ Please create a chronoter.config.json file.`
|
|
|
921
942
|
|
|
922
943
|
// src/server/vite-config.ts
|
|
923
944
|
init_ignore_patterns();
|
|
924
|
-
|
|
925
|
-
// src/server/plugins/config-virtual-module.ts
|
|
926
|
-
var VIRTUAL_CONFIG_MODULE_ID = "virtual:chronoter-config";
|
|
927
|
-
var RESOLVED_VIRTUAL_CONFIG_MODULE_ID = "\0" + VIRTUAL_CONFIG_MODULE_ID;
|
|
928
|
-
var createConfigVirtualModulePlugin = (config) => {
|
|
929
|
-
return {
|
|
930
|
-
name: "chronoter-config-virtual-module",
|
|
931
|
-
/**
|
|
932
|
-
* Virtual moduleのIDを解決
|
|
933
|
-
*/
|
|
934
|
-
resolveId(id) {
|
|
935
|
-
if (id === VIRTUAL_CONFIG_MODULE_ID) {
|
|
936
|
-
return RESOLVED_VIRTUAL_CONFIG_MODULE_ID;
|
|
937
|
-
}
|
|
938
|
-
return null;
|
|
939
|
-
},
|
|
940
|
-
/**
|
|
941
|
-
* Virtual moduleのコードを生成
|
|
942
|
-
*/
|
|
943
|
-
load(id) {
|
|
944
|
-
if (id === RESOLVED_VIRTUAL_CONFIG_MODULE_ID) {
|
|
945
|
-
const configCode = `
|
|
946
|
-
// Auto-generated by chronoter-config-virtual-module plugin
|
|
947
|
-
// This module provides access to the Chronoter configuration
|
|
948
|
-
|
|
949
|
-
export const config = ${JSON.stringify(config, null, 2)};
|
|
950
|
-
|
|
951
|
-
// HMR\u5BFE\u5FDC
|
|
952
|
-
if (import.meta.hot) {
|
|
953
|
-
import.meta.hot.accept((newModule) => {
|
|
954
|
-
if (newModule) {
|
|
955
|
-
console.log('[chronoter] Configuration updated');
|
|
956
|
-
// \u8A2D\u5B9A\u304C\u5909\u66F4\u3055\u308C\u305F\u5834\u5408\u306F\u30DA\u30FC\u30B8\u5168\u4F53\u3092\u30EA\u30ED\u30FC\u30C9
|
|
957
|
-
window.location.reload();
|
|
958
|
-
}
|
|
959
|
-
});
|
|
960
|
-
}
|
|
961
|
-
`;
|
|
962
|
-
return configCode;
|
|
963
|
-
}
|
|
964
|
-
return null;
|
|
965
|
-
}
|
|
966
|
-
};
|
|
967
|
-
};
|
|
968
945
|
var __filename2 = fileURLToPath(import.meta.url);
|
|
969
946
|
var __dirname2 = dirname(__filename2);
|
|
970
947
|
var isMediaFileRequest = (url) => {
|
|
@@ -1022,8 +999,6 @@ var createViteConfig = (config, options = {}) => {
|
|
|
1022
999
|
// MDXファイルもReactコンポーネントとして扱う
|
|
1023
1000
|
include: /\.(jsx|tsx|mdx)$/
|
|
1024
1001
|
}),
|
|
1025
|
-
// 設定情報をクライアントに注入するVirtual Moduleプラグイン
|
|
1026
|
-
createConfigVirtualModulePlugin(config),
|
|
1027
1002
|
// ルーティングミドルウェアを登録するプラグイン
|
|
1028
1003
|
{
|
|
1029
1004
|
name: "chronoter-routing",
|
|
@@ -1635,7 +1610,7 @@ var runVersionCheck = async (packageName, currentVersion) => {
|
|
|
1635
1610
|
|
|
1636
1611
|
// src/cli/index.ts
|
|
1637
1612
|
var PACKAGE_NAME = "chronoter";
|
|
1638
|
-
var CURRENT_VERSION = "0.1.
|
|
1613
|
+
var CURRENT_VERSION = "0.1.5";
|
|
1639
1614
|
var createCliProgram = () => {
|
|
1640
1615
|
const program = new Command();
|
|
1641
1616
|
program.name("chronoter").description("Chronoter - MDX-based documentation site generator").version(CURRENT_VERSION);
|
|
@@ -1693,10 +1668,13 @@ var main = async () => {
|
|
|
1693
1668
|
}
|
|
1694
1669
|
await program.parseAsync(process.argv);
|
|
1695
1670
|
};
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1671
|
+
var isDirectRun = process.argv[1]?.includes("chronoter-main") ?? false;
|
|
1672
|
+
if (isDirectRun) {
|
|
1673
|
+
main().catch((error) => {
|
|
1674
|
+
console.error(chalk2.red("An unexpected error occurred:"));
|
|
1675
|
+
console.error(error);
|
|
1676
|
+
process.exit(1);
|
|
1677
|
+
});
|
|
1678
|
+
}
|
|
1701
1679
|
|
|
1702
1680
|
export { CURRENT_VERSION, PACKAGE_NAME, createCliProgram };
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import ignore from 'ignore';
|
|
|
2
2
|
import * as fs from 'fs/promises';
|
|
3
3
|
import { readFile } from 'fs/promises';
|
|
4
4
|
import * as path from 'path';
|
|
5
|
-
import { dirname, resolve, join, extname, relative, basename } from 'path';
|
|
5
|
+
import { dirname, resolve, join, normalize, sep, extname, relative, basename } from 'path';
|
|
6
6
|
import { visit } from 'unist-util-visit';
|
|
7
7
|
import { compile } from '@mdx-js/mdx';
|
|
8
8
|
import matter from 'gray-matter';
|
|
@@ -584,7 +584,28 @@ var init_routing_middleware = __esm({
|
|
|
584
584
|
req.chronoterRoute = route;
|
|
585
585
|
}
|
|
586
586
|
const templatePath = __dirname$1.endsWith("dist") ? resolve(__dirname$1, "server/templates/index.html") : resolve(__dirname$1, "templates/index.html");
|
|
587
|
-
|
|
587
|
+
let html = await readFile(templatePath, "utf-8");
|
|
588
|
+
const normalizedDirname = normalize(__dirname$1);
|
|
589
|
+
const isProduction = normalizedDirname.includes(`${sep}dist${sep}`) || normalizedDirname.endsWith(`${sep}dist`);
|
|
590
|
+
if (isProduction) {
|
|
591
|
+
html = html.replace(
|
|
592
|
+
"<!--__CHRONOTER_STYLES__-->",
|
|
593
|
+
'<link rel="stylesheet" href="/server/client/main.css" />'
|
|
594
|
+
);
|
|
595
|
+
html = html.replace(
|
|
596
|
+
"<!--__CHRONOTER_SCRIPTS__-->",
|
|
597
|
+
'<script type="module" src="/server/client/main.js"></script>'
|
|
598
|
+
);
|
|
599
|
+
} else {
|
|
600
|
+
html = html.replace("<!--__CHRONOTER_STYLES__-->", "");
|
|
601
|
+
html = html.replace(
|
|
602
|
+
"<!--__CHRONOTER_SCRIPTS__-->",
|
|
603
|
+
'<script type="module" src="/src/server/client/main.tsx"></script>'
|
|
604
|
+
);
|
|
605
|
+
}
|
|
606
|
+
const safeConfigJson = JSON.stringify(config).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026");
|
|
607
|
+
const configScript = `<script type="application/json" id="chronoter-config">${safeConfigJson}</script>`;
|
|
608
|
+
html = html.replace("<!--__CHRONOTER_CONFIG__-->", configScript);
|
|
588
609
|
const transformedHtml = await server.transformIndexHtml(url, html);
|
|
589
610
|
res.statusCode = route ? 200 : 404;
|
|
590
611
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
@@ -916,50 +937,6 @@ Please create a chronoter.config.json file.`
|
|
|
916
937
|
|
|
917
938
|
// src/server/vite-config.ts
|
|
918
939
|
init_ignore_patterns();
|
|
919
|
-
|
|
920
|
-
// src/server/plugins/config-virtual-module.ts
|
|
921
|
-
var VIRTUAL_CONFIG_MODULE_ID = "virtual:chronoter-config";
|
|
922
|
-
var RESOLVED_VIRTUAL_CONFIG_MODULE_ID = "\0" + VIRTUAL_CONFIG_MODULE_ID;
|
|
923
|
-
var createConfigVirtualModulePlugin = (config) => {
|
|
924
|
-
return {
|
|
925
|
-
name: "chronoter-config-virtual-module",
|
|
926
|
-
/**
|
|
927
|
-
* Virtual moduleのIDを解決
|
|
928
|
-
*/
|
|
929
|
-
resolveId(id) {
|
|
930
|
-
if (id === VIRTUAL_CONFIG_MODULE_ID) {
|
|
931
|
-
return RESOLVED_VIRTUAL_CONFIG_MODULE_ID;
|
|
932
|
-
}
|
|
933
|
-
return null;
|
|
934
|
-
},
|
|
935
|
-
/**
|
|
936
|
-
* Virtual moduleのコードを生成
|
|
937
|
-
*/
|
|
938
|
-
load(id) {
|
|
939
|
-
if (id === RESOLVED_VIRTUAL_CONFIG_MODULE_ID) {
|
|
940
|
-
const configCode = `
|
|
941
|
-
// Auto-generated by chronoter-config-virtual-module plugin
|
|
942
|
-
// This module provides access to the Chronoter configuration
|
|
943
|
-
|
|
944
|
-
export const config = ${JSON.stringify(config, null, 2)};
|
|
945
|
-
|
|
946
|
-
// HMR\u5BFE\u5FDC
|
|
947
|
-
if (import.meta.hot) {
|
|
948
|
-
import.meta.hot.accept((newModule) => {
|
|
949
|
-
if (newModule) {
|
|
950
|
-
console.log('[chronoter] Configuration updated');
|
|
951
|
-
// \u8A2D\u5B9A\u304C\u5909\u66F4\u3055\u308C\u305F\u5834\u5408\u306F\u30DA\u30FC\u30B8\u5168\u4F53\u3092\u30EA\u30ED\u30FC\u30C9
|
|
952
|
-
window.location.reload();
|
|
953
|
-
}
|
|
954
|
-
});
|
|
955
|
-
}
|
|
956
|
-
`;
|
|
957
|
-
return configCode;
|
|
958
|
-
}
|
|
959
|
-
return null;
|
|
960
|
-
}
|
|
961
|
-
};
|
|
962
|
-
};
|
|
963
940
|
var __filename2 = fileURLToPath(import.meta.url);
|
|
964
941
|
var __dirname2 = dirname(__filename2);
|
|
965
942
|
var isMediaFileRequest = (url) => {
|
|
@@ -1017,8 +994,6 @@ var createViteConfig = (config, options = {}) => {
|
|
|
1017
994
|
// MDXファイルもReactコンポーネントとして扱う
|
|
1018
995
|
include: /\.(jsx|tsx|mdx)$/
|
|
1019
996
|
}),
|
|
1020
|
-
// 設定情報をクライアントに注入するVirtual Moduleプラグイン
|
|
1021
|
-
createConfigVirtualModulePlugin(config),
|
|
1022
997
|
// ルーティングミドルウェアを登録するプラグイン
|
|
1023
998
|
{
|
|
1024
999
|
name: "chronoter-routing",
|