diff --git a/Cargo.lock b/Cargo.lock index 6a0c5aefa..b902eacd3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2173,7 +2173,7 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typst" -version = "0.3.0" +version = "0.4.0" dependencies = [ "bitflags 2.3.1", "bytemuck", @@ -2213,7 +2213,7 @@ dependencies = [ [[package]] name = "typst-cli" -version = "0.3.0" +version = "0.4.0" dependencies = [ "atty", "chrono", @@ -2243,7 +2243,7 @@ dependencies = [ [[package]] name = "typst-docs" -version = "0.3.0" +version = "0.4.0" dependencies = [ "comemo", "heck", @@ -2262,7 +2262,7 @@ dependencies = [ [[package]] name = "typst-library" -version = "0.3.0" +version = "0.4.0" dependencies = [ "az", "chinese-number", @@ -2295,7 +2295,7 @@ dependencies = [ [[package]] name = "typst-macros" -version = "0.3.0" +version = "0.4.0" dependencies = [ "heck", "proc-macro2", @@ -2305,7 +2305,7 @@ dependencies = [ [[package]] name = "typst-tests" -version = "0.3.0" +version = "0.4.0" dependencies = [ "clap 4.2.7", "comemo", diff --git a/Cargo.toml b/Cargo.toml index 747691267..5fd1538be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,23 +1,9 @@ -[package] -name = "typst" -version = "0.3.0" -rust-version = "1.65" -authors = ["The Typst Project Developers"] -edition = "2021" -description = "A new markup-based typesetting system that is powerful and easy to learn." -homepage = "https://typst.app" -repository = "https://github.com/typst/typst" -readme = "README.md" -license = "Apache-2.0" -categories = ["compilers", "science"] -keywords = ["markup", "typesetting"] - [workspace] members = ["cli", "docs", "library", "macros", "tests"] default-members = ["cli"] [workspace.package] -version = "0.3.0" +version = "0.4.0" rust-version = "1.65" authors = ["The Typst Project Developers"] edition = "2021" @@ -25,8 +11,19 @@ homepage = "https://typst.app" repository = "https://github.com/typst/typst" readme = "README.md" license = "Apache-2.0" + +[package] +name = "typst" +description = "A new markup-based typesetting system that is powerful and easy to learn." categories = ["compilers", "science"] -keywords = ["typst"] +keywords = ["markup", "typesetting"] +version.workspace = true +rust-version.workspace = true +authors.workspace = true +edition.workspace = true +homepage.workspace = true +repository.workspace = true +license.workspace = true [lib] doctest = false diff --git a/cli/Cargo.toml b/cli/Cargo.toml index ad08d99b3..fc0f7ddd3 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,15 +1,15 @@ [package] name = "typst-cli" +description = "The command line interface for Typst." +categories = ["compilers", "command-line-utilities"] +keywords = ["typst", "cli"] version.workspace = true rust-version.workspace = true authors.workspace = true edition.workspace = true -description = "The command line interface for Typst." homepage.workspace = true repository.workspace = true license.workspace = true -categories = ["compilers", "command-line-utilities"] -keywords = ["typst", "cli"] [[bin]] name = "typst" diff --git a/docs/src/general/changelog.md b/docs/src/general/changelog.md index d75f77911..6ce26b5f7 100644 --- a/docs/src/general/changelog.md +++ b/docs/src/general/changelog.md @@ -5,7 +5,7 @@ description: | --- # Changelog -## Unreleased +## Version 0.4.0 (May 20, 2023) { #v0.4.0 } - Footnotes - Implemented support for footnotes - The [`footnote`]($func/footnote) function inserts a footnote @@ -14,11 +14,11 @@ description: | - The `{"chicago-notes"}` [citation style]($func/cite.style) is now available - Documentation - - Added [guide for LaTeX users]($guides/guide-for-latex-users) + - Added a [Guide for LaTeX users]($guides/guide-for-latex-users) - Now shows default values for optional arguments - Added richer outlines in "On this Page" - Added initial support for search keywords: "Table of Contents" will now find - the [outline]($func/outline) function, suggestions for more keywords are + the [outline]($func/outline) function. Suggestions for more keywords are welcome! - Fixed issue with search result ranking - Fixed many more small issues @@ -40,13 +40,17 @@ description: | - Scripting - Added function scopes: A function can now hold related definitions in its - own scope, similar to a module. The new [`assert.eq`]($func/assert.eq), for - instance, is part of the [`assert`]($func/assert) scopes. + own scope, similar to a module. The new [`assert.eq`]($func/assert.eq) + function, for instance, is part of the [`assert`]($func/assert) function's + scope. Note that function scopes are currently only available for built-in + functions. - Added [`assert.eq`]($func/assert.eq) and [`assert.ne`]($func/assert.ne) functions for simpler equality and inequality assertions with more helpful error messages - - The `at` method on [strings]($type/string.at), [arrays]($type/array.at), - [dictionaries]($type/dict.at), and [content]($type/content.at) now supports + - Exposed [list]($func/list.item), [enum]($func/enum.item), and + [term list]($func/terms.item) items in their respective functions' scope + - The `at` methods on [strings]($type/string.at), [arrays]($type/array.at), + [dictionaries]($type/dict.at), and [content]($type/content.at) now support specifying a default value - Added support for passing a function to [`replace`]($type/string.replace) that is called with each match. @@ -66,36 +70,35 @@ description: | - Fixed [alignment]($func/raw.align) of text inside raw blocks (centering a raw block, e.g. through a figure, will now keep the text itself left-aligned) - - Added support for passing a per-column array instead of a function to - configure table cell [alignment]($func/table.align) and - [fill]($func/table.fill) + - Added support for passing a array instead of a function to configure table + cell [alignment]($func/table.align) and [fill]($func/table.fill) per column - Fixed automatic figure [`kind`]($func/figure.kind) detection - Made alignment of [enum numbers]($func/enum.number-align) configurable, defaulting to `end` - - Fixed show-set rules for blocks in figures - - Initial fix for smart quotes for RTL languages + - Figures can now be made breakable with a show-set rule for blocks in figure + - Initial fix for smart quotes in RTL languages - Export - Fixed ligatures in PDF export: They are now copyable and searchable - - Exported PDFs now embeds ICC profiles for images that have them + - Exported PDFs now embed ICC profiles for images that have them - Fixed export of strokes with zero thickness - Web app - Projects can now contain folders - - Added upload by drag and drop into the file panel + - Added upload by drag-and-drop into the file panel - Files from the file panel can now be dragged into the editor to insert them - in a Typst file + into a Typst file - You can now copy-paste images and other files from your computer directly into the editor - - Added button to resend confirmation email - - Added option to invert preview colors in dark mode - - Added tips to the loading screen and the Help menu. Feel free to submit + - Added a button to resend confirmation email + - Added an option to invert preview colors in dark mode + - Added tips to the loading screen and the Help menu. Feel free to propose more! - Added syntax highlighting for YAML files - - Allow middle mouse button click on many buttons to navigate in a new tab - - Allow more project names - - Fix overridden Vim mode keybindings - - Many bugfixes regarding file upload and more + - Allowed middle mouse button click on many buttons to navigate into a new tab + - Allowed more project names + - Fixed overridden Vim mode keybindings + - Fixed many bugs regarding file upload and more - Miscellaneous Improvements - Improved performance of counters, state, and queries @@ -105,6 +108,8 @@ description: | - For users of the `typst` crate: The `Document` is now `Sync` again and the `World` doesn't have to be `'static` anymore + + ## Version 0.3.0 (April 26, 2023) { #v0.3.0 } - **Breaking changes:** - Renamed a few symbols: What was previous `dot.op` is now just `dot` and the diff --git a/docs/src/reference/types.md b/docs/src/reference/types.md index a5741337a..2fceb2b3c 100644 --- a/docs/src/reference/types.md +++ b/docs/src/reference/types.md @@ -832,6 +832,12 @@ kind. In contrast to normal functions, they can further be used in [set rules]($styling/#set-rules), [show rules]($styling/#show-rules), and [selectors]($type/selector). +### Function scopes { #function-scopes } +Functions can hold related definitions in their own scope, similar to a +[module]($scripting/#modules). Examples of this are +[`assert.eq`]($func/assert.eq) or [`list.item`]($func/list.item). However, this +feature is currently only available for built-in functions. + ### Defining functions { #definitions } You can define your own function with a [let binding]($scripting/#bindings) that has a parameter list after diff --git a/library/Cargo.toml b/library/Cargo.toml index 294c86fe7..335a60019 100644 --- a/library/Cargo.toml +++ b/library/Cargo.toml @@ -1,14 +1,15 @@ [package] name = "typst-library" +description = "The standard library for Typst." +categories = ["compilers", "science"] +keywords = ["typst"] version.workspace = true rust-version.workspace = true authors.workspace = true edition.workspace = true -description = "The standard library for Typst." homepage.workspace = true repository.workspace = true license.workspace = true -keywords.workspace = true [lib] test = false diff --git a/library/src/meta/figure.rs b/library/src/meta/figure.rs index 5476b3675..945a812af 100644 --- a/library/src/meta/figure.rs +++ b/library/src/meta/figure.rs @@ -95,21 +95,13 @@ pub struct FigureElem { /// automatic detection. This can be useful if /// - you wish to create a custom figure type that is not an /// [image]($func/image), a [table]($func/table) or [code]($func/raw), - /// - you want to force the figure to use a counter regardless of its - /// content. + /// - you want to force the figure to use a specific counter regardless of + /// its content. /// /// You can set the kind to be an element function or a string. If you set /// it to an element function that is not supported by the figure, you will /// need to manually specify the figure's supplement. /// - /// The figure's automatic detection is based on a priority list to select - /// the element that is likely to be the most important one. If the figure's - /// body contains multiple valid elements, the one with the highest priority - /// is selected. The priority list is as follows: - /// - [image]($func/image) is the most important, - /// - [code]($func/raw) is the second most important, - /// - [table]($func/table) is the least important one. - /// /// ```example /// #figure( /// circle(radius: 10pt), diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 895d8321b..179666d81 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -1,14 +1,13 @@ [package] name = "typst-macros" +description = "Proc-macros for Typst." version.workspace = true rust-version.workspace = true authors.workspace = true edition.workspace = true -description = "Proc-macros for Typst." homepage.workspace = true repository.workspace = true license.workspace = true -keywords.workspace = true [lib] proc-macro = true