summaryrefslogtreecommitdiff
path: root/docs/src/lib.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2024-10-18 16:11:49 +0200
committerGitHub <noreply@github.com>2024-10-18 14:11:49 +0000
commit15a26c6c45bea9a539b0dfdb3999422d8ce1f558 (patch)
tree1f7196cfb335505d7495437a48d1df4ce3e4221c /docs/src/lib.rs
parent711a2d88079f0b3929bbb6be97bda52139e22aa1 (diff)
Split changelog (#5237)
Diffstat (limited to 'docs/src/lib.rs')
-rw-r--r--docs/src/lib.rs49
1 files changed, 27 insertions, 22 deletions
diff --git a/docs/src/lib.rs b/docs/src/lib.rs
index 4ee6d50d..a30ed088 100644
--- a/docs/src/lib.rs
+++ b/docs/src/lib.rs
@@ -91,8 +91,7 @@ pub fn provide(resolver: &dyn Resolver) -> Vec<PageModel> {
tutorial_pages(resolver),
reference_pages(resolver),
guide_pages(resolver),
- packages_page(resolver),
- md_page(resolver, base, load!("changelog.md")),
+ changelog_pages(resolver),
]
}
@@ -120,11 +119,11 @@ pub trait Resolver {
fn md_page(resolver: &dyn Resolver, parent: &str, md: &str) -> PageModel {
assert!(parent.starts_with('/') && parent.ends_with('/'));
let html = Html::markdown(resolver, md, Some(0));
- let title: EcoString = html.title().expect("chapter lacks a title").into();
+ let title = html.title().expect("chapter lacks a title");
PageModel {
- route: eco_format!("{parent}{}/", urlify(&title)),
- title,
- description: html.description().unwrap(),
+ route: eco_format!("{parent}{}/", urlify(title)),
+ title: title.into(),
+ description: html.description().expect("chapter lacks a description"),
part: None,
outline: html.outline(),
body: BodyModel::Html(html),
@@ -179,21 +178,27 @@ fn guide_pages(resolver: &dyn Resolver) -> PageModel {
page
}
-/// Build the packages section.
-fn packages_page(resolver: &dyn Resolver) -> PageModel {
- PageModel {
- route: eco_format!("{}packages/", resolver.base()),
- title: "Packages".into(),
- description: "Packages for Typst.".into(),
- part: None,
- outline: vec![],
- body: BodyModel::Packages(Html::markdown(
- resolver,
- load!("reference/packages.md"),
- Some(1),
- )),
- children: vec![],
- }
+/// Build the changelog section.
+fn changelog_pages(resolver: &dyn Resolver) -> PageModel {
+ let mut page = md_page(resolver, resolver.base(), load!("changelog/welcome.md"));
+ let base = format!("{}changelog/", resolver.base());
+ page.children = vec![
+ md_page(resolver, &base, load!("changelog/unreleased.md")),
+ md_page(resolver, &base, load!("changelog/0.11.1.md")),
+ md_page(resolver, &base, load!("changelog/0.11.0.md")),
+ md_page(resolver, &base, load!("changelog/0.10.0.md")),
+ md_page(resolver, &base, load!("changelog/0.9.0.md")),
+ md_page(resolver, &base, load!("changelog/0.8.0.md")),
+ md_page(resolver, &base, load!("changelog/0.7.0.md")),
+ md_page(resolver, &base, load!("changelog/0.6.0.md")),
+ md_page(resolver, &base, load!("changelog/0.5.0.md")),
+ md_page(resolver, &base, load!("changelog/0.4.0.md")),
+ md_page(resolver, &base, load!("changelog/0.3.0.md")),
+ md_page(resolver, &base, load!("changelog/0.2.0.md")),
+ md_page(resolver, &base, load!("changelog/0.1.0.md")),
+ md_page(resolver, &base, load!("changelog/earlier.md")),
+ ];
+ page
}
/// Create a page for a category.
@@ -707,7 +712,7 @@ pub fn urlify(title: &str) -> EcoString {
.chars()
.map(|c| c.to_ascii_lowercase())
.map(|c| match c {
- 'a'..='z' | '0'..='9' => c,
+ 'a'..='z' | '0'..='9' | '.' => c,
_ => '-',
})
.collect()