Compare commits

...

15 Commits

Author SHA1 Message Date
hpcfzl
bccf16c643
Merge a1c01dff7f91543ad8f54e5c3845d7e5ae2cd535 into b790c6d59ceaf7a809cc24b60c1f1509807470e2 2025-07-18 16:40:40 +02:00
Erik
b790c6d59c
Add rust-analyzer to flake devShell (#6618) 2025-07-18 14:36:10 +00:00
Malo
b1c79b50d4
Fix documentation oneliners (#6608) 2025-07-18 13:25:17 +00:00
Patrick Massot
4629ede020
Mention Tinymist in README.md (#6601) 2025-07-18 13:21:36 +00:00
hpcfzl
a1c01dff7f
Merge branch 'typst:main' into patch-1 2025-07-17 13:22:55 +02:00
hpcfzl
941c3123af
Update query.rs
Fixes typo `The `query` functions lets`
2025-07-16 21:01:38 +02:00
hpcfzl
d45a621358
Update 2-feature.yml
Replaces all **1** occurrence of *invisible* emoji
2025-07-16 13:29:32 +02:00
hpcfzl
68bf10498f
Update page.rs
Replaces all **1** occurrence of *invisible* emoji
2025-07-16 13:25:16 +02:00
hpcfzl
6e7049ba32
Update table.rs
Replaces all **1** occurrence of *invisible* emoji
2025-07-16 13:19:32 +02:00
hpcfzl
c98c72847d
Update guide-for-latex-users.md
Replaces **2** occurrences of *invisible* emojis
2025-07-16 12:48:17 +02:00
hpcfzl
7eefc19441
Update guide-for-latex-users.md
Removes `or a `/``
2025-07-16 12:23:23 +02:00
hpcfzl
8571158b50
Merge branch 'typst:main' into patch-1 2025-07-16 11:26:36 +02:00
hpcfzl
2fbed47c3e
Update guide-for-latex-users.md
Adds `tabularray`
2025-07-15 21:34:36 +02:00
hpcfzl
eabedfc61c
Update guide-for-latex-users.md
Removes a double space
2025-07-15 21:29:42 +02:00
hpcfzl
615ded766b
Update guide-for-latex-users.md
Removes `Unlike LaTeX`
2025-07-15 21:19:18 +02:00
10 changed files with 46 additions and 21 deletions

View File

@ -1,4 +1,4 @@
name: 🪴 Compiler Feature Request
name: 🌻 Compiler Feature Request
description: For feature requests for the Typst compiler
title: Write a short and descriptive title!
labels:

View File

@ -173,8 +173,11 @@ typst help
typst help watch
```
If you prefer an integrated IDE-like experience with autocompletion and instant
preview, you can also check out [Typst's free web app][app].
If you prefer an integrated IDE-like experience with autocompletion and instant
preview, you can also check out our [free web app][app]. Alternatively, there is
a community-created language server called
[Tinymist](https://myriad-dreamin.github.io/tinymist/) which is integrated into
various editor extensions.
## Community
The main places where the community gathers are our [Forum][forum] and our

View File

@ -6,7 +6,7 @@ use crate::foundations::{func, Array, Context, LocatableSelector, Value};
/// Finds elements in the document.
///
/// The `query` functions lets you search your document for elements of a
/// The `query` function lets you search your document for elements of a
/// particular type or with a particular label. To use it, you first need to
/// ensure that [context] is available.
///

View File

@ -340,7 +340,7 @@ pub struct PageElem {
/// This content will overlay the page's body.
///
/// ```example
/// #set page(foreground: text(24pt)[🥸])
/// #set page(foreground: text(24pt)[🤓])
///
/// Reviewer 2 has marked our paper
/// "Weak Reject" because they did

View File

@ -625,7 +625,7 @@ pub struct TableVLine {
/// cell(align: left)[🌴🚗],
/// cell(
/// inset: 0.06em,
/// text(1.62em)[🛖🌅🌊],
/// text(1.62em)[🏝️🌅🌊],
/// ),
/// )
/// ```

View File

@ -797,7 +797,9 @@ impl Color {
components
}
/// Returns the constructor function for this color's space:
/// Returns the constructor function for this color's space.
///
/// Returns one of:
/// - [`luma`]($color.luma)
/// - [`oklab`]($color.oklab)
/// - [`oklch`]($color.oklch)

View File

@ -33,8 +33,8 @@ collaborative editor and run Typst in your browser, no installation required.
If you choose to use Typst on your computer instead, you can download the
compiler as a single, small binary which any user can run, no root privileges
required. Unlike LaTeX, packages are downloaded when you first use them and
then cached locally, keeping your Typst installation lean. You can use your own
required. Packages are downloaded when you first use them and then cached
locally, keeping your Typst installation lean. You can use your own
editor and decide where to store your files with the local compiler.
## How do I create a new, empty document? { #getting-started }
@ -459,7 +459,7 @@ and their corresponding Typst functions.
| LaTeX Package | Typst Alternative |
|:--------------------------------|:-------------------------------------------|
| graphicx, svg | [`image`] function |
| tabularx | [`table`], [`grid`] functions |
| tabularx, tabularray | [`table`], [`grid`] functions |
| fontenc, inputenc, unicode-math | Just start writing! |
| babel, polyglossia | [`text`]($text.lang) function: `[#set text(lang: "zh")]` |
| amsmath | [Math mode]($category/math) |
@ -550,7 +550,7 @@ $ f(x) = (x + 1) / x $
to include more than one value in a sub- or superscript, enclose their contents
in parentheses: `{$x_(a -> epsilon)$}`.
Since variables in math mode do not need to be prepended with a `#` or a `/`,
Since variables in math mode do not need to be prepended with a `#`,
you can also call functions without these special characters:
```example
@ -580,8 +580,8 @@ their call with a `#`. Nobody can stop you from using rectangles or emoji as
your variables anymore:
```example
$ sum^10_(🥸=1)
#rect(width: 4mm, height: 2mm)/🥸
$ sum^10_(🤓=1)
#rect(width: 4mm, height: 2mm)/🤓
= 🧠 maltese $
```

View File

@ -242,7 +242,7 @@ fn category_page(resolver: &dyn Resolver, category: Category) -> PageModel {
items.push(CategoryItem {
name: group.name.clone(),
route: subpage.route.clone(),
oneliner: oneliner(docs).into(),
oneliner: oneliner(docs),
code: true,
});
children.push(subpage);
@ -296,7 +296,7 @@ fn category_page(resolver: &dyn Resolver, category: Category) -> PageModel {
items.push(CategoryItem {
name: name.into(),
route: subpage.route.clone(),
oneliner: oneliner(func.docs().unwrap_or_default()).into(),
oneliner: oneliner(func.docs().unwrap_or_default()),
code: true,
});
children.push(subpage);
@ -306,7 +306,7 @@ fn category_page(resolver: &dyn Resolver, category: Category) -> PageModel {
items.push(CategoryItem {
name: ty.short_name().into(),
route: subpage.route.clone(),
oneliner: oneliner(ty.docs()).into(),
oneliner: oneliner(ty.docs()),
code: true,
});
children.push(subpage);
@ -637,7 +637,7 @@ fn group_page(
let item = CategoryItem {
name: group.name.clone(),
route: model.route.clone(),
oneliner: oneliner(&group.details).into(),
oneliner: oneliner(&group.details),
code: false,
};
@ -772,8 +772,24 @@ pub fn urlify(title: &str) -> EcoString {
}
/// Extract the first line of documentation.
fn oneliner(docs: &str) -> &str {
docs.lines().next().unwrap_or_default()
fn oneliner(docs: &str) -> EcoString {
let paragraph = docs.split("\n\n").next().unwrap_or_default();
let mut depth = 0;
let mut period = false;
let mut end = paragraph.len();
for (i, c) in paragraph.char_indices() {
match c {
'(' | '[' | '{' => depth += 1,
')' | ']' | '}' => depth -= 1,
'.' if depth == 0 => period = true,
c if period && c.is_whitespace() && !docs[..i].ends_with("e.g.") => {
end = i;
break;
}
_ => period = false,
}
}
EcoString::from(&docs[..end]).replace("\r\n", " ").replace("\n", " ")
}
/// The order of types in the documentation.

View File

@ -86,7 +86,7 @@ pub struct FuncModel {
pub name: EcoString,
pub title: &'static str,
pub keywords: &'static [&'static str],
pub oneliner: &'static str,
pub oneliner: EcoString,
pub element: bool,
pub contextual: bool,
pub deprecation: Option<&'static str>,
@ -139,7 +139,7 @@ pub struct TypeModel {
pub name: &'static str,
pub title: &'static str,
pub keywords: &'static [&'static str],
pub oneliner: &'static str,
pub oneliner: EcoString,
pub details: Html,
pub constructor: Option<FuncModel>,
pub scope: Vec<FuncModel>,

View File

@ -127,6 +127,10 @@
checks = self'.checks;
inputsFrom = [ typst ];
buildInputs = with pkgs; [
rust-analyzer
];
packages = [
# A script for quickly running tests.
# See https://github.com/typst/typst/blob/main/tests/README.md#making-an-alias