[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-627":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":15,"starSnapshotCount":15,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},627,"typst","typst\u002Ftypst","A markup-based typesetting system that is powerful and easy to learn.","https:\u002F\u002Ftypst.app",null,"Rust",54154,1599,137,1174,0,22,170,691,117,44.61,"Apache License 2.0",false,"main",[25,26,27,5],"compiler","markup","typesetting","2026-06-12 02:00:16","\u003Ch1 align=\"center\">\n  \u003Cimg alt=\"Typst\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F17899797\u002F226108480-722b770e-6313-40d7-84f2-26bebb55a281.png\">\n\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Ftypst.app\u002Fdocs\u002F\">\n    \u003Cimg alt=\"Documentation\" src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite?down_message=offline&label=docs&up_color=007aff&up_message=online&url=https%3A%2F%2Ftypst.app%2Fdocs\"\n  >\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ftypst.app\u002F\">\n    \u003Cimg alt=\"Typst App\" src=\"https:\u002F\u002Fimg.shields.io\u002Fwebsite?down_message=offline&label=typst.app&up_color=239dad&up_message=online&url=https%3A%2F%2Ftypst.app\"\n  >\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F2uDybryKPe\">\n    \u003Cimg alt=\"Discord Server\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1054443721975922748?color=5865F2&label=discord&labelColor=555\"\n  >\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg alt=\"Apache-2 License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202-brightgreen\"\n  >\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ftypst.app\u002Fjobs\u002F\">\n    \u003Cimg alt=\"Jobs at Typst\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdynamic\u002Fjson?url=https%3A%2F%2Ftypst.app%2Fassets%2Fdata%2Fshields.json&query=%24.jobs.text&label=jobs&color=%23A561FF&cacheSeconds=1800\"\n  >\u003C\u002Fa>\n\u003C\u002Fp>\n\nTypst is a new markup-based typesetting system that is designed to be as powerful\nas LaTeX while being much easier to learn and use. Typst has:\n\n- Built-in markup for the most common formatting tasks\n- Flexible functions for everything else\n- A tightly integrated scripting system\n- Math typesetting, bibliography management, and more\n- Fast compile times thanks to incremental compilation\n- Friendly error messages in case something goes wrong\n\nThis repository contains the Typst compiler and its CLI, which is everything you\nneed to compile Typst documents locally. For the best writing experience,\nconsider signing up to our [collaborative online editor][app] for free.\n\n## Example\nA [gentle introduction][tutorial] to Typst is available in our documentation.\nHowever, if you want to see the power of Typst encapsulated in one image, here\nit is:\n\u003Cp align=\"center\">\n \u003Cimg alt=\"Example\" width=\"900\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F17899797\u002F228031796-ced0e452-fcee-4ae9-92da-b9287764ff25.png\">\n\u003C\u002Fp>\n\n\nLet's dissect what's going on:\n\n- We use _set rules_ to configure element properties like the size of pages or\n  the numbering of headings. By setting the page height to `auto`, it scales to\n  fit the content. Set rules accommodate the most common configurations. If you\n  need full control, you can also use [show rules][show] to completely redefine\n  the appearance of an element.\n\n- We insert a heading with the `= Heading` syntax. One equals sign creates a top\n  level heading, two create a subheading and so on. Typst has more lightweight\n  markup like this; see the [syntax] reference for a full list.\n\n- [Mathematical equations][math] are enclosed in dollar signs. By adding extra\n  spaces around the contents of an equation, we can put it into a separate block.\n  Multi-letter identifiers are interpreted as Typst definitions and functions\n  unless put into quotes. This way, we don't need backslashes for things like\n  `floor` and `sqrt`. And `phi.alt` applies the `alt` modifier to the `phi` to\n  select a particular symbol variant.\n\n- Now, we get to some [scripting]. To input code into a Typst document, we can\n  write a hash followed by an expression. We define two variables and a\n  recursive function to compute the n-th fibonacci number. Then, we display the\n  results in a center-aligned table. The table function takes its cells\n  row-by-row. Therefore, we first pass the formulas `$F_1$` to `$F_8$` and then\n  the computed fibonacci numbers. We apply the spreading operator (`..`) to both\n  because they are arrays and we want to pass the arrays' items as individual\n  arguments.\n\n\u003Cdetails>\n  \u003Csummary>Text version of the code example.\u003C\u002Fsummary>\n\n  ```typst\n  #set page(width: 10cm, height: auto)\n  #set heading(numbering: \"1.\")\n\n  = Fibonacci sequence\n  The Fibonacci sequence is defined through the\n  recurrence relation $F_n = F_(n-1) + F_(n-2)$.\n  It can also be expressed in _closed form:_\n\n  $ F_n = round(1 \u002F sqrt(5) phi.alt^n), quad\n    phi.alt = (1 + sqrt(5)) \u002F 2 $\n\n  #let count = 8\n  #let nums = range(1, count + 1)\n  #let fib(n) = (\n    if n \u003C= 2 { 1 }\n    else { fib(n - 1) + fib(n - 2) }\n  )\n\n  The first #count numbers of the sequence are:\n\n  #align(center, table(\n    columns: count,\n    ..nums.map(n => $F_#n$),\n    ..nums.map(n => str(fib(n))),\n  ))\n  ```\n\u003C\u002Fdetails>\n\n## Installation\nTypst's CLI is available from different sources:\n\n- You can get sources and pre-built binaries for the latest release of Typst\n  from the [releases page][releases]. Download the archive for your platform and\n  place it in a directory that is in your `PATH`. To stay up to date with future\n  releases, you can simply run `typst update`.\n\n- You can install Typst through different package managers. Note that the\n  versions in the package managers might lag behind the latest release.\n  - Linux:\n      - View [Typst on Repology][repology]\n      - View [Typst's Snap][snap]\n  - macOS: `brew install typst`\n  - Windows: `winget install --id Typst.Typst`\n\n- If you have a [Rust][rust] toolchain installed, you can install\n  - the latest released Typst version with\n    `cargo install --locked typst-cli`\n  - a development version with\n    `cargo install --git https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst --locked typst-cli`\n\n- Nix users can\n  - use the `typst` package with `nix-shell -p typst`\n  - build and run the [Typst flake](https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst-flake) with\n    `nix run github:typst\u002Ftypst-flake -- --version`.\n\n- Docker users can run a prebuilt image with\n  `docker run ghcr.io\u002Ftypst\u002Ftypst:latest --help`.\n\n## Usage\nOnce you have installed Typst, you can use it like this:\n```sh\n# Creates `file.pdf` in working directory.\ntypst compile file.typ\n\n# Creates a PDF file at the desired path.\ntypst compile path\u002Fto\u002Fsource.typ path\u002Fto\u002Foutput.pdf\n```\n\nYou can also watch source files and automatically recompile on changes. This is\nfaster than compiling from scratch each time because Typst has incremental\ncompilation.\n```sh\n# Watches source files and recompiles on changes.\ntypst watch file.typ\n```\n\nTypst further allows you to add custom font paths for your project and list all\nof the fonts it discovered:\n```sh\n# Adds additional directories to search for fonts.\ntypst compile --font-path path\u002Fto\u002Ffonts file.typ\n\n# Lists all of the discovered fonts in the system and the given directory.\ntypst fonts --font-path path\u002Fto\u002Ffonts\n\n# Or via environment variable (Linux syntax).\nTYPST_FONT_PATHS=path\u002Fto\u002Ffonts typst fonts\n```\n\nFor other CLI subcommands and options, see below:\n```sh\n# Prints available subcommands and options.\ntypst help\n\n# Prints detailed usage of a subcommand.\ntypst help watch\n```\n\nIf you prefer an integrated IDE-like experience with autocompletion and instant \npreview, you can also check out our [free web app][app]. Alternatively, there is \na community-created language server called \n[Tinymist](https:\u002F\u002Fmyriad-dreamin.github.io\u002Ftinymist\u002F) which is integrated into \nvarious editor extensions.\n\n## Community\nThe main places where the community gathers are our [Forum][forum] and our\n[Discord server][discord]. The Forum is a great place to ask questions, help\nothers, and share cool things you created with Typst. The Discord server is more\nsuitable for quicker questions, discussions about contributing, or just to chat.\nWe'd be happy to see you there!\n\n[Typst Universe][universe] is where the community shares templates and packages.\nIf you want to share your own creations, you can submit them to our\n[package repository][packages].\n\nIf you had a bad experience in our community, please [reach out to us][contact].\n\n## Contributing\nWe love to see contributions from the community. If you experience bugs, feel\nfree to open an issue. If you would like to implement a new feature or bug fix,\nplease follow the steps outlined in the [contribution guide][contributing].\n\nTo build Typst yourself, first ensure that you have the\n[latest stable Rust][rust] installed. Then, clone this repository and build the\nCLI with the following commands:\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst\ncd typst\ncargo build --release\n```\n\nThe optimized binary will be stored in `target\u002Frelease\u002F`.\n\nAnother good way to contribute is by [sharing packages][packages] with the\ncommunity.\n\n## Pronunciation and Spelling\nIPA: \u002Ftaɪpst\u002F. \"Ty\" like in **Ty**pesetting and \"pst\" like in Hi**pst**er. When\nwriting about Typst, capitalize its name as a proper noun, with a capital \"T\".\n\n## Design Principles\nAll of Typst has been designed with three key goals in mind: Power,\nsimplicity, and performance. We think it's time for a system that matches the\npower of LaTeX, is easy to learn and use, all while being fast enough to realize\ninstant preview. To achieve these goals, we follow three core design principles:\n\n- **Simplicity through Consistency:**\n  If you know how to do one thing in Typst, you should be able to transfer that\n  knowledge to other things. If there are multiple ways to do the same thing,\n  one of them should be at a different level of abstraction than the other. E.g.\n  it's okay that `= Introduction` and `#heading[Introduction]` do the same thing\n  because the former is just syntax sugar for the latter.\n\n- **Power through Composability:**\n  There are two ways to make something flexible: Have a knob for everything or\n  have a few knobs that you can combine in many ways. Typst is designed with the\n  second way in mind. We provide systems that you can compose in ways we've\n  never even thought of. TeX is also in the second category, but it's a bit\n  low-level and therefore people use LaTeX instead. But there, we don't really\n  have that much composability. Instead, there's a package for everything\n  (`\\usepackage{knob}`).\n\n- **Performance through Incrementality:**\n  All Typst language features must accommodate for incremental compilation.\n  Luckily we have [`comemo`], a system for incremental compilation which does\n  most of the hard work in the background.\n\n## Acknowledgements\n\nWe'd like to thank everyone who is supporting Typst's development, be it via\n[GitHub sponsors] or elsewhere. In particular, special thanks[^1] go to:\n\n- [Posit](https:\u002F\u002Fposit.co\u002Fblog\u002Fposit-and-typst\u002F) for financing a full-time\n  compiler engineer\n- [NLnet](https:\u002F\u002Fnlnet.nl\u002F) for supporting work on Typst via multiple grants\n  through the [NGI Zero Core](https:\u002F\u002Fnlnet.nl\u002Fcore) fund:\n  - Work on [HTML export](https:\u002F\u002Fnlnet.nl\u002Fproject\u002FTypst-HTML\u002F)\n  - Work on [PDF accessibility](https:\u002F\u002Fnlnet.nl\u002Fproject\u002FTypst-Accessibility\u002F)\n- [Science & Startups](https:\u002F\u002Fwww.science-startups.berlin\u002F) for having financed\n  Typst development from January through June 2023 via the Berlin Startup\n  Scholarship\n- [Zerodha](https:\u002F\u002Fzerodha.tech\u002Fblog\u002F1-5-million-pdfs-in-25-minutes\u002F) for their\n  generous one-time sponsorship\n\n[^1]: This list only includes contributions for our open-source work that exceed\n    or are expected to exceed €10K.\n\n[docs]: https:\u002F\u002Ftypst.app\u002Fdocs\u002F\n[app]: https:\u002F\u002Ftypst.app\u002F\n[discord]: https:\u002F\u002Fdiscord.gg\u002F2uDybryKPe\n[forum]: https:\u002F\u002Fforum.typst.app\u002F\n[universe]: https:\u002F\u002Ftypst.app\u002Funiverse\u002F\n[tutorial]: https:\u002F\u002Ftypst.app\u002Fdocs\u002Ftutorial\u002F\n[show]: https:\u002F\u002Ftypst.app\u002Fdocs\u002Freference\u002Fstyling\u002F#show-rules\n[math]: https:\u002F\u002Ftypst.app\u002Fdocs\u002Freference\u002Fmath\u002F\n[syntax]: https:\u002F\u002Ftypst.app\u002Fdocs\u002Freference\u002Fsyntax\u002F\n[scripting]: https:\u002F\u002Ftypst.app\u002Fdocs\u002Freference\u002Fscripting\u002F\n[rust]: https:\u002F\u002Frustup.rs\u002F\n[releases]: https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst\u002Freleases\u002F\n[repology]: https:\u002F\u002Frepology.org\u002Fproject\u002Ftypst\u002Fversions\n[contact]: https:\u002F\u002Ftypst.app\u002Fcontact\n[architecture]: https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst\u002Fblob\u002Fmain\u002Fdocs\u002Fdev\u002Farchitecture.md\n[contributing]: https:\u002F\u002Fgithub.com\u002Ftypst\u002Ftypst\u002Fblob\u002Fmain\u002FCONTRIBUTING.md\n[packages]: https:\u002F\u002Fgithub.com\u002Ftypst\u002Fpackages\u002F\n[`comemo`]: https:\u002F\u002Fgithub.com\u002Ftypst\u002Fcomemo\u002F\n[snap]: https:\u002F\u002Fsnapcraft.io\u002Ftypst\n[GitHub sponsors]: https:\u002F\u002Fgithub.com\u002Fsponsors\u002Ftypst\u002F\n","Typst 是一个基于标记的排版系统，旨在提供与 LaTeX 相当的强大功能，同时更易于学习和使用。其核心功能包括内置的常见格式化任务标记、灵活的函数支持、紧密集成的脚本系统、数学公式排版及参考文献管理等。此外，Typst 通过增量编译技术实现了快速编译，并在出错时提供友好的错误提示信息。该项目主要采用 Rust 语言编写，适用于需要高质量文档输出但又不想面对 LaTeX 复杂性的用户场景，如学术论文写作、技术报告生成和个人博客发布等。",2,"2026-06-11 02:38:13","top_all"]