initial
@@ -0,0 +1,3 @@
|
|||||||
|
/target
|
||||||
|
**/*.rs.bk
|
||||||
|
.idea/
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
[[package]]
|
||||||
|
name = "aho-corasick"
|
||||||
|
version = "0.6.9"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"memchr 2.1.3 (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)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg-if"
|
||||||
|
version = "0.1.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "chrono"
|
||||||
|
version = "0.4.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazy_static"
|
||||||
|
version = "0.2.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lazy_static"
|
||||||
|
version = "1.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libc"
|
||||||
|
version = "0.2.47"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "markdown"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "git+https://github.com/johannhof/markdown.rs#788aa51284ef71e18bf237f91a4c7cb77de6dbaf"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"pipeline 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memchr"
|
||||||
|
version = "2.1.3"
|
||||||
|
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)",
|
||||||
|
"libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-integer"
|
||||||
|
version = "0.1.39"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num-traits"
|
||||||
|
version = "0.2.6"
|
||||||
|
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 = "redox_syscall"
|
||||||
|
version = "0.1.51"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex"
|
||||||
|
version = "0.2.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "regex-syntax"
|
||||||
|
version = "0.5.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "thread_local"
|
||||||
|
version = "0.3.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time"
|
||||||
|
version = "0.1.42"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"libc 0.2.47 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ucd-util"
|
||||||
|
version = "0.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "utf8-ranges"
|
||||||
|
version = "1.0.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi"
|
||||||
|
version = "0.3.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-i686-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winapi-x86_64-pc-windows-gnu"
|
||||||
|
version = "0.4.0"
|
||||||
|
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 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 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 markdown 0.2.0 (git+https://github.com/johannhof/markdown.rs)" = "<none>"
|
||||||
|
"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 pipeline 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d15b6607fa632996eb8a17c9041cb6071cb75ac057abd45dece578723ea8c7c0"
|
||||||
|
"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 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 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"
|
||||||
|
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[package]
|
||||||
|
name = "bread"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Ondřej Hruška <ondra@ondrovo.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
markdown = { git = "https://github.com/johannhof/markdown.rs" }
|
||||||
|
chrono = "0.4"
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
use std::env;
|
||||||
|
use std::fs;
|
||||||
|
use std::fs::DirEntry;
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::prelude::*;
|
||||||
|
use std::path::{Path, PathBuf};
|
||||||
|
use chrono;
|
||||||
|
use chrono::NaiveDate;
|
||||||
|
use markdown;
|
||||||
|
use std::fs::OpenOptions;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct Bread {
|
||||||
|
path: PathBuf,
|
||||||
|
rel_path: PathBuf,
|
||||||
|
date: chrono::NaiveDate,
|
||||||
|
note: String,
|
||||||
|
images: Vec<PathBuf>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Bread {
|
||||||
|
fn thumb_photo(&self) -> (&str, &str) {
|
||||||
|
let first_img : &PathBuf = self.images.get(0).unwrap();
|
||||||
|
|
||||||
|
let img_path = first_img.to_str().unwrap();
|
||||||
|
let img_alt = first_img.file_name().unwrap().to_str().unwrap();
|
||||||
|
|
||||||
|
(img_path, img_alt)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse(base_dir : &PathBuf, bread_dir : &DirEntry) -> Result<Bread, std::io::Error> {
|
||||||
|
let bpath = bread_dir.path();
|
||||||
|
let mut note = String::new();
|
||||||
|
|
||||||
|
let mut note_path = bpath.join("note.txt");
|
||||||
|
|
||||||
|
// try a md one as a fallback
|
||||||
|
if !note_path.exists() {
|
||||||
|
note_path = bpath.join("note.md");
|
||||||
|
}
|
||||||
|
|
||||||
|
if note_path.exists() {
|
||||||
|
let mut note_file = File::open(note_path)?;
|
||||||
|
note_file.read_to_string(&mut note)?;
|
||||||
|
note = markdown::to_html(¬e);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut bread_files: Vec<DirEntry> = fs::read_dir(&bpath)?.map(|e| e.unwrap()).collect();
|
||||||
|
bread_files.sort_by(|x, y| x.file_name().cmp(&y.file_name()));
|
||||||
|
|
||||||
|
let images = bread_files.iter().filter(|&f| {
|
||||||
|
let fname = f.file_name();
|
||||||
|
let name = fname.to_str().unwrap();
|
||||||
|
return
|
||||||
|
name.ends_with(".png") ||
|
||||||
|
name.ends_with(".jpg") ||
|
||||||
|
name.ends_with(".jpeg") ||
|
||||||
|
name.ends_with(".gif");
|
||||||
|
}).map(|x| x.path().strip_prefix(base_dir).unwrap().to_path_buf()).collect();
|
||||||
|
|
||||||
|
return Ok(Bread {
|
||||||
|
date: NaiveDate::parse_from_str(bpath.file_name().unwrap().to_str().unwrap(), "%Y-%m-%d").unwrap(),
|
||||||
|
rel_path: bpath.strip_prefix(base_dir).unwrap().to_path_buf(),
|
||||||
|
path: bpath,
|
||||||
|
note,
|
||||||
|
images
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let cwd = env::current_dir().unwrap();
|
||||||
|
let web_path = Path::new(&cwd).join("web");
|
||||||
|
let data_path = web_path.join("data");
|
||||||
|
let tpl_path = web_path.join("templates");
|
||||||
|
|
||||||
|
let mut bread_dirs: Vec<DirEntry> = fs::read_dir(&data_path).unwrap().map(|e| e.unwrap()).collect();
|
||||||
|
bread_dirs.sort_by(|x, y| x.file_name().cmp(&y.file_name()));
|
||||||
|
|
||||||
|
let mut breads : Vec<Bread> = Vec::new();
|
||||||
|
|
||||||
|
for bread_dir in bread_dirs {
|
||||||
|
if let Ok(b) = Bread::parse(&web_path, &bread_dir) {
|
||||||
|
breads.push(b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut main_tpl = String::new();
|
||||||
|
let mut thumb_tpl = String::new();
|
||||||
|
let mut detail_tpl = String::new();
|
||||||
|
File::open(tpl_path.join("index.html")).unwrap().read_to_string(&mut main_tpl).unwrap();
|
||||||
|
File::open(tpl_path.join("_thumb.html")).unwrap().read_to_string(&mut thumb_tpl).unwrap();
|
||||||
|
File::open(tpl_path.join("detail.html")).unwrap().read_to_string(&mut detail_tpl).unwrap();
|
||||||
|
|
||||||
|
let mut thumbs = String::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 thumb = thumb_tpl
|
||||||
|
.replace("{detail_url}", &detail_file)
|
||||||
|
.replace("{img_src}", &img_path)
|
||||||
|
.replace("{img_alt}", &img_alt)
|
||||||
|
.replace("{title}", &date);
|
||||||
|
|
||||||
|
thumbs.push_str(&thumb);
|
||||||
|
|
||||||
|
{
|
||||||
|
let detail = detail_tpl
|
||||||
|
.replace("{title}", &date)
|
||||||
|
.replace("{note}", if bread.note.is_empty() { "<i>There's no note about this bread.</i>" } else { &bread.note });
|
||||||
|
|
||||||
|
let mut pics = String::new();
|
||||||
|
for img in &bread.images {
|
||||||
|
pics.push_str(&"<a href=\"{src}\"><img src=\"{src}\"><a/>".replace("{src}", img.to_str().unwrap()))
|
||||||
|
}
|
||||||
|
|
||||||
|
let detail = detail.replace("{images}", &pics);
|
||||||
|
|
||||||
|
let mut f = OpenOptions::new().write(true).truncate(true).create(true).open(web_path.join(detail_file)).unwrap();
|
||||||
|
f.write(detail.as_bytes()).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
./*.html
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
html, body {
|
||||||
|
font-family: "Helvetica Neue", "DejaVu Sans", "Noto Sans", Helvetica, Arial, sans-serif;
|
||||||
|
background: #404040;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MainGallery {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadThumb {
|
||||||
|
margin: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadThumb img {
|
||||||
|
max-height: 300px;
|
||||||
|
box-shadow: 0 0 5px black;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadThumb header {
|
||||||
|
padding-bottom: 5px;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail .note {
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto 10px;
|
||||||
|
max-width: 800px;
|
||||||
|
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
border-left: 6px solid #676767;
|
||||||
|
background: rgba(29, 29, 29, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail .note a {
|
||||||
|
color: #9bd6fc;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail .note p:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail .note p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail .images {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.BreadDetail .images img {
|
||||||
|
margin: 10px;
|
||||||
|
max-height: 500px;
|
||||||
|
box-shadow: 0 0 5px black;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 263 KiB |
|
After Width: | Height: | Size: 195 KiB |
@@ -0,0 +1,4 @@
|
|||||||
|
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.
|
||||||
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 341 KiB |
@@ -0,0 +1 @@
|
|||||||
|
My first sourdough bread. I added coriander seeds to it. Pretty good
|
||||||
|
After Width: | Height: | Size: 224 KiB |
|
After Width: | Height: | Size: 415 KiB |
|
After Width: | Height: | Size: 371 KiB |
|
After Width: | Height: | Size: 272 KiB |
@@ -0,0 +1 @@
|
|||||||
|
nice crust, but it had huge holes in it. idk why
|
||||||
|
After Width: | Height: | Size: 258 KiB |
@@ -0,0 +1 @@
|
|||||||
|
Tried cutting the dough blob before baking, like I saw in some tutorial. I think I overdid it a bit
|
||||||
|
After Width: | Height: | Size: 542 KiB |
|
After Width: | Height: | Size: 306 KiB |
@@ -0,0 +1 @@
|
|||||||
|
a bit flat, but tasty
|
||||||
|
After Width: | Height: | Size: 374 KiB |
@@ -0,0 +1 @@
|
|||||||
|
nice crust
|
||||||
|
After Width: | Height: | Size: 441 KiB |
@@ -0,0 +1 @@
|
|||||||
|
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
|
||||||
|
After Width: | Height: | Size: 366 KiB |
|
After Width: | Height: | Size: 304 KiB |
|
After Width: | Height: | Size: 263 KiB |
@@ -0,0 +1 @@
|
|||||||
|
this came out a bit more "rustic" than usual. the cracked crust looks nice, but it makes slicing difficult
|
||||||
|
After Width: | Height: | Size: 313 KiB |
@@ -0,0 +1 @@
|
|||||||
|
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
|
||||||
|
After Width: | Height: | Size: 434 KiB |
@@ -0,0 +1 @@
|
|||||||
|
cracked crust again
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
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.
|
||||||
|
After Width: | Height: | Size: 1.2 MiB |
@@ -0,0 +1 @@
|
|||||||
|
First bread with the renewed starter culture. Didn't rise much, but tasted okay.
|
||||||
|
After Width: | Height: | Size: 1.8 MiB |
@@ -0,0 +1 @@
|
|||||||
|
that's more like it
|
||||||
|
After Width: | Height: | Size: 1.9 MiB |
@@ -0,0 +1 @@
|
|||||||
|
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.
|
||||||
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
@@ -0,0 +1,13 @@
|
|||||||
|
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](http://remoska.cz/).
|
||||||
|
|
||||||
|
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)
|
||||||
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.8 MiB |
@@ -0,0 +1 @@
|
|||||||
|
this one was very good
|
||||||
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
@@ -0,0 +1,2 @@
|
|||||||
|
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.
|
||||||
|
After Width: | Height: | Size: 2.4 MiB |
@@ -0,0 +1,3 @@
|
|||||||
|
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
|
||||||
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
@@ -0,0 +1,4 @@
|
|||||||
|
<section class="BreadThumb" onclick="location.href='{detail_url}'">
|
||||||
|
<header><a href="{detail_url}">{title}</a></header>
|
||||||
|
<img src="{img_src}" alt="{img_alt}">
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Breads</title>
|
||||||
|
<link rel="stylesheet" href="assets/style.css">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>{title}</h1>
|
||||||
|
|
||||||
|
<section class="BreadDetail">
|
||||||
|
<div class="note">{note}</div>
|
||||||
|
|
||||||
|
<div class="images">
|
||||||
|
{images}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Breads</title>
|
||||||
|
<link rel="stylesheet" href="assets/style.css">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Piggo's Bread Gallery</h1>
|
||||||
|
|
||||||
|
<div class="MainGallery">
|
||||||
|
{breads}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||