Skip to content

Commit 23dbfcf

Browse files
committed
indicate non-cannonical urls
1 parent fff42a4 commit 23dbfcf

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

builder/src/website_builder.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::io::Write;
33
use std::path::PathBuf;
44
use itertools::Itertools;
55
use lewp_css::domain::at_rules::font_face::FontDisplay::fallback;
6-
use regex::Regex;
6+
use regex::{Regex, Replacer};
77

88
use crate::builder::BuildProcedureBuildError;
99
use crate::fs_tree::ParsedFsEntry;
@@ -49,10 +49,15 @@ impl Website {
4949
if path.ends_with(".html") && !path.ends_with("index.html") {
5050
let name = path.split('/').last().unwrap().strip_suffix(".html").unwrap();
5151
println!("> {}", &path);
52+
53+
let cannonical = format!("<link rel=\"canonical\" href=\"/{path}\" />");
54+
let content = String::from_utf8(content.clone()).expect("html files are utf8")
55+
.replacen("</head>", format!("{cannonical}</head>").as_str(), 1)
56+
.as_bytes().to_vec();
5257

5358
let idx_path = path.replace(format!("{name}.html").as_str(), format!("{name}/index.html").as_str());
5459
println!(" - {}", &idx_path);
55-
aliases.push((PathBuf::from(idx_path), content.clone()));
60+
aliases.push((PathBuf::from(idx_path), content));
5661
}
5762
}
5863
println!("> {} aliases created", &aliases.len());

0 commit comments

Comments
 (0)