Releases: Myriad-Dreamin/typst.ts
v0.5.0-rc9
This is a pre-release finally testing the release script.
Full Changelog: v0.4.1...v0.5.0-rc9
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.
- Bumped typst to 0.12.0 in #593
Package: @myriaddreamin/typst.node (New)
- Initialized typst.node in #460, #463, and #464
- (Fix) Mutating entry state correctly by @seven-mile in #550
- Added pdf options to typst.node in #552
- Simplifying node api in #558
Package: rehype-typst (New)
- Initialized rehype-typst by @Enter-tainer in #435, #436, and #437
- Using typst.node in rehype-typst in #549
- Added links to readme by @Loosetooth in #560
Package: @myriaddreamin/typst.react (New)
- Supported react 18 by @sinchang in #438
- Updated to React 18 client rendering APIs in demo by @sinchang in #442
Package: @myriaddreamin/typst.vue3 (New)
- Initialized typst-vue3 (simplified component) by @quank123wip in #555
Package: @myriaddreamin/typst.solid (New)
Package: hexo-renderer-typst
- Using typst.node in hexo-renderer-typst in #471
- Added
typst query
and export customize points for scripts in #576 and #588 - (Fix) Deleted unused variables in processor in #592
CLI
- Supported reading input from stdin in #495
Compiler API
- Using random main file path for svg by mainContent in #491
- Exposing experimental incremental api in #445
- Supporting
sys.inputs
in #595
Renderer API
- (Fix) Unified inconsistent
pixelPerPt
across packages in #450 - (BreakChange) Using sys.args to control layout in #540
- See Prepare Artifacts: Typst Scripting Part for more information.
- Replacing inline svg with html command calls in #541
- To improve security.
Compiler, Rust Part
- Using span based text selection in #447
- (Fix) Ensuring
Send + Sync
for using comemo macros in #451 - (Fix) Resetting diff group state in #454
- Added debug loc definitions in #456
- Reworked vector IR and created passes in #459
- (Fix) consider text elements which doesn't have source location in #461
- Resolving spans in granularity of char in #468
- Added api for mapping src to element positions in #469
- Removed last use of unsafe spans in #476
- Supported wasm32-unknown target in #484
- Exporting diagnostics objects in #492
- Supported
sys.input
in #494 - Pulling list of packages for world in #499
- (Fix) Detecting not found packages correctly in #465, #467, and #499
- (Fix) Blocking receiving http requests on another thread in #500
- Generalizing and improving font resolver in #506 and #508
- (Fix) Converting colors from different color spaces to rgb in #501
- Added debug information on fonts in #510
- Using naive reparsing in #520
- Making file watching power friendly in #522
- (Fix) Restoring from "file not found" error after restoring deleted file in #523
- Calculating color transforms at compile time in #528
- Allowing world snapshot in #545
- To help concurrent typst tasks.
- Synchronized compile actor implementation from tinymist in #546
- Made World parameterized by both root and entry in #509 and #557
- Updated compiler docs in #559 and #564
- Added targets or layout widths argument for dynamic layout exporter in #562
- (Fix) Accounted for edge cases when lowering stroke in #578
- Adjusted new sink api (typst v0.12.0) in #594
Dom Renderer (new)
- Initialized DOM export in #470
- Made render priority on visible pages higher in #474
- (Fix) Calculating dom viewport width correctly by @seven-mile in #504
- Improved text selection fallback by @seven-mile in #480
- Replacing legacy pdf.js usages with Sema Export in #531
- Improved the rerendering performance on multiple-page documents in #536
Renderer Common
- Improved performance on text selection in #439
- Using span based text selection in #447
- (Fix) reset render state on
reset
call in #452 - Removed
escapes in svg export by @winstonewert in #482 - Updated all css for
escaping in #489 - (Fix) Rendering zero-sized text elements correctly in #556
- Added span css rules to avoid users' occasional overrides in #575
- Added guidance docs to use rendering techniques in #579
- (Fix) Using
Abs::pt
instead ofAbs::raw
for typst v0.12.0 in #597
Svg Renderer
- (Fix) Reusing reference in a transformed item in #443
- Inlined clip path definitions in #444
- (Fix) Setting width to zero if data is not available in #449
- Memorizing glyph hash builder in #457
Canvas Renderer
- (Fix) Corrected value reference in canvas rendering in #441
- Computing bbox of canvas elements in #532 and #533
- Rendering canvas with damage tracking in #534
- Using clip-based canvas rerendering in #535
Misc
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