GitHub - iamgio/quarkdown: ๐ช Markdown with superpowers: from ideas to papers, presentations, websites, books, and knowledge bases.
์์ฝ
quarkdown CLI๋ฅผ ํตํด ์ฝ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋ฌธ์๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค.์์ธ ๋ด์ฉ
Quarkdown Flavor๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ๋์ ์ธ Markdown ๊ธฐ๋ฐ ์กฐํ ์์คํ
์
๋๋ค. ์ด ์์คํ
์ ํต์ฌ ๊ฐ๋
์ versatility์ ์์ผ๋ฉฐ, Turing-completeํ Markdown ํ์ฅ ๊ธฐ๋ฅ์ ํตํด ๋จ์ผ ์์ค์์ ์ธ์ ๊ฐ๋ฅํ ์ฑ
, ๋ํํ ํ๋ ์ ํ
์ด์
๋ฑ ๋ค์ํ ํ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ํํ๊ฒ ์ปดํ์ผํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.ํต์ฌ ๋ฐฉ๋ฒ๋ก (Core Methodology)
Quarkdown์ ํต์ฌ์ Markdown ๋ด์์ Turing-completeํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฐ ์์ต๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์ปค๋์ฆ์ ํตํด ๊ตฌํ๋ฉ๋๋ค.
.somefunction {arg1} {arg2} Body argument์ ๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ํจ์๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์ด๋ ๊ธฐ์กด Markdown์ ์ ์ ์ธ ํน์ฑ์ ๋์ด ๋์ ์ฝํ
์ธ ์์ฑ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.layout builders, I/O, math, conditional statements, loops ๋ฑ์ ํฌํจํ๋ ๊ด๋ฒ์ํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๋ณต์กํ ๋ฌธ์ ๊ตฌ์กฐ, ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ์กฐ๊ฑด๋ถ ๋ ๋๋ง, ๋ฐ๋ณต์ ์ธ ์ฝํ
์ธ ์์ฑ์ Markdown ๋ด์์ ์ง์ ์ํํ ์ ์์ต๋๋ค..function {greet} to from: **Hello, .to** from .from!์ ๊ฐ์ด ํจ์๋ฅผ ์ ์ํ๊ณ , .greet {world} from:{iamgio}์ ๊ฐ์ด ํธ์ถํ์ฌ ๋์ ์ผ๋ก "Hello, world from iamgio!"์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ scripting ๋ฅ๋ ฅ์ ๋ถ์ฌํ์ฌ vanilla Markdown์ผ๋ก๋ ๋ถ๊ฐ๋ฅํ ๋ณต์กํ๊ณ ๋์ ์ธ ์ฝํ
์ธ ๋ฅผ ์์ฑํ ์ ์๋๋ก ํฉ๋๋ค.์ฃผ์ ํน์ง ๋ฐ ๊ธฐ๋ฅ (Key Features and Capabilities)
* ๋ค๋ชฉ์ ์ถ๋ ฅ (Versatile Targets): Quarkdown์ ๋ค์ํ ์ถ๋ ฅ ํ์์ ์ง์ํฉ๋๋ค.
* HTML Plain: ์ ์ ์น์ฌ์ดํธ ๋ฐ ์ง์ ๊ด๋ฆฌ(์: Notion/Obsidian ์คํ์ผ)์ ์ ํฉํ ์ฐ์์ ์ธ ํ๋ฆ์ ๊ฐ์ง ๋ฌธ์.
* Paged via paged.js: paged.js๋ฅผ ํ์ฉํ์ฌ ์ธ์์ฉ ์์ , ๋
ผ๋ฌธ, ๊ธฐ์ฌ์ ์ต์ ํ๋ ํ์ด์ง ๊ธฐ๋ฐ ๋ฌธ์.
* Slides via reveal.js: reveal.js๋ฅผ ์ฌ์ฉํ์ฌ ๋ํํ ํ๋ ์ ํ
์ด์
.
* PDF: ๋ชจ๋ HTML ๋ฌธ์ ์ ํ ๋ฐ ๊ธฐ๋ฅ์ด PDF ๋ด๋ณด๋ด๊ธฐ์์ ์ง์๋ฉ๋๋ค.
๋ฌธ์ ์ ํ์ ์์ค ๋ด์์ .doctype {plain}, .doctype {paged}, .doctype {slides} ํจ์ ํธ์ถ์ ํตํด ์ค์ ํ ์ ์์ต๋๋ค.
* ๊ฐ๋ฐ์ ๊ฒฝํ (Developer Experience): live preview, ๋น ๋ฅธ ์ปดํ์ผ ์๋(โก fast compilation speed), ๊ฐ๋ ฅํ VS Code extension์ ์ ๊ณตํ์ฌ ํ์ ๋
ผ๋ฌธ, ์์ , ์ง์ ๊ธฐ๋ฐ ๋๋ ๋ํํ ํ๋ ์ ํ
์ด์
์์
์ ํจ์จ์ ์
๋๋ค.
* ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋
์ฑ (Concise and Readable): LaTeX์ ๋น๊ตํ์ ๋, ๋ณต์กํ ๋ฌธ์ ๊ตฌ์กฐ(์: ๋ชฉ๋ก, ์ด๋ฏธ์ง ๋ฐฐ์ด)๋ฅผ Markdown์ ๊ฐ๊ฒฐํ ๊ตฌ๋ฌธ๊ณผ Quarkdown์ ํจ์๋ฅผ ํตํด ๋์ฑ ์ง๊ด์ ์ผ๋ก ํํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, LaTeX์ \begin{center} This text is \textit{centered}. \end{center}๋ Quarkdown์์ .center This text is _centered_ .๋ก ํํ๋ฉ๋๋ค.
์ค์น ๋ฐ ์ฌ์ฉ๋ฒ (Installation and Usage)
* ์ค์น: Linux/macOS์์๋ curl ์คํฌ๋ฆฝํธ๋ Homebrew๋ฅผ ํตํด ์ค์นํ ์ ์์ผ๋ฉฐ, Windows์์๋ Scoop์ ํตํด ์ค์นํ ์ ์์ต๋๋ค. GitHub Actions ํตํฉ์ ์ํ setup-quarkdown๋ ์ ๊ณต๋ฉ๋๋ค. Java 17+, Node.js, npm, Puppeteer๊ฐ ํ์ํฉ๋๋ค.
* ํ๋ก์ ํธ ์์ฑ: quarkdown create [directory] ๋ช
๋ น์ด๋ฅผ ํตํด ํ๋กฌํํธ ๊ธฐ๋ฐ์ ํ๋ก์ ํธ ๋ง๋ฒ์ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ Quarkdown ํ๋ก์ ํธ๋ฅผ ๋น ๋ฅด๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
* ์ปดํ์ผ: quarkdown c file.qd ๋ช
๋ น์ด๋ก ์์ค ํ์ผ์ ์ปดํ์ผํ๋ฉฐ, -p ๋๋ --preview ์ต์
์ผ๋ก ์ค์๊ฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ์ฑํํ๊ณ , -w ๋๋ --watch ์ต์
์ผ๋ก ์์ค ๋ณ๊ฒฝ ์ ์๋ ์ฌ์ปดํ์ผ์ ํ ์ ์์ต๋๋ค. -p -w ์กฐํฉ์ผ๋ก live preview๋ฅผ ๊ตฌํํฉ๋๋ค. --pdf ์ต์
์ผ๋ก PDF ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
๋ผ์ด์ ์ค (License)
๊ธฐ๋ณธ์ ์ผ๋ก Quarkdown๊ณผ ๊ทธ ๋ชจ๋์ GNU GPLv3 ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฅด์ง๋ง, quarkdown-cli ๋ฐ quarkdown-lsp ๋ชจ๋๊ณผ ๋ฐ์ด๋๋ฆฌ๋ GNU AGPLv3 ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ
๋๋ค.