- Add support for
insetshorthand property - Add support for
lh,rlh,cap,rcap,ic,ric,rex, andrchunits - Allow flexible emoji selection for primary font
- Allow
nonein background shorthand parsing - Reject invalid CSS value types
- Reject trailing tokens in
border-radiusshorthand parsing - Defer font shorthand property emission until full parsing succeeds
- Improve media query parsing, error recovery, and feature comparison
- Remove unnecessary whitespace from SVG string properties
Backers and sponsors:
- Add full CSS
:lang()locale support - Add language-specific default quotes
- Fix
calc()not preserving unitless results - Fix font fallback for grapheme clusters
- Fix emoji variation selector detection
- Fallback to monochrome when color glyphs are unavailable
- Force layout during pagination to fix mismatched layouts
- Include query component in base URL resolution
- Enforce strict parsing for CSS
matrix()andrect() - Reduce memory usage by avoiding redundant CSS property storage
Backers and sponsors:
- Add support for emoji variation selectors
- Fast skip painting off-screen table content
- Fix synthetic oblique slope range check
- Fix table cell border attribute mapping
- Fix
empty-cellspainting in separate border model
Backers and sponsors:
- Add selector filter for fast CSS selector rejection
- Add lazy loading support for CSS
@font-facefonts - Add support for padding in page boxes
- Fix double slanting of remote CSS
@font-facefonts - Fix fallback handling in SVG paint application
- Fix rounding errors in fragment offsets, line, and flex layout
- Apply page scale to page margin boxes
- Reorder header and footer painting to fix collapsed border rendering
- Revert change ensuring empty list items with outside markers generate boxes
Backers and sponsors:
- Support repeating table headers and footers
- Support column group background painting and border resolution
- Support absolute and fixed positioning inside page margin boxes
- Fix table row and cell height sizing
- Fix table column and row span width and padding calculations
- Fix collapsed table border resolution order for adjacent columns
- Prevent page breaks inside table rows
- Remove table padding for collapsed border
- Relicense under the Mozilla Public License 2.0 (MPL-2.0)
Backers and sponsors:
- Add support for the
widthstyle attribute ontd,th,col, andcolgroupelements - Support outline painting for table rows and sections
- Fix unnecessary pseudo-element box generation when content is
noneornormal
Backers and sponsors:
- Fix GCC 12 compilation error
- Refactor SSL verification settings in curl
- Remove incorrect
isElementNodeassertion inBoxView::build()
Backers and sponsors:
- Fix
:has()matching by preventing premature return so all sub-selectors are evaluated - Handle UTF-8 filenames on Windows when opening output files
- Skip zero-width spaces during text rendering to prevent invisible characters in PDF output
Backers and sponsors:
- Fix URL resolution for Windows absolute paths by mapping them to proper
file://URLs - Add
cairo-fix-font-options-leaks.patchto address memory leaks in Cairo
Backers and sponsors:
- Add support for
<base>tag to resolve relative URLs - Add support for
font-variant-emoji - Add support for
min-content,max-content, andfit-contentinflexshorthand - Add support for
:local-linkselector - Add support for
:hasselector - Add support for
:whereselector - Add
line-height: normalto::markerto prevent inheritedline-heightissues - Fix
:nth-of-typeand:nth-last-of-typesibling counting - Fix
:nth()page selector matching - Fix CSS
:lang()selector matching - Fix CSS selector specificity calculation to match W3C specification
- Fix Windows Fontconfig failing to load its default config files
- Refactor
alignandhiddenpresentational attributes - Reset form control
font-sizeto match most browsers - Fully implement
format()support in@font-faceto skip unsupported font sources - Add some subset of ready-made counter styles (
binary,octal,lower-hexadecimal,upper-hexadecimal) - Add
plutobook_set_fontconfig_path()to set the Fontconfig configuration directory - Enable FreeType error strings for clearer diagnostic messages
- Fix default border value for table elements
- Account for relative positioning offsets when computing static distances
- Handle RTL direction when computing horizontal relative offsets
Backers and sponsors:
- Add support for running headers and footers
- Add support for CSS
min(),max()andclamp()functions - Add support for
unicode-rangein@font-facefor selective font coverage - Add support for
typeandfallbackinattr()function - Prioritize color emoji fonts during font selection
- Use
serifas the last-resort fallback font - Handle UTF-8 BOM
Backers and sponsors:
- Add support for CSS Custom Properties
- Add support for CSS
calc()function with length values - Add support for extended
rgb()andhsl()functions with whitespace and alpha slash syntax - Add support for CSS
hwb()color function - Add support for CSS wide keyword
unset
Backers and sponsors:
- Add support for
space-evenlyin flex layout - Add support for presentational attributes on
<li>and<ol> - Fix table height computation for positioned tables
- Ensure empty list items with outside markers generate boxes
- PlutoBook is now available via Homebrew :)
- Add support for
row-gap,column-gap, andgapin flex layout - Add support for CSS hex alpha notation
- Fix flex layout to avoid shrinking table boxes below min preferred width
- Fix flex layout to avoid shrinking table height
- Fix table section height calculation to avoid double-counting border spacing
- Fix preferred width calculation for replaced boxes
- Add support for
-pluto-qrcode()in CSScontentproperty for embedding QR codes - Fix uninitialized table members causing large cell
paddingandborder
- Add support for
overflow-wrapin inline line-breaking algorithm - Add CLI options
--info/-ifor build metadata inspection - Fix
text-indentoffset calculation in block-level inline formatting - Fix parser for
text-decoration-lineto returnnullptrwhen no values are consumed - Fix luminance mask computation
- Add support for
text-orientationandwriting-mode - PNG export outputs a single continuous image (no pagination)
- Add page range and metadata options to
html2pdfcli
- Replace the
formatparameter withwidthandheightparameters inBook::writeToPngand related functions. - Add
html2pngcommand-line tool. - Extend
html2pdfcommand-line tool with new options:--size--margin--media--orientation--width--height--margin-top--margin-right--margin-bottom--margin-left
- Add runtime autodetection of CA bundles and directories for curl.
- Enhance
DefaultResourceFetcherwith configurable network settings:- New setter methods:
setCAInfosetCAPathsetVerifyPeersetVerifyHostsetFollowRedirectssetMaxRedirectssetTimeout
- Corresponding C API functions:
plutobook_set_ssl_cainfoplutobook_set_ssl_capathplutobook_set_ssl_verify_peerplutobook_set_ssl_verify_hostplutobook_set_http_follow_redirectsplutobook_set_http_max_redirectsplutobook_set_http_timeout
- New setter methods:
- This is the first release. Everything is new. Enjoy!