Compare commits

...

2 Commits

Author SHA1 Message Date
f030a7cbf8 Merge pull request 'fix: invalid url' (#3) from fix/invalid-url into main
Reviewed-on: #3
2024-10-13 06:52:24 +00:00
edf657157a fix: invalid url 2024-10-13 12:18:03 +05:30

@ -17,6 +17,7 @@ pub async fn handle(mut url: String, runtime: &TargetRuntime) -> anyhow::Result<
let mut htmls = vec![];
let mut root = handle_inner(&url, runtime).await?;
htmls.push(root.clone());
let mut links = vec![];
loop {
let parsed = Html::parse_document(&root);
@ -34,6 +35,8 @@ pub async fn handle(mut url: String, runtime: &TargetRuntime) -> anyhow::Result<
match val {
Some(val) => {
let next = val.value().attr("href").unwrap_or("#");
links.push(next.to_string());
url = format!("{}{}", url, next);
let next = handle_inner(&url, runtime).await?;
@ -51,5 +54,12 @@ pub async fn handle(mut url: String, runtime: &TargetRuntime) -> anyhow::Result<
.flatten()
.collect::<Vec<_>>();
let text = mds.join("\n");
let mut text = text.replace("../", "/");
links.into_iter().for_each(|v| {
let v = v.replace("../", "/");
let x = format!("{}{}", url, v);
text = text.replace(&v, &x);
});
Ok(text)
}