Make permalinks out of co-located images
This commit is contained in:
parent
ef543b3d2b
commit
d69ada09d2
|
@ -108,7 +108,15 @@ pub fn markdown_to_html(content: &str, context: &RenderContext) -> Result<(Strin
|
||||||
highlighter = None;
|
highlighter = None;
|
||||||
Event::Html(Owned("</pre>".to_string()))
|
Event::Html(Owned("</pre>".to_string()))
|
||||||
},
|
},
|
||||||
// Need to handle relative links
|
Event::Start(Tag::Image(src, title)) => {
|
||||||
|
if is_colocated_asset_link(&src) {
|
||||||
|
return Event::Start(
|
||||||
|
Tag::Image(Owned(format!("{}{}", context.current_page_permalink, src)), title)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Event::Start(Tag::Link(src, title))
|
||||||
|
},
|
||||||
Event::Start(Tag::Link(link, title)) => {
|
Event::Start(Tag::Link(link, title)) => {
|
||||||
// A few situations here:
|
// A few situations here:
|
||||||
// - it could be a relative link (starting with `./`)
|
// - it could be a relative link (starting with `./`)
|
||||||
|
|
|
@ -492,9 +492,8 @@ fn can_make_valid_relative_link_in_header() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_make_permalinks_with_colocated_assets() {
|
fn can_make_permalinks_with_colocated_assets_for_link() {
|
||||||
let permalinks_ctx = HashMap::new();
|
let permalinks_ctx = HashMap::new();
|
||||||
let config = Config::default();
|
let config = Config::default();
|
||||||
let context = RenderContext::new(&GUTENBERG_TERA, &config, "https://vincent.is/about/", &permalinks_ctx, InsertAnchor::None);
|
let context = RenderContext::new(&GUTENBERG_TERA, &config, "https://vincent.is/about/", &permalinks_ctx, InsertAnchor::None);
|
||||||
|
@ -504,3 +503,15 @@ fn can_make_permalinks_with_colocated_assets() {
|
||||||
"<p><a href=\"https://vincent.is/about/image.jpg\">an image</a></p>\n"
|
"<p><a href=\"https://vincent.is/about/image.jpg\">an image</a></p>\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_make_permalinks_with_colocated_assets_for_image() {
|
||||||
|
let permalinks_ctx = HashMap::new();
|
||||||
|
let config = Config::default();
|
||||||
|
let context = RenderContext::new(&GUTENBERG_TERA, &config, "https://vincent.is/about/", &permalinks_ctx, InsertAnchor::None);
|
||||||
|
let res = render_content("![alt text](image.jpg)", &context).unwrap();
|
||||||
|
assert_eq!(
|
||||||
|
res.0,
|
||||||
|
"<p><img src=\"https://vincent.is/about/image.jpg\" alt=\"alt text\" /></p>\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue