From bed6e18be3b7850fd2f742eedf8a0d3f326b534d Mon Sep 17 00:00:00 2001 From: kght6123 Date: Wed, 10 Jul 2024 22:33:01 +0900 Subject: [PATCH] =?UTF-8?q?Windows=E3=81=A7=E8=B5=B7=E5=8B=95=E3=81=97?= =?UTF-8?q?=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=20#7=E3=80=81Mermaid=E7=94=9F=E6=88=90=E3=81=AE=E5=86=85?= =?UTF-8?q?=E9=83=A8=E5=87=A6=E7=90=86=E3=82=92=E5=85=AC=E5=BC=8F=E3=81=AE?= =?UTF-8?q?=E3=82=82=E3=81=AE=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +++++++ package.json | 6 +++--- src/rehype-mermaid.ts | 19 ++++++++++++++----- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f4078c6..f1cb812 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,12 @@ MITライセンスの下で公開されています。詳細については LICE [docs/99-1_samples.md](./docs/99-1_samples.md)を参照してください。 +## Print + +プリント出力のための設定や注意事項を記載します。 + +- 後日、KDPへの対応を予定しています。 + ## Note このプロジェクトに関する追加の注意事項や補足情報を記載します。 @@ -249,3 +255,4 @@ npx browser-sync start --proxy 'localhost:3000' --files="dist/lockfile" --startP ## ChangeLog - v0.1 4/26 プロジェクト作成 +- v0.2 7/10 Windowsで起動しない問題を修正 #7、Mermaid生成の内部処理を公式のものに変更 diff --git a/package.json b/package.json index f66a1e9..a3f7097 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,11 @@ "dev:tc": "npx --yes tailwindcss@latest -i ./src/global.css -o ./dist/global.css --watch --no-autoprefixer --postcss ./postcss.config.cjs", "dev:vs": "npx --yes @vivliostyle/cli preview --style ./dist/global.css", "dev:h3": "npx --yes listhen --host 0.0.0.0 --port 3000 --watch ./src/viewer.ts", - "dev:sync": "npx --yes browser-sync start --no-ui --port 3001 --config 'bs-config.js' --files=\"dist/*\" --reload-delay=4000 --reload-throttle=4000 --startPath=\"/index.html#src=/dist/publication.json&bookMode=true&renderAllPages=true&style=/dist/global.css\" --browser \"google chrome\"", - "dev:sync:lock": "npx --yes browser-sync start --no-ui --port 3001 --config 'bs-config.js' --files=\"dist/lockfile,dist/global.css,images/*\" --reload-delay=4000 --reload-throttle=4000 --startPath=\"/index.html#src=/dist/publication.json&bookMode=true&renderAllPages=true&style=/dist/global.css\" --browser \"google chrome\"", + "dev:sync": "npx --yes browser-sync start --no-ui --port 3001 --config bs-config.js --files=\"dist/*\" --reload-delay=4000 --reload-throttle=4000 --startPath=\"/index.html#src=/dist/publication.json&bookMode=true&renderAllPages=true&style=/dist/global.css\" --browser \"google chrome\"", + "dev:sync:lock": "npx --yes browser-sync start --no-ui --port 3001 --config bs-config.js --files=\"dist/lockfile,dist/global.css,images/*\" --reload-delay=4000 --reload-throttle=4000 --startPath=\"/index.html#src=/dist/publication.json&bookMode=true&renderAllPages=true&style=/dist/global.css\" --browser \"google chrome\"", "dev": "npx --yes concurrently --kill-others --names \"main,h3,tailwind,browser-sync\" -c \"auto\" \"npm run pre-compiler:dev\" \"npm run dev:h3\" \"npx --yes wait-on --interval 500 ./dist/lockfile && npm run dev:tc\" \"npx --yes wait-on --interval 500 ./dist/global.css ./dist/lockfile && npm run dev:sync:lock\"", "clean": "npx --yes clear-npx-cache", - "pre-compiler:dev": "npm run pre-compiler;npx --yes chokidar-cli \"src/**/*.ts\" \"src/**/*.html\" \"docs/**/*.md\" -c \"npm run pre-compiler\"", + "pre-compiler:dev": "npm run pre-compiler && npx --yes chokidar-cli \"src/**/*.ts\" \"src/**/*.html\" \"docs/**/*.md\" -c \"npm run pre-compiler\"", "pre-compiler": "npx --yes vite-node src/main.ts", "check": "npx --yes @biomejs/biome check --apply-unsafe ./src" }, diff --git a/src/rehype-mermaid.ts b/src/rehype-mermaid.ts index eb24f02..d6cfa87 100644 --- a/src/rehype-mermaid.ts +++ b/src/rehype-mermaid.ts @@ -239,7 +239,7 @@ const rehypeMermaid: Plugin<[RehypeMermaidOptions?], Root> = (options) => { const outputFormat = "png" const parseMMDOptions: ParseMDDOptions = {} const puppeteerConfig: PuppeteerLaunchOptions = ({ - headless: "new" + headless: "new", }) const renderDiagrams = (() => (diagrams: string[], renderOptions: RehypeMermaidOptions | undefined): Promise[]> => { return Promise.allSettled( @@ -264,7 +264,7 @@ const rehypeMermaid: Plugin<[RehypeMermaidOptions?], Root> = (options) => { }) ) })(); - return (ast, file) => { + return async (ast, file) => { const instances: CodeInstance[] = [] visitParents(ast, 'element', (node: Element, ancestors) => { @@ -331,7 +331,7 @@ const rehypeMermaid: Plugin<[RehypeMermaidOptions?], Root> = (options) => { ) ] - return Promise.all(promises).then(([lightResults]) => { + return await Promise.all(promises).then(([lightResults]) => { for (const [index, instance] of instances.entries()) { const lightResult = lightResults[index] // biome-ignore lint/suspicious/noConfusingVoidType: @@ -355,10 +355,19 @@ const rehypeMermaid: Plugin<[RehypeMermaidOptions?], Root> = (options) => { parent.children.splice(nodeIndex, 1) } } - }).finally(() => { + }).finally(async () => { + console.log('finally') if (browser !== undefined) { - browser.close() + const pages = await browser.pages(); + for (let i = 0; i < pages.length; i++) { + await pages[i].close(); + } + await browser.close(); browser = undefined + setTimeout(() => { + console.log('force exit...') + process.exit(0); + }, 10 * 1000); } }) }