Releases: Myriad-Dreamin/typst.ts
v0.5.0-rc8
Full Changelog: v0.4.1...v0.5.0-rc8
This is the final rc version before v0.5.0.
New Contributors
- @sinchang made their first contribution in #438
- @winstonewert made their first contribution in #482
- @quank123wip made their first contribution in #555
- @Loosetooth made their first contribution in #560
- @oluceps made their first contribution in #584
Security Notes
No new security note.
Package: @myriaddreamin/typst.node (New)
- feat: add typst.node in #460
- dev(pkg::node): add more api and comments in #463
- fix(pkg::node): remove additional fields added by napi prepublish in #464
- fix: entry state mutation in node compiler by @seven-mile in #550
- feat: add pdf options to typst.node in #552
- dev: simplify node api in #558
Package: rehype-typst (New)
- feat: add rehype-typst by @Enter-tainer in #435, #436, and #437
- feat: use typst.node in rehype-typst in #549
- docs: add links to rehype-typst readme by @Loosetooth in #560
Package: @myriaddreamin/typst.react (New)
- feat(pkg::react): support react 18 by @sinchang in #438
- chore(pkg::react): update to React 18 client rendering APIs by @sinchang in #442
Package: @myriaddreamin/typst.vue3 (New)
- feat: create typst-vue3 (simplified component) by @quank123wip in #555
Package: @myriaddreamin/typst.solid (New)
Package: hexo-renderer-typst
- feat: hexo-renderer-typst use typst.node in #471
- fix(hexo): delete unused variables in processor in #592
CLI
- feat(cli): support reading input from stdin in #495
Compiler API
- feat: use random main file path for svg by mainContent in #491
- feat(pkg::compiler): expose incremental api in #445
Renderer API
- fix(pkg::core): unify inconsistent pixel per pt in #450
- dev: break change: use sys.args to control layout in #540
- dev: replace inline svg with html command in #541
- feat: add query interface and export customize points for scripts in #576
- feat(pkg::compiler): expose incremental api in #445
Compiler, Rust Part
- dev(svg): use span based text selection in #447
- fix(upstream): ensure thread-safe when using comemo macros in #451
- dev: add debug loc definitions in #456
- feat(core): rework vector IR and create passes in #459
- fix(core): consider text elements which doesn't have source location in #461
- fix(compiler): correctly detect not found packages in #465
- revert: "fix(compiler): correctly detect not found packages" in #467
- feat(compiler): resolve spans in granularity of char in #468
- feat(compiler): api for mapping src to element positions in #469
- dev: remove last use of unsafe spans in #476
- feat(compiler): run in wasm32 unknown in #484
- feat: export diagnostics objects in #492
- feat(compiler): allow specifying input arguments in #494
- feat: pull list of packages for world in #499
- fix: blocking receiving http requests on another thread in #500
- dev: generialze font resolver in #506
- dev: shrink options for font resolver in #508
- feat: let world take entry into consideration in #509
- dev(compiler): add debug information on fonts in #510
- dev: update benchmark and use naive reparsing in #520
- dev: make file watching friendly in #522
- fix: restore from "file not found" error after restoring deleted file in #523
- feat: calculate color transforms at compile time in #528
- feat: full support to world snapshot in #545
- dev: improve impl of
EntryState
in #557 - dev: update compiler docs in #559
- docs: update get-started and revise compilers in #564
- feat: allow setting targets or layout widths in #562
- fix(core): reset diff group state in #454
- fix(core): convert colors from different color spaces to rgb in #501
- fix: edge cases for strokes in #578
Dom Renderer (new)
- feat(exporter::dom): init in #470
- dev(dom): make higher render priority on visible pages in #474
- dev: update dom export and all css for
escaping in #489 - fix: dom viewport width calculation by @seven-mile in #504
- feat: better fallback emit by @seven-mile in #480
- dev: replace legacy pdf js usages by sema export in #531
- feat: improve the rerendering performance on multiple-page documents in #536
- dev: sync compile actor implementation in #546
Renderer Common
- dev: improve performance on text selection in #439
- dev(svg): use span based text selection in #447
- Removed
escapes in svg export by @winstonewert in #482 - fix: render zero-sized text elements correctly in #556
- feat: add span rules to avoid user overriden by simply
span
selector. in #575 - docs: add guide to use rendering techniques in #579
Incremental Rendering
- fix(pkg::core): reset render state on
reset
call in #452
Svg Renderer
- fix(export::svg): reuse reference in a transformed item in #443
- dev(export::svg): localize clip path definitions in #444
- fix(exporter::svg): set width to zero if data is not available in #449
- dev(exporter::svg): memorize glyph hash builder in #457
Canvas Renderer
-
fix: incorrect value reference in canvas rendering in #441
-
feat: compute bbox of canvas elements in #532
-
feat: compute tight bbox of canvas path elements in #533
-
feat: render canvas with damage tracking in #534
-
feat: clip-based canvas rerendering in #535
Misc
v0.5.0-rc7
fix(ci): chromedriver 404 not found
v0.5.0-rc6
Prerelease testing.
v0.4.1
See the CHANGELOG for more details.
v0.4.1
Changelog since v0.4.1
Full Changelog: v0.4.0...v0.4.1
Security Notes
No new security note.
Bug fix
Changes
-
cli: improve TYPST_FONT_PATHS (typst#2746) in #432
-
compiler: use fontdb to load system fonts in #403
-
compiler: compile with env on stack in #409
-
compiler: replace diag features by CompileReporter in #413
External Feature
-
build: build: upgrade to typst v0.10.0 in #432
-
pkg::parser: init in #401
-
cli: manual generation in #408
-
cli: export pdf with timestamp in #423
-
compiler: add query, getSemanticTokens api in #398
-
compiler: add offset encoding option for getSemanticTokens in #400
-
compiler: compile with env on stack in #409
-
compiler: post process handler for dyn layout in #428
-
exporter::text: add text exporter in #422
-
exporter::svg: layout and shape text in browser in #416 and #420
-
exporter::svg: basic left-to-right text flow detection in #421
-
exporter::svg: pull better location handler from preview in #419
-
exporter::svg: update location handler for semantic labels in #426
Internal Feature
-
proj: add cetz-editor in #395
-
proj: init highlighter in #402
-
core: add DynGenericExporter and DynPolymorphicExporter in #411
-
core: implement ligature handling in #414
-
core: add
PageMetadata::Custom
in #425 -
core: add getCustomV1 api in #427
-
compiler: export destination path to module in #430
-
compiler: add intern support in #429
v0.4.0
See the CHANGELOG for more details.
v0.4.0
This is a major upgrade of typst.ts, so we decide to increment the minor version number. The most important change is that we have stabilized the API for TypstRenderer. We have also added guidance to typst.ts in #391.
One of the best features since v0.4.0 is that we provide a more user-friendly way to start exploring typst.ts, the all-in-one library apis:
<script type="module" src="/@myriaddreamin/typst.ts/dist/esm/contrib/all-in-one.bundle.js"></script>
<script>
document.ready(() => {
const svg = await $typst.svg({ mainContent: 'Hello, typst!' });
});
</script>
See All-in-one Library sample for sample that previewing document in less than 200 LoCs and a single HTML.
We have reworked vector format (IR) in #317, #324, and #342. As a result, there are several notable changes:
-
Removed legacy artifact exporting in #319. You can no longer get JSON output from typst.ts. Instead, use
typst.ts query
ortypst-ts-cli query
(v0.4.0+, #286). -
Refactored Renderer API in #336 and #338. Existing APIs still work but will be removed in v0.5.0.
-
Reworked canvas renderer with vector IR in #318 and #325. The new canvas renderer no longer needs to preload fonts (#330).
Changelog since v0.4.0
What's Changed
Full Changelog: v0.3.1...v0.4.0
Security Notes
No new security note.
Bug fix
-
exporter::svg: missing quote in stroke dasharray by @Enter-tainer in #332
-
core: correctly align image items in
#282 -
core: stable sort link items when lowering in #306
-
pkg::renderer: use approx float cmp by @seven-mile in #297
-
cli: calculate abspath before linking package in #296
-
compiler: formalize font search order in #293
-
compiler: reparse prefix editing in #316
Since v0.4.0-rc3
-
core: gc order in #352
-
core: hold span to/from u64 safety for users in #361
-
core: error is not send in 05060cf
-
compiler: eagle check syntax of the main file in #374
-
compiler: vfs panic when file not found by @Enter-tainer in #380
-
exporter::svg: broken clip on adjacent paths in #386
-
exporter::svg: partially disable incr rendering in https://github.com/Myriad-Dreamin/typst.ts/pull/387Dreamin/typst.ts/commit/ad69d915d14f587d8e9a40300bc85f6dac4364a1
-
pkg::compiler: set default dummy access model in #364
Changes
-
build: setup typescript monorepo with turbo in #312
- You don't have to face the error-prone
yarn link
anymore.
- You don't have to face the error-prone
-
core: remove legacy artifact exporting in #319
-
compiler: remove deprecated resolve_with in #328
Since v0.4.0-rc3
-
CSS change since typst v0.9.0 in #384
Reference change: c9f185a#diff-8913391598d5e624d7d91114b7d3deb33a841833b79d7f6045258a5144abccfbL33-R36
- .outline_glyph path { + .outline_glyph path, path.outline_glyph { fill: var(--glyph_fill); } - .outline_glyph path { + .outline_glyph path, path.outline_glyph { transition: 0.2s fill; }
External Feature
-
typst: sync to 0.8.0 in https://github.com/Myriad-Dreamin/typst.ts/pull/xxx
-
pkg::core: adapt and export render session
-
pkg::react: expose setWasmModuleInitOptions in #311
-
pkg::compiler: allow set dummy access model
-
cli: add query command in #286
-
cli: add interactive query command by Me and @seven-mile in #289
-
cli: specify fonts via an environment variable
TYPST_FONT_PATHS
in #305 -
compiler: add
set_{layout_widths,extension,target}
in #299, #304, and in #308 -
compiler: embed emoji fonts for browser compiler, which will increase much bundle size
-
docs: init typst.ts documentation in #340
Since v0.4.0-rc3
-
more convenient way to integrate projects in #388
-
exporter::svg: embed transparent html elements in #379
-
pkg::core: all-in-one library support in 17d86f8
-
pkg::core: let typst.ts work with node.js (nodenext) in #366
-
pkg::core: add option of assetUrlPrefix in https://github.com/Myriad-
-
pkg::compiler: load font asset from remote in #368
-
pkg::compiler: export to pdf api in #372
-
pkg::compiler: fetch package support in #373
-
compiler: new font distribute strategy in #362
You can install
typst-ts-cli
by cargo since this PR:cargo install --locked --git https://github.com/Myriad-Dreamin/typst.ts typst-ts-cli
-
compiler: add actor for watch compiler in #371
Internal Feature
-
compiler: pollyfill time support in browser
-
corpora: auto add std test cases in #331
Since v0.4.0-rc3
- test: add incremental compilation fuzzer in #370
v0.4.0-rc3
See the CHANGELOG for more details.
v0.4.0-rc3
This is a major upgrade of typst.ts, so we decide to increment the minor version number. The most important change is that we have stabilized the API for TypstRenderer. We have added extensive documentation (https://www.npmjs.com/package/@myriaddreamin/typst.ts?activeTab=code), but are still working on more docs, so this release is 0.4.0-rc3 rather than 0.4.0.
We have reworked vector format (IR) in #317, #324, and #342. As a result, there are several notable changes:
-
Removed legacy artifact exporting in #319. You can no longer get JSON output from typst.ts. Instead, use
typst.ts query
ortypst-ts-cli query
(v0.4.0+, #286). -
Refactored Renderer API in #336 and #338. Existing APIs still work but will be removed in v0.5.0.
-
Reworked canvas renderer with vector IR in #318 and #325. The new canvas renderer no longer needs to preload fonts (#330).
Changelog since v0.4.0-rc3
Full Changelog: v0.3.1...v0.4.0-rc3
Security Notes
No new security note.
Bug fix
-
exporter::svg: missing quote in stroke dasharray by @Enter-tainer in #332
-
core: correctly align image items in #282
-
core: stable sort link items when lowering in #306
-
pkg::renderer: use approx float cmp by @seven-mile in #297
-
cli: calculate abspath before linking package in #296
-
compiler: formalize font search order in #293
-
compiler: reparse prefix editing in #316
Changes
-
build: setup typescript monorepo with turbo in #312
- You don't have to face the error-prone
yarn link
anymore.
- You don't have to face the error-prone
-
core: remove legacy artifact exporting in #319
-
compiler: remove deprecated resolve_with in #328
External Feature
-
typst: sync to 0.8.0 in #346
-
pkg::core: adapt and export render session
-
pkg::react: expose setWasmModuleInitOptions in #311
-
pkg::compiler: allow set dummy access model
-
cli: add query command in #286
-
cli: add interactive query command by Me and @seven-mile in #289
-
cli: specify fonts via an environment variable
TYPST_FONT_PATHS
in #305 -
compiler: add
set_{layout_widths,extension,target}
in #299, #304, and in #308 -
compiler: embed emoji fonts for browser compiler, which will increase much bundle size
-
docs: init typst.ts documentation in #340
Internal Feature
v0.3.1
See the CHANGELOG for more details.
v0.3.1
Changelog since v0.3.1
Full Changelog: v0.3.0...v0.3.1
Known Issues
- exporter::svg: tyring to fix baseline of bitmap glyph, but untested in #249
Security Notes
-
compiler: safer path_for_id in #271
Before this commit, a malicious package can access any file in the system.
Bug fix
- compiler: reparse with empty content in #236
- exporter::svg: memorize image_item rendering in #247
- exporter::svg: correct group class name in #251
- exporter::svg: remove unused prev correctly in #264
- exporter::svg: correct reuse target in #268
- compiler: ignore inotify events from output in #261
- cli: correct logger setting in #262
- pkg::core: link script in #275
- compiler: only download packages in @Preview in #276
- compiler: datetime offset in #278
Changes
- cli: distinguish svg and svg-html export in #259
External Feature
- exporter::svg: experimental svg minifier in #252
- exporter::svg: page-level partial rendering in #263
- pkg::renderer: add renderer_build_info in #273
- build(typst): update to v0.7.0 in #277
Internal Feature
v0.3.0
See the CHANGELOG for more details.
Changelog since v0.3.0
Full Changelog: v0.2.3...v0.3.0
Security Notes
No new security note.
Bug fix
- exporter::svg: animation only transist on fill changes in #206
Changes
- exporter::svg: attach defs tag by class attribute instead of id attribute in #227
External Feature
-
typst: sync to 0.6.0 in #198
-
cli: list packages in #202
-
cli: link/unlink packages in #203
-
cli: generate documentation site for packages in #204
-
hexo-renderer-typst uses Dynamic SVG exporter by Me and @seven-mile in #197
Internal Feature
v0.2.3
Note: There will be large changes in the next version because Typst will introduce experimental package management in v0.6.0
, so this version is the last version of the 0.2.x series.
See the CHANGELOG for more details.
Changelog since v0.2.3
Full Changelog: v0.2.2...v0.2.3
Security Notes
No new security note.
Bug fix
- compiler: correct order of searching fonts in #175
- compiler: reset today for each compilation in #171
Changes
- cli: add embedded font again in #176
- compiler: emit plain text if out isn't a TTY in #170
- compiler: ignore utf-8 bom in #172
- compiler: loose relevance check for watching fs changes in #193
External Feature
-
exporter::svg: A new SVG exporter is introduced in #127
- with typst semantics, responsive link in #128, text selection in #137.
- with incremental rendering by Me, @seven-mile and @Enter-tainer in #129
- with dynamic (responsive) layout in #141
- with source mapping from svg elements to typst ones in #154, #161, and #162
-
cli: generate and watch svg with dynamic layout in #142 and #179
-
compiler: incremental parsing in #186
v0.2.2
See the CHANGELOG for more details.
Changelog since v0.2.2
Full Changelog: v0.2.1...v0.2.2
Security Notes
No new security note.
Changes
- cli: remove web_socket exporter in #118