Info
Quartz๋ preBuild๋ฅผ ํตํด md โ html๋ก ๋ณํํ์ฌ ์์ฑ๋ ์ ์ ํ์ผ์ public directory์์ ๊ด๋ฆฌํ๋๋ก ๋์ด์๋ค.
Process
npx quartz build๋ช
๋ น์ด๋ฅผ ํตํด ๋น๋ ์๋
Process Cli commandLine
/quartz/bootstrap-cli.mjs ํ์ผ์ build ๋ช
๋ น์ด์ ๋ํด ๋์ํ๋ handleBuild() ์คํ.
yargs,hideBin๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ.create,update,restore,sync,build๋ช ๋ น์ด ์ ์.
Build Handling
/quartz/cli/handlers/js ํ์ผ์ handleBuild() ํจ์ ์คํ.
- esbuilder๋ฅผ ์ฌ์ฉํ์ฌ build context ์์ฑ.
sass Plugin๊ณผinline-script-loader Plugin์ ์ฌ์ฉํ์ฌ sass, script ์ฒ๋ฆฌ.- Build process ๋๊ธฐํ ๊ด๋ฆฌ๋ฅผ ์ํด
Mutex์์ฑ. build()ํจ์๋ฅผ ํตํด ๋น๋ ์คํ./quartz/build.tsํ์ผ์ ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ mjs ํ์ผ์ cache๋ก ์ ์ฅ.- ์ ์ฅ๋
./quartz/.quartz-cache/transpiled-build.mjsํ์ผ์ ์ฌ์ฉ ํ์ฌ Quartz๋ฅผ ๋น๋.
Build Quartz
/quartz/build.tsํ์ผ์ buildํ ๊ฒฐ๊ณผ๋ฌผ์ธ ./quartz/.quartz-cache/transpiled-build.mjs์ buildQuartz() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋.
- ๋น๋ ์ปจํ
์คํธ ์ด๊ธฐํ
- BuildId ์ฑ๋ฒ
- setting ์ฃผ์
- ์ค์ ๋ Plugin ๋ก๋ ๋ฐ ์ด๊ธฐํ
- Transformers
- Filters
- Emitters
- output dir ์ค์
- default:
/public
- default:
- target source ํ์
glob๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ/content๋ด๋ถ์ ๋ชจ๋.mdํ์ผ์ ํ์
- markdown ํ์ฑ
parseMarkdown()ํจ์ ์ฌ์ฉ.- Transformers๋ฅผ ์ฌ์ฉํ์ฌ
.mdํ์ผ์html๋ก ํ์ฑ - ์ฐธ๊ณ : Transformers
- contents ํํฐ๋ง
filterContent()ํจ์ ์ฌ์ฉ.- Filters๋ฅผ ์ฌ์ฉํ์ฌ frontmatter ๋๋ ํ์ผ์ ์ง์ ์ ์ธ ์ ๋ณด๋ฅผ ํตํด ๋ ธ์ถํ์ง ์์ contents ํํฐ๋ง.
- ์ฐธ๊ณ : Filters
- contents ์ถ๋ ฅ
emitContent()ํจ์ ์ฌ์ฉ.- fast build๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์์กด์ฑ ๊ทธ๋ํ์ ๋ฐ๋ผ ๊ด๋ จ ๋ด์ฉ์ ์ ๋ฐ์ดํธ ํจ.
- ํ์ฑ ๋ฐ ํํฐ๋ง๋ contents๋ฅผ ์ ์
htmlํ์ผ๋ก ์ถ๋ ฅ (output dir) - ์ฐธ๊ณ : Emitters