The highlights of this release include significant performance improvements, better portability thanks to reduced binary size and less external dependencies, and enhanced slides artifacts.
聽
Added
聽
New layout theme: focus
The new focus layout theme is an adaptation of the Focus Beamer theme. It鈥檚 a simple and clean theme well-suited for slides and articles.
Recommended combination:
.theme {paperwhite} layout:{focus}
聽
Code block callouts
The new callouts argument of the .code function attaches numbered markers to specific lines of a code block, each paired with a description displayed right below the block.
.code callouts:{
- 2: Defines the horizontal coordinate.
- 5: Takes the two coordinates.
- 6: Assigns the horizontal coordinate.
}
.read {point.ts}
聽
Slides-tailored project creation
Creating a new slides project via quarkdown create now generates starter content designed for presentations.
聽
New collection operations: prepended and appended
The new prepended and appended functions add an element at the beginning or end of a collection, respectively, without affecting the original collection.
.var {letters}
- B
- C
.foreach {.letters::prepended {A}::appended {D}}
.1Output:
A B C D
聽
Changed
聽
PDF export without Node.js [ecosystem breaking change]
Exporting to PDF no longer requires Node.js, npm, and Puppeteer. Quarkdown now communicates directly with a Chromium-family browser, which makes PDF generation significantly faster and simpler to set up.
Package manager installations download a headless Chrome shell automatically. If you installed Quarkdown manually, download it from the 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.
Migration note: the
--node-pathand--npm-pathoptions, along with theQD_NPM_PREFIXandNODE_PATHenvironment variables, are no longer used.quarkdown doctor envnow reports the browser's status.
聽
slides break page on H2
Unless overridden via .autopagebreak, slides documents now automatically break page on every H1 and H2.
This release aims at making H1 the standard for title slides, and H2 for content slides.
聽
.row and .column inherit global alignment by default
When alignment isn't explicitly set, .row and .column now inherit the parent's alignment (e.g. center in centered slides) instead of defaulting to start.
聽
Improved beamer theme
The beamer theme's layout was improved for a more consistent look.
聽
Reflectionless function calls
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.
聽
Optimized locale lookup
Locale resolution from .doclang was optimized, via a compile-time-generated and efficiently indexed table. Improvements include faster lookups, true platform independence, reduced memory usage, and smaller binary size.
Breaking change: calling .doclang without a parameter now returns the English name of the current locale, rather than its localized name.
聽
Fixed
聽
Wide tables in docs documents scroll horizontally
In docs documents, a table wider than the content area now scrolls horizontally within its own area.
聽
slides PDF export improvements
PDF artifacts generated from slides documents now feature a more polished layout.
Blank (headerless) slides are now spaced correctly.
聽
Block-aware .text, .codespan and .whitespace
The .text, .codespan and .whitespace functions now adapt to where they are called.
This fixes spacing issues when invoked as block-level functions.
聽
Layout themes: bold weight and leaner font artifacts
Fixed an issue that caused bold text in minimal and beamer themes to be browser-synthesized. It is now correctly and consistently rendered.
Additionally, the two themes now ship smaller font artifacts that reduce the size of both the HTML output and the Quarkdown distribution.
聽
Scoped function extensions
Function extensions declared in a nested scope now compose with inherited extensions only within that scope, without leaking into parent or sibling scopes.
Thanks @emerardd!
聽
Bibliography: bare DOIs now link to doi.org
A DOI given as a plain identifier now links to its absolute https://doi.org/ address.
聽
[LSP] Fixed incorrect parameter completions inside body arguments
When inside a body argument, the language server doesn't suggest other sibling parameters anymore.
Sponsors
Thanks to our sponsors! 馃帀
