summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-03-14 12:59:16 +1300
committerBen Bridle <ben@derelict.engineering>2025-03-14 12:59:41 +1300
commita9dab5cd4fd71e06d705cd1612588568502ddc07 (patch)
tree1636397063026c5173ef73d2015226bf92466510 /src
parent8b7affdd9f256f38b99d416c2d7ba3a4a76cc6ad (diff)
downloadtoaster-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.rs7
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 } => {