zudoku 0.0.0-e3f7e48 → 0.0.0-e639b62
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/vite/plugin-icons.d.ts +3 -0
- package/dist/vite/plugin-icons.js +47 -0
- package/dist/vite/plugin-icons.js.map +1 -0
- package/dist/vite/plugin-sidebar.js +1 -14
- package/dist/vite/plugin-sidebar.js.map +1 -1
- package/dist/vite/plugin.js +2 -2
- package/dist/vite/plugin.js.map +1 -1
- package/package.json +1 -1
- package/dist/vite/plugin-frontmatter.d.ts +0 -2
- package/dist/vite/plugin-frontmatter.js +0 -30
- package/dist/vite/plugin-frontmatter.js.map +0 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import matter from "gray-matter";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
3
|
+
const matchIconAnnotation = /"icon":\s*"(.*?)"/g;
|
|
4
|
+
const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (match) => match.replace("-", "").toUpperCase());
|
|
5
|
+
export const replaceSidebarIcons = (code) => {
|
|
6
|
+
const collectedIcons = new Set();
|
|
7
|
+
let match;
|
|
8
|
+
while ((match = matchIconAnnotation.exec(code)) !== null) {
|
|
9
|
+
collectedIcons.add(match[1]);
|
|
10
|
+
}
|
|
11
|
+
const importStatement = `import { ${[...collectedIcons].map(toPascalCase).join(", ")} } from "zudoku/icons";`;
|
|
12
|
+
const replacedString = code.replaceAll(matchIconAnnotation,
|
|
13
|
+
// The element will be created by the implementers side
|
|
14
|
+
(_, iconName) => `"icon": ${toPascalCase(iconName)}`);
|
|
15
|
+
return `${importStatement}export const configuredSidebar = ${replacedString};`;
|
|
16
|
+
};
|
|
17
|
+
// This plugin is responsible to restart the dev server when a sidebar icon is changed inside a markdown file.
|
|
18
|
+
export const viteIconsPlugin = () => {
|
|
19
|
+
const iconMap = new Map();
|
|
20
|
+
return {
|
|
21
|
+
enforce: "pre",
|
|
22
|
+
name: "zudoku-icons-plugin",
|
|
23
|
+
configureServer: ({ watcher, restart }) => {
|
|
24
|
+
watcher.on("change", async (filePath) => {
|
|
25
|
+
if (/\.mdx?$/.test(filePath)) {
|
|
26
|
+
const code = await readFile(filePath, "utf-8");
|
|
27
|
+
const { sidebar_icon: sidebarIcon } = matter(code).data;
|
|
28
|
+
const previousIcon = iconMap.get(filePath);
|
|
29
|
+
if ((!previousIcon && sidebarIcon) ||
|
|
30
|
+
(previousIcon && !sidebarIcon) ||
|
|
31
|
+
previousIcon !== sidebarIcon) {
|
|
32
|
+
await restart();
|
|
33
|
+
}
|
|
34
|
+
iconMap.set(filePath, sidebarIcon);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
async load(id) {
|
|
39
|
+
if (/\.mdx?$/.test(id)) {
|
|
40
|
+
const code = await readFile(id, "utf-8");
|
|
41
|
+
const { sidebar_icon: sidebarIcon } = matter(code).data;
|
|
42
|
+
iconMap.set(id, sidebarIcon);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=plugin-icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-icons.js","sourceRoot":"","sources":["../../src/vite/plugin-icons.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CACnC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;IAC9G,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CACpC,mBAAmB;IACnB,uDAAuD;IACvD,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,YAAY,CAAC,QAAQ,CAAC,EAAE,CACrD,CAAC;IAEF,OAAO,GAAG,eAAe,oCAAoC,cAAc,GAAG,CAAC;AACjF,CAAC,CAAC;AAEF,8GAA8G;AAC9G,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEjD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,qBAAqB;QAC3B,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACxC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACtC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/C,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;oBACxD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAE3C,IACE,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC;wBAC9B,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC;wBAC9B,YAAY,KAAK,WAAW,EAC5B,CAAC;wBACD,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACzC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
import { resolveSidebar } from "../config/validators/SidebarSchema.js";
|
|
2
|
-
|
|
3
|
-
const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (match) => match.replace("-", "").toUpperCase());
|
|
4
|
-
const replaceSidebarIcons = (code) => {
|
|
5
|
-
const collectedIcons = new Set();
|
|
6
|
-
let match;
|
|
7
|
-
while ((match = matchIconAnnotation.exec(code)) !== null) {
|
|
8
|
-
collectedIcons.add(match[1]);
|
|
9
|
-
}
|
|
10
|
-
const importStatement = `import { ${[...collectedIcons].map(toPascalCase).join(", ")} } from "zudoku/icons";`;
|
|
11
|
-
const replacedString = code.replaceAll(matchIconAnnotation,
|
|
12
|
-
// The element will be created by the implementers side
|
|
13
|
-
(_, iconName) => `"icon": ${toPascalCase(iconName)}`);
|
|
14
|
-
return `${importStatement}export const configuredSidebar = ${replacedString};`;
|
|
15
|
-
};
|
|
2
|
+
import { replaceSidebarIcons } from "./plugin-icons.js";
|
|
16
3
|
export const viteSidebarPlugin = (getConfig) => {
|
|
17
4
|
const virtualModuleId = "virtual:zudoku-sidebar";
|
|
18
5
|
const resolvedVirtualModuleId = "\0" + virtualModuleId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-sidebar.js","sourceRoot":"","sources":["../../src/vite/plugin-sidebar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-sidebar.js","sourceRoot":"","sources":["../../src/vite/plugin-sidebar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAoC,EAC5B,EAAE;IACV,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAE3B,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC7B,QAAQ;gBACR,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;aACxD,CACF,CACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAE3C,uFAAuF;YACvF,0CAA0C;YAC1C,iEAAiE;YACjE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/vite/plugin.js
CHANGED
|
@@ -7,8 +7,8 @@ import { createConfigReloadPlugin } from "./plugin-config-reload.js";
|
|
|
7
7
|
import viteConfigPlugin from "./plugin-config.js";
|
|
8
8
|
import viteCustomCss from "./plugin-custom-css.js";
|
|
9
9
|
import viteDocsPlugin from "./plugin-docs.js";
|
|
10
|
-
import { viteFrontmatterPlugin } from "./plugin-frontmatter.js";
|
|
11
10
|
import { viteHtmlTransform } from "./plugin-html-transform.js";
|
|
11
|
+
import { viteIconsPlugin } from "./plugin-icons.js";
|
|
12
12
|
import viteMdxPlugin from "./plugin-mdx.js";
|
|
13
13
|
import viteRedirectPlugin from "./plugin-redirect.js";
|
|
14
14
|
import { viteSidebarPlugin } from "./plugin-sidebar.js";
|
|
@@ -21,7 +21,7 @@ export default function vitePlugin(initialConfig, onConfigChange) {
|
|
|
21
21
|
viteApiKeysPlugin(getCurrentConfig),
|
|
22
22
|
viteAuthPlugin(getCurrentConfig),
|
|
23
23
|
viteDocsPlugin(getCurrentConfig),
|
|
24
|
-
|
|
24
|
+
viteIconsPlugin(),
|
|
25
25
|
viteSidebarPlugin(getCurrentConfig),
|
|
26
26
|
viteApiPlugin(getCurrentConfig),
|
|
27
27
|
viteAliasPlugin(getCurrentConfig),
|
package/dist/vite/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAIzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAIzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,aAAkC,EAClC,cAA4C;IAE5C,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,wBAAwB,CACrE,aAAa,EACb,cAAc,CACf,CAAC;IAEF,OAAO;QACL,aAAa,CAAC,gBAAgB,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,gBAAgB,CAAC,aAAa,CAAC;QAC/B,iBAAiB,CAAC,gBAAgB,CAAC;QACnC,cAAc,CAAC,gBAAgB,CAAC;QAChC,cAAc,CAAC,gBAAgB,CAAC;QAChC,eAAe,EAAE;QACjB,iBAAiB,CAAC,gBAAgB,CAAC;QACnC,aAAa,CAAC,gBAAgB,CAAC;QAC/B,eAAe,CAAC,gBAAgB,CAAC;QACjC,kBAAkB,CAAC,gBAAgB,CAAC;QACpC,aAAa,CAAC,gBAAgB,CAAC;QAC/B,iBAAiB,EAAE;QACnB,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import matter from "gray-matter";
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
|
-
// This plugin is responsible to restart the dev server when the frontmatter changed inside a markdown file.
|
|
4
|
-
export const viteFrontmatterPlugin = () => {
|
|
5
|
-
const frontmatterMap = new Map();
|
|
6
|
-
return {
|
|
7
|
-
// set enforce: "pre" so it's run before the MDX plugin
|
|
8
|
-
enforce: "pre",
|
|
9
|
-
name: "zudoku-frontmatter-plugin",
|
|
10
|
-
configureServer: ({ watcher, restart }) => {
|
|
11
|
-
watcher.on("change", async (filePath) => {
|
|
12
|
-
if (/\.mdx?$/.test(filePath)) {
|
|
13
|
-
const fm = matter(await readFile(filePath, "utf-8"));
|
|
14
|
-
const prevFm = frontmatterMap.get(filePath);
|
|
15
|
-
if (prevFm && JSON.stringify(prevFm) !== JSON.stringify(fm.data)) {
|
|
16
|
-
frontmatterMap.set(filePath, fm.data);
|
|
17
|
-
await restart();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
},
|
|
22
|
-
async load(id) {
|
|
23
|
-
if (/\.mdx?$/.test(id)) {
|
|
24
|
-
const fm = matter(await readFile(id, "utf-8"));
|
|
25
|
-
frontmatterMap.set(id, fm.data);
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=plugin-frontmatter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-frontmatter.js","sourceRoot":"","sources":["../../src/vite/plugin-frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,4GAA4G;AAC5G,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE;IAChD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,OAAO;QACL,uDAAuD;QACvD,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,2BAA2B;QACjC,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACxC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACtC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBACrD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAE5C,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;wBACtC,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/C,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|