From 879580df39b89f82734bdb9c167e6e789209be7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Fri, 25 Jan 2019 23:38:14 +0100 Subject: [PATCH] added feed generation --- Cargo.lock | 231 +++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 + src/main.rs | 59 ++++++++++--- web/.gitignore | 3 +- web/feed.xml | 198 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 482 insertions(+), 11 deletions(-) create mode 100644 web/feed.xml diff --git a/Cargo.lock b/Cargo.lock index 1febf09..b3807cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,14 +6,48 @@ dependencies = [ "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "autocfg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "backtrace" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "backtrace-sys" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bread" version = "0.1.0" dependencies = [ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "markdown 0.2.0 (git+https://github.com/johannhof/markdown.rs)", + "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rss 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cc" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "cfg-if" version = "0.1.6" @@ -29,6 +63,98 @@ dependencies = [ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "darling" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "darling_core 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "darling_macro 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "darling_core" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ident_case 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "darling_macro" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "darling_core 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "derive_builder" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "darling 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "derive_builder_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "derive_builder_core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "darling 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "encoding_rs" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "failure" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "failure_derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "fnv" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "ident_case" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "lazy_static" version = "0.2.11" @@ -44,6 +170,14 @@ name = "libc" version = "0.2.47" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "log" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "markdown" version = "0.2.0" @@ -76,11 +210,43 @@ name = "num-traits" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "pipeline" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "proc-macro2" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "quick-xml" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "quote" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "redox_syscall" version = "0.1.51" @@ -106,6 +272,42 @@ dependencies = [ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rss" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "derive_builder 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "syn" +version = "0.15.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "synstructure" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "thread_local" version = "0.3.6" @@ -129,6 +331,11 @@ name = "ucd-util" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "utf8-ranges" version = "1.0.2" @@ -155,22 +362,46 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" +"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" +"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" +"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" +"checksum darling 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "540f3246eaeecb3fc7ff9ac258f8958a57d3d87a637466fd5ad077663eabae80" +"checksum darling_core 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "69e5f4498f3c21a65d0477542d691dac79b0f44048f5174901fdbf1b676b94b7" +"checksum darling_macro 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b8c04b3c08354a7d8a70d633931852de9e11b664881d8dd4d686e6bc7761e7fd" +"checksum derive_builder 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "15d9e4f0be540b522e95c1de6200be0b12946fdd8408c093a1948de638e16f55" +"checksum derive_builder_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1cffc940f53a89045824e676302b840a5a60d447560704d352316e2039125a2" +"checksum encoding_rs 0.8.14 (registry+https://github.com/rust-lang/crates.io-index)" = "a69d152eaa438a291636c1971b0a370212165ca8a75759eb66818c5ce9b538f7" +"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" +"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" +"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum ident_case 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c9826188e666f2ed92071d2dadef6edc430b11b158b5b2b3f4babbcc891eaaa" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)" = "48450664a984b25d5b479554c29cc04e3150c97aa4c01da5604a2d4ed9151476" +"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum markdown 0.2.0 (git+https://github.com/johannhof/markdown.rs)" = "" "checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" +"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum pipeline 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d15b6607fa632996eb8a17c9041cb6071cb75ac057abd45dece578723ea8c7c0" +"checksum proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)" = "38fddd23d98b2144d197c0eca5705632d4fe2667d14a6be5df8934f8d74f1978" +"checksum quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98d8d2d671bd29c6122a98b45ce3106391e89ba378f731274de677f1eff06e5f" +"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" "checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" "checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" "checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" +"checksum rss 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afa0a5ea775a1ff4d94ac2e4fc504d7ff3f0f0a378ab05a40621ee8af42d8aeb" +"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" +"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" +"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" +"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" diff --git a/Cargo.toml b/Cargo.toml index 4189129..4e66912 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,3 +7,5 @@ edition = "2018" [dependencies] markdown = { git = "https://github.com/johannhof/markdown.rs" } chrono = "0.4" +rss = "1.6.1" +percent-encoding = "1.0.1" diff --git a/src/main.rs b/src/main.rs index 660dda9..1e9bc82 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,8 @@ use chrono; use chrono::NaiveDate; use markdown; use std::fs::OpenOptions; +use rss::{Channel, ChannelBuilder, Item, ItemBuilder, Guid}; +use percent_encoding::{utf8_percent_encode, DEFAULT_ENCODE_SET}; #[derive(Debug)] struct Bread { @@ -94,28 +96,61 @@ fn main() { let mut thumbs = String::new(); + let mut channel : Channel = ChannelBuilder::default() + .title("Piggo's Bread Gallery") + .link("https://www.ondrovo.com/bread") + .description("Sourdough feed") + .build() + .unwrap(); + + let mut channel_items = Vec::::new(); + for bread in &breads { let date = bread.date.format("%Y/%m/%d").to_string(); let detail_file = bread.date.format("%Y-%m-%d.html").to_string(); let (img_path, img_alt) = bread.thumb_photo(); + let note = if bread.note.is_empty() { "There's no note about this bread." } else { &bread.note }; + + let image_path_encoded = utf8_percent_encode(img_path, DEFAULT_ENCODE_SET).to_string(); - let thumb = thumb_tpl - .replace("{detail_url}", &detail_file) - .replace("{img_src}", &img_path) - .replace("{img_alt}", &img_alt) - .replace("{title}", &date); + // bread pic for the thumbnails page + { + let thumb = thumb_tpl + .replace("{detail_url}", &detail_file) + .replace("{img_src}", &image_path_encoded) + .replace("{img_alt}", &img_alt) + .replace("{title}", &date); + + thumbs.push_str(&thumb); + } - thumbs.push_str(&thumb); + // add to rss + { + let image_url : String = channel.link().to_string() + "/" + &image_path_encoded; + + let link : String = channel.link().to_string() + "/" + &detail_file; + let mut guid = Guid::default(); + guid.set_value(link.clone()); + guid.set_permalink(true); + + channel_items.push(ItemBuilder::default() + .title(date.clone()) + .link(link.clone()) + .description(note.to_string() + &format!("\"{}\"

Open the link for more...

", image_url, img_alt)) + .guid(guid) + .build().unwrap()); + } + // generate the detail page { let detail = detail_tpl .replace("{title}", &date) - .replace("{note}", if bread.note.is_empty() { "There's no note about this bread." } else { &bread.note }); + .replace("{note}", note); let mut pics = String::new(); for img in &bread.images { - pics.push_str(&"".replace("{src}", img.to_str().unwrap())) + pics.push_str(&format!("", src=&utf8_percent_encode(img.to_str().unwrap(), DEFAULT_ENCODE_SET).to_string())) } let detail = detail.replace("{images}", &pics); @@ -125,12 +160,16 @@ fn main() { } } - // TODO generate a RSS feed - let main = main_tpl.replace("{breads}", &thumbs); { let mut f = OpenOptions::new().write(true).truncate(true).create(true).open(web_path.join("index.html")).unwrap(); f.write(main.as_bytes()).unwrap(); } + + { + let f = OpenOptions::new().write(true).truncate(true).create(true).open(web_path.join("feed.xml")).unwrap(); + channel.set_items(channel_items); + channel.pretty_write_to(f, b' ', 2).unwrap(); + } } diff --git a/web/.gitignore b/web/.gitignore index 36f1ae9..b23c7cb 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1 +1,2 @@ -./*.html \ No newline at end of file +*.html +!templates/* \ No newline at end of file diff --git a/web/feed.xml b/web/feed.xml new file mode 100644 index 0000000..d5318a7 --- /dev/null +++ b/web/feed.xml @@ -0,0 +1,198 @@ + + + Piggo's Bread Gallery + https://www.ondrovo.com/bread + Sourdough feed + + 2018/09/19 + https://www.ondrovo.com/bread/2018-09-19.html + + This was my first bread ever.

+ +

I didn’t have a sourdough starter yet, so it used store-bought yeast. It looked okay, tasted mediocre.

+dgs - 1 sep 19.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-09-19.html +
+ + 2018/09/26 + https://www.ondrovo.com/bread/2018-09-26.html + + My first sourdough bread. I added coriander seeds to it. Pretty good

+dgs - 3 sep 26.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-09-26.html +
+ + 2018/09/30 + https://www.ondrovo.com/bread/2018-09-30.html + + There's no note about this bread.dgs - 5 sep 30.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-09-30.html +
+ + 2018/10/04 + https://www.ondrovo.com/bread/2018-10-04.html + + Tried cutting the dough blob before baking, like I saw in some tutorial. I think I overdid it a bit

+dgs - 9 oct 4.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-10-04.html +
+ + 2018/10/09 + https://www.ondrovo.com/bread/2018-10-09.html + + a bit flat, but tasty

+dgs - 10 oct 9.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-10-09.html +
+ + 2018/10/15 + https://www.ondrovo.com/bread/2018-10-15.html + + nice crust

+dgs - 12 oct 15.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-10-15.html +
+ + 2018/10/20 + https://www.ondrovo.com/bread/2018-10-20.html + + I made the dough too runny–too much water–so it spilled over the whole baking form. That’s why it’s round. I dont remember what it tasted like, probably average

+dgs - 13 oct 20.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-10-20.html +
+ + 2018/10/24 + https://www.ondrovo.com/bread/2018-10-24.html + + There's no note about this bread.dgs - 14 oct 24.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-10-24.html +
+ + 2018/10/30 + https://www.ondrovo.com/bread/2018-10-30.html + + this came out a bit more "rustic" than usual. the cracked crust looks nice, but it makes slicing difficult

+dgs - 15 oct 30.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-10-30.html +
+ + 2018/11/06 + https://www.ondrovo.com/bread/2018-11-06.html + + Experimenting with chia seeds. Tasted okay, but a lot of the seeds didn’t stick to the bread. Maybe I should’ve put them in water for a bit first.. they get all slimy in water, might stick better

+dgs - 17 nov 6.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-11-06.html +
+ + 2018/11/20 + https://www.ondrovo.com/bread/2018-11-20.html + + cracked crust again

+dgs - 18 - nov 20.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-11-20.html +
+ + 2018/12/28 + https://www.ondrovo.com/bread/2018-12-28.html + + I didn’t bake any bread for almost a month and the starter culture went bad. This bread didn’t rise at all and was super sour. I threw the whole thing out and refreshed the starter for about a week.

+pleroma - 2018-12-28.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2018-12-28.html +
+ + 2019/01/02 + https://www.ondrovo.com/bread/2019-01-02.html + + First bread with the renewed starter culture. Didn’t rise much, but tasted okay.

+pleroma - 2019-01-02.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2019-01-02.html +
+ + 2019/01/06 + https://www.ondrovo.com/bread/2019-01-06.html + + that’s more like it

+pleroma - 2019-01-06.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2019-01-06.html +
+ + 2019/01/08 + https://www.ondrovo.com/bread/2019-01-08.html + + trying a new recipe - I may have finally found the right ratio of rye vs wheat flour. It’s quite simple - 1:1. Baked with 200g of each and one spoon of salt. Note the starter is rye only, so it counts into the rye amount.

+pleroma - 2019-01-08.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2019-01-08.html +
+ + 2019/01/10 + https://www.ondrovo.com/bread/2019-01-10.html + + Trying to bake a baguette with a recipe I got from Dashie. It tasted okay, but I’ll stick with bread.

+ +

the weird shape is due to limited baking space - I baked it (like all the other breads) in a Remoska.

+ +

here’s the recipe:

+ +
    +
  • 340ml water ~25°C
  • + +
  • 2 tablespoon of oil (used sunflower one)
  • + +
  • 2 coffee spoons of salt
  • + +
  • 4 coffee spoon of sugar
  • + +
  • 560gr of T55 type flour
  • + +
  • 5g of instant yeast (bought in a bunch of small bags)
  • +
+pleroma - 2019-01-10 a.jpg

Open the link for more...

]]> + + https://www.ondrovo.com/bread/2019-01-10.html +
+ + 2019/01/11 + https://www.ondrovo.com/bread/2019-01-11.html + + this one was very good

+pleroma - 2019-01-11 a.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2019-01-11.html +
+ + 2019/01/14 + https://www.ondrovo.com/bread/2019-01-14.html + + nice texture, not cracked at all. this is because I added some water into the baking form, so it made steam. like you’re supposed to.

+pleroma - 2019-01-14.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2019-01-14.html +
+ + 2019/01/19 + https://www.ondrovo.com/bread/2019-01-19.html + + made the dough too dry, so it couldn’t rise properly. also didn’t do the steam thing. all in all a disaster

+ +

but it tasted okay regardless

+pleroma - 2019-01-19 a.jpg

Open the link for more...

]]> +
+ https://www.ondrovo.com/bread/2019-01-19.html +
+ + \ No newline at end of file