You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,14 @@ The new `callouts` argument of the `.code` function attaches numbered markers to
21
21
22
22
### Changed
23
23
24
+
#### PDF export without Node.js [ecosystem breaking change]
25
+
26
+
Exporting to PDF no longer requires Node.js, npm, and Puppeteer. Quarkdown now communicates directly with a Chromium-family browser, which makes PDF generation faster to start and much simpler to set up.
27
+
28
+
Package manager installations download a headless Chrome shell automatically. If you installed Quarkdown manually, download it from the [Chrome for Testing](https://googlechromelabs.github.io/chrome-for-testing/) page, or point Quarkdown to an existing Chromium-family installation with the new `--chrome-path` option or the `QD_CHROME_PATH` environment variable.
29
+
30
+
> Migration note: the `--node-path` and `--npm-path` options, along with the `QD_NPM_PREFIX` and `NODE_PATH` environment variables, are no longer used. `quarkdown doctor env` now reports the browser's status.
31
+
24
32
#### Reflectionless function calls
25
33
26
34
Calling a native function no longer involves JVM reflection, improving performance (the official wiki now compiles 10% faster) on function-heavy documents and opening the door to future optimizations.
Copy file name to clipboardExpand all lines: CLAUDE.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ This is the Quarkdown project. Quarkdown is a:
5
5
- Typesetting system, as an alternative to LaTeX, with high-quality typography and layout customization
6
6
- Compiler, parser and renderer to:
7
7
- HTML
8
-
- PDF (via Puppeteer)
8
+
- PDF (via a headless Chromium browser)
9
9
- Plain text
10
10
- CLI tool
11
11
@@ -294,7 +294,7 @@ After the Kotlin extension renders the Quarkdown AST to HTML elements,
294
294
the front-end TypeScript code takes care of interactivity and dynamic features,
295
295
while SCSS files handle styling and layout.
296
296
297
-
Additionally, Puppeteer is used to generate PDF output from the HTML rendering.
297
+
Additionally, a Chromium-family browser (`chrome-headless-shell`), driven from the JVM over the Chrome DevTools Protocol, is used to generate PDF output from the HTML rendering.
298
298
This lives in the separate, JVM-only [quarkdown-html-pdf](quarkdown-html-pdf) module,
299
299
which decorates the HTML post-renderer and relies on the webserver, located in [quarkdown-server](quarkdown-server).
300
300
@@ -333,7 +333,7 @@ A layout or color theme can ship sibling assets (e.g. fonts) that travel with it
333
333
334
334
## Server
335
335
336
-
[quarkdown-server](quarkdown-server) is a Ktor-based web server that serves the HTML rendering and allows PDF generation via Puppeteer. The `/preview/<path>` endpoint, used in combination with the CLI's `--preview` and `--watch` options, serves the HTML through a double iframe buffer, allowing for live preview during editing.
336
+
[quarkdown-server](quarkdown-server) is a Ktor-based web server that serves the HTML rendering and allows PDF generation via a headless Chromium browser. The `/preview/<path>` endpoint, used in combination with the CLI's `--preview` and `--watch` options, serves the HTML through a double iframe buffer, allowing for live preview during editing.
Root privileges let the script install Quarkdown into `/opt/quarkdown` and its wrapper script into `/usr/local/bin/quarkdown`.
290
-
If missing, Node.js will be installed automatically using the system's package manager.
290
+
The browser required for PDF export is installed automatically.
291
291
292
292
For more installation options, check out [get-quarkdown](https://github.com/quarkdown-labs/get-quarkdown).
293
293
@@ -324,7 +324,7 @@ or build it with `gradlew installDist`.
324
324
Optionally, adding `<install_dir>/bin` to your `PATH` allows you easier access Quarkdown.
325
325
326
326
Requirements:
327
-
- (Only for PDF export) Node.js, npm, Puppeteer. See [*PDF export*](https://quarkdown.com/wiki/pdf-export) for details.
327
+
- (Only for PDF export) A Chromium-family browser, such as `chrome-headless-shell`. See [*PDF export*](https://quarkdown.com/wiki/pdf-export) for details.
0 commit comments