diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-03-14 12:59:16 +1300 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-03-14 12:59:41 +1300 |
commit | a9dab5cd4fd71e06d705cd1612588568502ddc07 (patch) | |
tree | 1636397063026c5173ef73d2015226bf92466510 /src | |
parent | 8b7affdd9f256f38b99d416c2d7ba3a4a76cc6ad (diff) | |
download | toaster-a9dab5cd4fd71e06d705cd1612588568502ddc07.zip |
Support labelled internal links
The latest version of the markdown library supports labelled internal
links, which allows an internal link to point to a page but to display
with a different name.
Diffstat (limited to 'src')
-rw-r--r-- | src/generate_html.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/generate_html.rs b/src/generate_html.rs index eea25dc..55bd8ef 100644 --- a/src/generate_html.rs +++ b/src/generate_html.rs @@ -297,8 +297,11 @@ fn line_to_html(line: &Line, page: &Page, website: &Website) -> String { let text = &sanitize_text(text, false); html.push_str(&format!("<code>{text}</code>")) } Token::Math(text) => { let text = &sanitize_text(text, false); html.push_str(&format!("<span class='math'>{text}</span>")) } - Token::InternalLink(name) => { - let ParsedLink { path, class, label } = parse_internal_link(name, page, website); + Token::InternalLink{ label: link_label, path } => { + let ParsedLink { path, class, mut label } = parse_internal_link(path, page, website); + if !link_label.is_empty() { + label = link_label.to_string(); + } html.push_str(&format!("<a href='{path}' class='{class}'>{label}</a>")) } Token::ExternalLink { label, path } => { |