summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cargo/config.toml13
-rw-r--r--.gitignore4
-rw-r--r--src/page.rs10
3 files changed, 26 insertions, 1 deletions
diff --git a/.cargo/config.toml b/.cargo/config.toml
new file mode 100644
index 0000000..f6e3e59
--- /dev/null
+++ b/.cargo/config.toml
@@ -0,0 +1,13 @@
+[profile.release]
+jobs = 2
+opt-level = "s"
+lto = "thin"
+codegen-units = 1
+panic = "abort"
+debug = false
+
+[build]
+rustflags = [
+ "-C", "target-cpu=native",
+ "-C", "target-feature=+aes",
+]
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b781b2f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/public
+/content
+todo.md
+/target
diff --git a/src/page.rs b/src/page.rs
index c81887d..2ee065a 100644
--- a/src/page.rs
+++ b/src/page.rs
@@ -63,7 +63,7 @@ pub fn parse_page(source_path: &PathBuf) -> anyhow::Result<Page> {
let slug = meta.title.to_lowercase().replace(' ', "-");
let output_path = PathBuf::from("public").join(&slug).join("index.html");
-
+ save_file(&output_path, &html)?;
Ok (Page {
meta,
source_path: source_path.clone(),
@@ -85,3 +85,11 @@ pub fn render_markdown(input: &str) -> String {
html::push_html(&mut out, parser);
out
}
+
+pub fn save_file(output_path: &PathBuf, content: &str) -> anyhow::Result<()> {
+ if let Some(public) = output_path.parent() {
+ fs::create_dir_all(public)?;
+ }
+ fs::write(output_path, content)?;
+ Ok(())
+}