@show-docs/docusaurus-theme-iframe 0.0.0 → 0.1.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.mjs +16 -0
- package/lib/api-frame-theme.mts +24 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -14,5 +14,21 @@ export default function theme() {
|
|
|
14
14
|
getTypeScriptThemePath() {
|
|
15
15
|
return resolve(thisDir, '../theme');
|
|
16
16
|
},
|
|
17
|
+
configureWebpack(_config, isServer, utils) {
|
|
18
|
+
// 官方那条 babel 规则排除整个 node_modules、只放行 `docusaurus*.js`,本包从 npm 安装后
|
|
19
|
+
// 的 `.tsx` 会报 `Module parse failed`。补一条只覆盖本包的规则(理由与代价见
|
|
20
|
+
// `lib/api-frame-theme.mts` 里同一条)。
|
|
21
|
+
return {
|
|
22
|
+
module: {
|
|
23
|
+
rules: [
|
|
24
|
+
{
|
|
25
|
+
test: /\.tsx?$/,
|
|
26
|
+
include: [resolve(thisDir, '..')],
|
|
27
|
+
use: [utils.getJSLoader({ isServer })],
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
},
|
|
17
33
|
};
|
|
18
34
|
}
|
package/lib/api-frame-theme.mts
CHANGED
|
@@ -61,6 +61,7 @@ export function createApiFrameTheme(
|
|
|
61
61
|
'(由入口产物所在目录算出;若构建输出目录不再是 dist/,上一句 resolve 就是要改的地方)。',
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
|
+
const packageRoot = resolve(themePath, '..');
|
|
64
65
|
|
|
65
66
|
return {
|
|
66
67
|
name: namespace,
|
|
@@ -68,7 +69,29 @@ export function createApiFrameTheme(
|
|
|
68
69
|
getThemePath() {
|
|
69
70
|
return themePath;
|
|
70
71
|
},
|
|
71
|
-
|
|
72
|
+
configureWebpack(config, isServer, utils, content) {
|
|
73
|
+
const callerConfig =
|
|
74
|
+
configureWebpack?.(config, isServer, utils, content) ?? {};
|
|
75
|
+
// 装进 node_modules 后官方那条 babel 规则会按 `excludeJS` 排除整个 node_modules,
|
|
76
|
+
// 只给 `docusaurus*.js` 开例外 —— 本包的 .ts/.tsx 源码于是报 `Module parse failed`。
|
|
77
|
+
// 用官方给插件作者的 `getJSLoader()` 补一条只覆盖本包的规则,让「站点的 loader 编译
|
|
78
|
+
// 本包源码」在 npm 安装后也成立。工作区里链路解析到 node_modules 之外,官方规则本来
|
|
79
|
+
// 就会编译:两条规则各跑一遍 babel,产物不变,只是多一遍开销。
|
|
80
|
+
return {
|
|
81
|
+
...callerConfig,
|
|
82
|
+
module: {
|
|
83
|
+
...callerConfig.module,
|
|
84
|
+
rules: [
|
|
85
|
+
...(callerConfig.module?.rules ?? []),
|
|
86
|
+
{
|
|
87
|
+
test: /\.tsx?$/,
|
|
88
|
+
include: [packageRoot],
|
|
89
|
+
use: [utils.getJSLoader({ isServer })],
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
},
|
|
72
95
|
contentLoaded({ actions }) {
|
|
73
96
|
// 框内那条独立页面:不是文档页、没有 frontmatter 可判,走官方插件路由 API。
|
|
74
97
|
// `component` 写 `@theme/` 别名 —— 打包器按别名找得到各包挂进层栈的那份页面,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@show-docs/docusaurus-theme-iframe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Md 的 frontmatter 写 iframe: <目标 URL> 时把该页整页换成那个页面",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://github.com/show-docs/docusaurus/tree/master/theme/theme-iframe",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"type": "module",
|
|
31
31
|
"peerDependencies": {
|
|
32
|
-
"@docusaurus/types": "^3.
|
|
32
|
+
"@docusaurus/types": "^3.9.2",
|
|
33
33
|
"react": "~18.3.1"
|
|
34
34
|
},
|
|
35
35
|
"peerDependenciesMeta": {
|