diff options
| author | Martin Haug <mhaug@live.de> | 2023-08-03 16:10:49 +0200 |
|---|---|---|
| committer | Martin Haug <mhaug@live.de> | 2023-08-03 16:10:49 +0200 |
| commit | 3a2fbcb49cf1dc8fa20e6809a0ee07fc6630b515 (patch) | |
| tree | 747a51fc1fc1d1c1ae2eb76d9d6842b0546690e7 /crates/typst-docs/src/lib.rs | |
| parent | 02d981ed1ce90f04b34272f6960f84a9917c4ae2 (diff) | |
Add shorthands to category pages
Diffstat (limited to 'crates/typst-docs/src/lib.rs')
| -rw-r--r-- | crates/typst-docs/src/lib.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/typst-docs/src/lib.rs b/crates/typst-docs/src/lib.rs index 7ed6dcfe..fae94a6f 100644 --- a/crates/typst-docs/src/lib.rs +++ b/crates/typst-docs/src/lib.rs @@ -214,6 +214,7 @@ pub struct CategoryModel { pub details: Html, pub kind: &'static str, pub items: Vec<CategoryItem>, + pub shorthands: Option<Vec<SymbolModel>>, } /// Details about a category item. @@ -324,9 +325,15 @@ fn category_page(resolver: &dyn Resolver, category: &str) -> PageModel { items.sort_by_cached_key(|item| item.name.clone()); // Add symbol pages. These are ordered manually. + let mut shorthands = vec![]; if category == "symbols" { for module in ["sym", "emoji"] { let subpage = symbol_page(resolver, &route, module); + let BodyModel::Symbols(model) = &subpage.body else { continue }; + shorthands.extend( + model.list.iter().filter(|symbol| symbol.shorthand.is_some()).cloned(), + ); + items.push(CategoryItem { name: module.into(), route: subpage.route.clone(), @@ -354,6 +361,7 @@ fn category_page(resolver: &dyn Resolver, category: &str) -> PageModel { details: Html::markdown(resolver, details(category)), kind, items, + shorthands: Some(shorthands), }), children, } @@ -651,6 +659,7 @@ fn types_page(resolver: &dyn Resolver, parent: &str) -> PageModel { details: Html::markdown(resolver, details("types")), kind: "Types", items, + shorthands: None, }), children, } @@ -823,7 +832,7 @@ pub struct SymbolsModel { } /// Details about a symbol. -#[derive(Debug, Serialize)] +#[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] pub struct SymbolModel { pub name: String, |
