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.
+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
+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.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
+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
+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
+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
+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.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
+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
+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
+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.
+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.
+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
+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.
+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)
+
+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
+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.
+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
+Open the link for more...
]]>
+
+ https://www.ondrovo.com/bread/2019-01-19.html
+
+
+
\ No newline at end of file