summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/pull_request_template.md3
-rw-r--r--.github/workflows/upload.yml3
-rw-r--r--.gitignore5
-rw-r--r--Makefile198
-rw-r--r--README.md41
-rw-r--r--config6
-rw-r--r--data/pix/beef-goulash.webp (renamed from src/pix/beef-goulash.webp)bin162266 -> 162266 bytes
-rw-r--r--data/pix/bitcoin-based-cooking.webp (renamed from src/pix/bitcoin-based-cooking.webp)bin558 -> 558 bytes
-rw-r--r--data/pix/cacio-e-pepe.webp (renamed from src/pix/cacio-e-pepe.webp)bin65704 -> 65704 bytes
-rw-r--r--data/pix/carbonara.webp (renamed from src/pix/carbonara.webp)bin265666 -> 265666 bytes
-rw-r--r--data/pix/cheesy-meatballs.webp (renamed from src/pix/cheesy-meatballs.webp)bin80978 -> 80978 bytes
-rw-r--r--data/pix/country-skillet.webp (renamed from src/pix/country-skillet.webp)bin120304 -> 120304 bytes
-rw-r--r--data/pix/creamy-mashed-potatoes.webp (renamed from src/pix/creamy-mashed-potatoes.webp)bin48440 -> 48440 bytes
-rw-r--r--data/pix/croutons.webp (renamed from src/pix/croutons.webp)bin93514 -> 93514 bytes
-rw-r--r--data/pix/csalad.webp (renamed from src/pix/csalad.webp)bin136552 -> 136552 bytes
-rw-r--r--data/pix/fried-anglerfish-fillet-00.webp (renamed from src/pix/fried-anglerfish-fillet-00.webp)bin67782 -> 67782 bytes
-rw-r--r--data/pix/fried-anglerfish-fillet-01.webp (renamed from src/pix/fried-anglerfish-fillet-01.webp)bin105868 -> 105868 bytes
-rw-r--r--data/pix/guacamole.webp (renamed from src/pix/guacamole.webp)bin145290 -> 145290 bytes
-rw-r--r--data/pix/japanese-noodle-soup.webp (renamed from src/pix/japanese-noodle-soup.webp)bin13220 -> 13220 bytes
-rw-r--r--data/pix/merchants-buckwheat.webp (renamed from src/pix/merchants-buckwheat.webp)bin135572 -> 135572 bytes
-rw-r--r--data/pix/mortar-and-pestle.webp (renamed from src/pix/mortar-and-pestle.webp)bin54694 -> 54694 bytes
-rw-r--r--data/pix/pan-seared-chicken.webp (renamed from src/pix/pan-seared-chicken.webp)bin130012 -> 130012 bytes
-rw-r--r--data/pix/parmesan-potatoes.webp (renamed from src/pix/parmesan-potatoes.webp)bin94062 -> 94062 bytes
-rw-r--r--data/pix/pasta-navy-style.webp (renamed from src/pix/pasta-navy-style.webp)bin224476 -> 224476 bytes
-rw-r--r--data/pix/refried-beans.webp (renamed from src/pix/refried-beans.webp)bin63552 -> 63552 bytes
-rw-r--r--data/pix/sunday-milkshake.webp (renamed from src/pix/sunday-milkshake.webp)bin57248 -> 57248 bytes
-rw-r--r--data/pix/sweet-potato-fries.webp (renamed from src/pix/sweet-potato-fries.webp)bin51786 -> 51786 bytes
-rw-r--r--data/pix/tuscan-style-pork-roast.webp (renamed from src/pix/tuscan-style-pork-roast.webp)bin208664 -> 208664 bytes
-rw-r--r--data/style.css (renamed from src/style.css)11
-rw-r--r--example.md6
-rw-r--r--index.md12
-rw-r--r--src/.ssgignore1
-rw-r--r--src/_footer.html8
-rw-r--r--src/_header.html12
-rw-r--r--src/aelplermagronen.md2
-rw-r--r--src/almeirim-stone-soup.md2
-rw-r--r--src/banana-bread.md2
-rw-r--r--src/banana-muffins-with-chocolate.md2
-rw-r--r--src/banana-pancakes.md2
-rw-r--r--src/beef-goulash.md2
-rw-r--r--src/beef-jerky.md1
-rw-r--r--src/beef-stew.md2
-rw-r--r--src/beef-tips.md2
-rw-r--r--src/bread.md2
-rw-r--r--src/broiled-trevally.md2
-rw-r--r--src/cacio-e-pepe.md2
-rw-r--r--src/caesar-salad.md2
-rw-r--r--src/carbonade.md2
-rw-r--r--src/carbonara.md2
-rw-r--r--src/cheesy-meatballs.md2
-rw-r--r--src/chicken-biscuit-potpie.md2
-rw-r--r--src/chicken-parmesan.md2
-rw-r--r--src/chicken-pasta-casserole.md4
-rw-r--r--src/chicken-stock-bone-broth.md2
-rw-r--r--src/chicken-tacos.md2
-rw-r--r--src/chicken-tomato-spinach-curry.md2
-rw-r--r--src/chicken-wings.md2
-rw-r--r--src/chili-con-carne.md2
-rw-r--r--src/country-skillet.md2
-rw-r--r--src/creamy-mashed-potatoes.md2
-rw-r--r--src/croutons.md2
-rw-r--r--src/dried-tomato-plum-spread.md2
-rw-r--r--src/drunken-beans.md2
-rw-r--r--src/eggs.md2
-rw-r--r--src/flammkuchen.md4
-rw-r--r--src/french-mustard-sauce-porkchops.md2
-rw-r--r--src/fried-anglerfish-fillet.md2
-rw-r--r--src/fried-potatoes.md2
-rw-r--r--src/ginataang-kalabasa.md2
-rw-r--r--src/gnocchi.md2
-rw-r--r--src/guacamole.md2
-rw-r--r--src/hamburger-patties.md1
-rw-r--r--src/hangover-eggs.md2
-rw-r--r--src/hellfire-steak.md2
-rw-r--r--src/hummus.md2
-rw-r--r--src/index.md109
-rw-r--r--src/instant-tom-yam-kung-noodle-soup.md2
-rw-r--r--src/japanese-noodle-soup.md4
-rw-r--r--src/ketchup.md2
-rw-r--r--src/liverpate.md2
-rw-r--r--src/maque-choux.md2
-rw-r--r--src/marinated-pork-steaks.md2
-rw-r--r--src/matcha-cookies.md2
-rw-r--r--src/merchants-buckwheat.md2
-rw-r--r--src/miso-ginger-pork.md2
-rw-r--r--src/mortar-and-pestle.md17
-rw-r--r--src/oats.md2
-rw-r--r--src/oaty-pancakes.md2
-rw-r--r--src/omelet.md2
-rw-r--r--src/pan-seared-chicken.md2
-rw-r--r--src/pancake.md2
-rw-r--r--src/parmesan-potatoes.md2
-rw-r--r--src/pasta-navy-style.md2
-rw-r--r--src/pasta-sauce.md2
-rw-r--r--src/pasta.md2
-rw-r--r--src/peanut-butter.md2
-rw-r--r--src/pizza-dough.md2
-rw-r--r--src/pork-based-chili-con-carne.md2
-rw-r--r--src/portuguese-steak-with-beer-sauce.md2
-rw-r--r--src/potato-and-eggplant-curry.md2
-rw-r--r--src/quesadilla.md4
-rw-r--r--src/quickbreakfastspaghetti.md8
-rw-r--r--src/ragu.md2
-rw-r--r--src/refried-beans.md2
-rw-r--r--src/rice.md2
-rw-r--r--src/roasted-chicken-breast.md21
-rw-r--r--src/roesti.md2
-rw-r--r--src/salt.md41
-rw-r--r--src/sauerkraut.md2
-rw-r--r--src/scandinavian-coffee-cake.md2
-rw-r--r--src/simple-sauce.md2
-rw-r--r--src/slow-cooking-tips.md17
-rw-r--r--src/spaghetti-and-meatballs.md2
-rw-r--r--src/sticky-porkchops.md2
-rw-r--r--src/stroganoff.md2
-rw-r--r--src/sunday-milkshake.md2
-rw-r--r--src/sweet-potato-fries.md2
-rw-r--r--src/taco-meat.md1
-rw-r--r--src/template.md49
-rw-r--r--src/tortellini.md2
-rw-r--r--src/tuna-sub.md2
-rw-r--r--src/tuscan-style-pork-roast.md2
-rw-r--r--src/yogurt.md2
-rwxr-xr-xssg5263
-rw-r--r--templates/article_entry.html1
-rw-r--r--templates/article_footer.html1
-rw-r--r--templates/article_header.html0
-rw-r--r--templates/article_list_footer.html1
-rw-r--r--templates/article_list_header.html2
-rw-r--r--templates/article_separator.html0
-rw-r--r--templates/footer.html10
-rw-r--r--templates/header.html8
-rw-r--r--templates/index_footer.html0
-rw-r--r--templates/index_header.html5
-rw-r--r--templates/tag_entry.html1
-rw-r--r--templates/tag_index_footer.html0
-rw-r--r--templates/tag_index_header.html5
-rw-r--r--templates/tag_link.html1
-rw-r--r--templates/tag_link_footer.html1
-rw-r--r--templates/tag_link_header.html1
-rw-r--r--templates/tag_list_footer.html1
-rw-r--r--templates/tag_list_header.html1
-rw-r--r--templates/tag_separator.html1
143 files changed, 495 insertions, 545 deletions
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 389891f..b4b7a51 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -5,7 +5,8 @@
(`-`). Not underscores, and definitely not spaces.
- Recipe must be based, i.e. good traditional and substantial food. Nothing
ironic, meme-tier hyper-sugary, meat-substitute, etc.
-- **ADD YOUR RECIPE TO THE LIST ON `index.md` OR NO ONE WILL EVER SEE IT.**
+- Be sure to add a small number of relevant tags to your recipe (and remove
+ the dummy tags). Try to use already existing tags.
- Don't include salt and pepper and other ubiquitous things in the ingredients
list.
-->
diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml
index c3f9547..5c736cc 100644
--- a/.github/workflows/upload.yml
+++ b/.github/workflows/upload.yml
@@ -29,5 +29,4 @@ jobs:
script: |
cd repo
git pull --force origin master
- mkdir -p dest
- ./ssg5 src dest "Based Cooking (https://based.cooking)" "https://based.cooking"
+ make clean deploy
diff --git a/.gitignore b/.gitignore
index 89ea643..5ae25cf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,4 @@
-dest
+rss.xml
+atom.xml
+blog
+tags
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..f632891
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,198 @@
+#!/usr/bin/make -f
+
+BLOG := $(MAKE) -f $(lastword $(MAKEFILE_LIST)) --no-print-directory
+ifneq ($(filter-out help,$(MAKECMDGOALS)),)
+include config
+endif
+
+# The following can be configured in config
+BLOG_DATE_FORMAT_INDEX ?= %x
+BLOG_DATE_FORMAT ?= %x %X
+BLOG_TITLE ?= blog
+BLOG_DESCRIPTION ?= blog
+BLOG_URL_ROOT ?= http://localhost/blog
+BLOG_FEED_MAX ?= 20
+BLOG_FEEDS ?= rss atom
+BLOG_SRC ?= articles
+
+
+.PHONY: help init build deploy clean taglist
+
+ARTICLES = $(shell git ls-tree HEAD --name-only -- $(BLOG_SRC)/ 2>/dev/null)
+TAGFILES = $(patsubst $(BLOG_SRC)/%.md,tags/%,$(ARTICLES))
+
+help:
+ $(info make init|build|deploy|clean|taglist)
+
+init:
+ mkdir -p $(BLOG_SRC) data templates
+ printf '<!DOCTYPE html><html><head><title>$$TITLE</title></head><body>' > templates/header.html
+ printf '</body></html>' > templates/footer.html
+ printf '' > templates/index_header.html
+ printf '<p>Tags:' > templates/tag_list_header.html
+ printf '<a href="$$URL">$$NAME</a>' > templates/tag_entry.html
+ printf ', ' > templates/tag_separator.html
+ printf '</p>' > templates/tag_list_footer.html
+ printf '<h2>Articles</h2><ul>' > templates/article_list_header.html
+ printf '<li><a href="$$URL">$$DATE $$TITLE</a></li>' > templates/article_entry.html
+ printf '' > templates/article_separator.html
+ printf '</ul>' > templates/article_list_footer.html
+ printf '' > templates/index_footer.html
+ printf '' > templates/tag_index_header.html
+ printf '' > templates/tag_index_footer.html
+ printf '' > templates/article_header.html
+ printf '' > templates/article_footer.html
+ printf 'blog\n' > .git/info/exclude
+
+build: blog/index.html tagpages $(patsubst $(BLOG_SRC)/%.md,blog/%.html,$(ARTICLES)) $(patsubst %,blog/%.xml,$(BLOG_FEEDS))
+
+deploy: build
+ rsync -rLtvz $(BLOG_RSYNC_OPTS) blog/ data/ $(BLOG_REMOTE)
+
+clean:
+ rm -rf blog tags
+
+config:
+ printf 'BLOG_REMOTE:=%s\n' \
+ '$(shell printf "Blog remote (eg: host:/var/www/html): ">/dev/tty; head -n1)' \
+ > $@
+
+tags/%: $(BLOG_SRC)/%.md
+ mkdir -p tags
+ grep -i '^; *tags:' "$<" | cut -d: -f2- | sed 's/ */\n/g' | sed '/^$$/d' | sort -u > $@
+
+blog/index.html: index.md $(ARTICLES) $(TAGFILES) $(addprefix templates/,$(addsuffix .html,header index_header tag_list_header tag_entry tag_separator tag_list_footer article_list_header article_entry article_separator article_list_footer index_footer footer))
+ mkdir -p blog
+ TITLE="$(BLOG_TITLE)"; \
+ PAGE_TITLE="$(BLOG_TITLE)"; \
+ export TITLE; \
+ export PAGE_TITLE; \
+ envsubst < templates/header.html > $@; \
+ envsubst < templates/index_header.html >> $@; \
+ envsubst < templates/tag_list_header.html >> $@; \
+ first=true; \
+ for t in $(shell cat $(TAGFILES) | sort -u); do \
+ "$$first" || envsubst < templates/tag_separator.html; \
+ NAME="$$t" \
+ URL="@$$t.html" \
+ envsubst < templates/tag_entry.html; \
+ first=false; \
+ done >> $@; \
+ envsubst < templates/tag_list_footer.html >> $@; \
+ envsubst < templates/article_list_header.html >> $@; \
+ first=true; \
+ echo $(ARTICLES); \
+ for f in $(ARTICLES); do \
+ printf '%s ' "$$f"; \
+ git log -n 1 --diff-filter=A --date="format:%s $(BLOG_DATE_FORMAT_INDEX)" --pretty=format:'%ad%n' -- "$$f"; \
+ done | sort | cut -d" " -f1,3- | while IFS=" " read -r FILE DATE; do \
+ "$$first" || envsubst < templates/article_separator.html; \
+ URL="`printf '%s' "\$$FILE" | sed 's,^$(BLOG_SRC)/\(.*\).md,\1,'`.html" \
+ DATE="$$DATE" \
+ TITLE="`head -n1 "\$$FILE" | sed -e 's/^# //g'`" \
+ envsubst < templates/article_entry.html; \
+ first=false; \
+ done >> $@; \
+ envsubst < templates/article_list_footer.html >> $@; \
+ markdown < index.md >> $@; \
+ envsubst < templates/index_footer.html >> $@; \
+ envsubst < templates/footer.html >> $@; \
+
+
+blog/tag/%.html: $(ARTICLES) $(addprefix templates/,$(addsuffix .html,header tag_header index_entry tag_footer footer))
+
+.PHONY: tagpages
+tagpages: $(TAGFILES)
+ +$(BLOG) $(patsubst %,blog/@%.html,$(shell cat $(TAGFILES) | sort -u))
+
+blog/@%.html: $(TAGFILES) $(addprefix templates/,$(addsuffix .html,header tag_index_header tag_list_header tag_entry tag_separator tag_list_footer article_list_header article_entry article_separator article_list_footer tag_index_footer footer))
+ mkdir -p blog
+ PAGE_TITLE="Articles tagged $* — $(BLOG_TITLE)"; \
+ TAGS="$*"; \
+ TITLE="$(BLOG_TITLE)"; \
+ export PAGE_TITLE; \
+ export TAGS; \
+ export TITLE; \
+ envsubst < templates/header.html > $@; \
+ envsubst < templates/tag_index_header.html >> $@; \
+ envsubst < templates/article_list_header.html >> $@; \
+ first=true; \
+ for f in $(shell grep -FH '$*' $(TAGFILES) | sed 's,^tags/\([^:]*\):.*,$(BLOG_SRC)/\1.md,'); do \
+ printf '%s ' "$$f"; \
+ git log -n 1 --diff-filter=A --date="format:%s $(BLOG_DATE_FORMAT_INDEX)" --pretty=format:'%ad%n' -- "$$f"; \
+ done | sort | cut -d" " -f1,3- | while IFS=" " read -r FILE DATE; do \
+ "$$first" || envsubst < templates/article_separator.html; \
+ URL="`printf '%s' "\$$FILE" | sed 's,^$(BLOG_SRC)/\(.*\).md,\1,'`.html" \
+ DATE="$$DATE" \
+ TITLE="`head -n1 "\$$FILE" | sed -e 's/^# //g'`" \
+ envsubst < templates/article_entry.html; \
+ first=false; \
+ done >> $@; \
+ envsubst < templates/article_list_footer.html >> $@; \
+ envsubst < templates/tag_index_footer.html >> $@; \
+ envsubst < templates/footer.html >> $@; \
+
+
+blog/%.html: $(BLOG_SRC)/%.md $(addprefix templates/,$(addsuffix .html,header article_header tag_link_header tag_link tag_link_footer article_footer footer))
+ mkdir -p blog
+ TITLE="$(shell head -n1 $< | sed 's/^# \+//')"; \
+ export TITLE; \
+ PAGE_TITLE="$${TITLE} — $(BLOG_TITLE)"; \
+ export PAGE_TITLE; \
+ AUTHOR="$(shell git log --format="%an" -- "$<" | tail -n 1)"; \
+ export AUTHOR; \
+ DATE_POSTED="$(shell git log -n 1 --diff-filter=A --date="format:$(BLOG_DATE_FORMAT)" --pretty=format:'%ad' -- "$<")"; \
+ export DATE_POSTED; \
+ DATE_EDITED="$(shell git log -n 1 --date="format:$(BLOG_DATE_FORMAT)" --pretty=format:'%ad' -- "$<")"; \
+ export DATE_EDITED; \
+ TAGS="$(shell grep -i '^; *tags:' "$<" | cut -d: -f2- | paste -sd ',')"; \
+ export TAGS; \
+ envsubst < templates/header.html > $@; \
+ envsubst < templates/article_header.html >> $@; \
+ sed -e '/^;/d' < $< | markdown -f fencedcode >> $@; \
+ envsubst < templates/tag_link_header.html >> $@; \
+ for i in $${TAGS} ; do \
+ TAG_NAME="$$i" \
+ TAG_LINK="./@$$i.html" \
+ envsubst < templates/tag_link.html >> $@; \
+ done; \
+ envsubst < templates/tag_link_footer.html >> $@; \
+ envsubst < templates/article_footer.html >> $@; \
+ envsubst < templates/footer.html >> $@; \
+
+blog/rss.xml: $(ARTICLES)
+ printf '<?xml version="1.0" encoding="UTF-8"?>\n<rss version="2.0">\n<channel>\n<title>%s</title>\n<link>%s</link>\n<description>%s</description>\n' \
+ "$(BLOG_TITLE)" "$(BLOG_URL_ROOT)" "$(BLOG_DESCRIPTION)" > $@
+ for f in $(ARTICLES); do \
+ printf '%s ' "$$f"; \
+ git log -n 1 --diff-filter=A --date="format:%s %a, %d %b %Y %H:%M:%S %z" --pretty=format:'%ad%n' -- "$$f"; \
+ done | sort -k2nr | head -n $(BLOG_FEED_MAX) | cut -d" " -f1,3- | while IFS=" " read -r FILE DATE; do \
+ printf '<item>\n<title>%s</title>\n<link>%s</link>\n<guid>%s</guid>\n<pubDate>%s</pubDate>\n<description>%s</description>\n</item>\n' \
+ "`head -n 1 $$FILE`" \
+ "$(BLOG_URL_ROOT)/`basename $$FILE`.html" \
+ "$(BLOG_URL_ROOT)/`basename $$FILE`.html" \
+ "$$DATE" \
+ "`sed -n '1d;/^$$/{2{d;b};q};p' < $$FILE`"; \
+ done >> $@
+ printf '</channel>\n</rss>\n' >> $@
+
+blog/atom.xml: $(ARTICLES)
+ printf '<?xml version="1.0" encoding="UTF-8"?>\n<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">\n<title type="text">%s</title>\n<subtitle type="text">%s</subtitle>\n<updated>%s</updated>\n<link rel="alternate" type="text/html" href="%s"/>\n<id>%s</id>\n<link rel="self" type="application/atom+xml" href="%s"/>\n' \
+ "$(BLOG_TITLE)" "$(BLOG_DESCRIPTION)" "$(shell date +%Y-%m-%dT%H:%M:%SZ)" "$(BLOG_URL_ROOT)" "$(BLOG_URL_ROOT)/atom.xml" "$(BLOG_URL_ROOT)/atom.xml" > $@
+ for f in $(ARTICLES); do \
+ printf '%s ' "$$f"; \
+ git log -n 1 --diff-filter=A --date="format:%s %Y-%m-%dT%H:%M:%SZ" --pretty=format:'%ad %aN%n' -- "$$f"; \
+ done | sort -k2nr | head -n $(BLOG_FEED_MAX) | cut -d" " -f1,3- | while IFS=" " read -r FILE DATE AUTHOR; do \
+ printf '<entry>\n<title type="text">%s</title>\n<link rel="alternate" type="text/html" href="%s"/>\n<id>%s</id>\n<published>%s</published>\n<updated>%s</updated>\n<author><name>%s</name></author>\n<summary type="text">%s</summary>\n</entry>\n' \
+ "`head -n 1 $$FILE`" \
+ "$(BLOG_URL_ROOT)/`basename $$FILE`.html" \
+ "$(BLOG_URL_ROOT)/`basename $$FILE`.html" \
+ "$$DATE" \
+ "`git log -n 1 --date="format:%Y-%m-%dT%H:%M:%SZ" --pretty=format:'%ad' -- "$$FILE"`" \
+ "$$AUTHOR" \
+ "`sed -n '1d;/^$$/{2{d;b};q};p' < $$FILE`"; \
+ done >> $@
+ printf '</feed>\n' >> $@
+
+taglist:
+ grep -RIh '^;tags:' src | cut -d' ' -f2- | tr ' ' '\n' | sort | uniq
diff --git a/README.md b/README.md
index 95c4ab9..b0821cb 100644
--- a/README.md
+++ b/README.md
@@ -12,20 +12,51 @@
## Rules for submission
+- Recipes should start with a title, with a single `#`, *on the first line*. No
+ empty line at the top, not trailing line at the end. The file needs to be `\n`
+ terminated in linux-fashion (if you're on linux you don't need to care, it
+ should be automatic).
- Recipes should be `.md` files in the `src/` directory. Look at already
existing `.md` files for examples or see [example](example.md).
- File names should be the name of the dish with words separated by hypens
(`-`). Not underscores, and definitely not spaces.
- Recipe must be based, i.e. good traditional and substantial food. Nothing
ironic, meme-tier hyper-sugary, meat-substitute, etc.
-- **ADD YOUR RECIPE TO THE LIST ON `index.md` OR NO ONE WILL EVER SEE IT.**
- Don't include salt and pepper and other ubiquitous things in the ingredients
list.
**If you fail to do these things, I will close your submission and you will have to resubmit. I am tired of having to fix more than 50% of submissions.**
+### Tags
+
+You can (and should) add tags at the end of your recipe. The syntax is:
+```
+;tags: tag1 tag2 tag3
+```
+
+The tag line should be a single line, at the end of the markdown file, preceded
+by a blank line.
+
+Add between 1 and 4 tags, **prioritize existing tags**. As a general guideline,
+add the country from which the recipe originates if the recipe is representative
+of said country, using the adjective form (eg. *mexican*, *italian*, etc). Tag
+the main ingredient if it's something slightly special.
+
+List of special, categorical tags to use if relevant:
+- `basic`: for basic recipes that aren't meant to be stand alone but are supposed
+ to be incorporated in another recipe.
+- `breakfast`
+- `desert`
+- `drink`
+- `quick`: for recipes that can be cooked in under ~20 minutes.
+- `side`: side dishes such as mash, fries, etc.
+- `snack`
+- `spread`
+
### Images
+Images are stored in `data/pix`.
+
Each recipe can have a title image at the top and perhaps
several instructional images as absolutely necessary.
@@ -43,8 +74,8 @@ they should be numbered with two digits like: `pix/chicken-parmesan-01.webp`, et
## About the site
-The front page, for now, will just be a list of recipes
-and when adding a `.md` page, please manually add a link to it in the list.
+The front page, for now, will just be a list of recipes automatically generated
+from the content of `src`.
As more articles are added, the site will be reorganized, categorized
or will implement server-side scripting or searches.
This is not necessary yet though.
@@ -52,10 +83,6 @@ This is not necessary yet though.
I don't really want images of recipes on the mainpage yet.
I'll think about how best to do it to minimize bandwidth if possible.
-This site is generated with [Roman Zolotarev](https://www.romanzolotarev.com/)'s
-[ssg5](https://www.romanzolotarev.com/ssg.html) which is also included in this
-repo for replicability.
-
## curl/Search function in the future
I eventually want a command-line/curl interface to this site.
diff --git a/config b/config
new file mode 100644
index 0000000..8f06a8e
--- /dev/null
+++ b/config
@@ -0,0 +1,6 @@
+BLOG_TITLE:=Based Cooking
+BLOG_REMOTE:=/var/www/based.cooking
+BLOG_DATE_FORMAT_INDEX:=%F
+BLOG_DATE_FORMAT:=%F
+BLOG_SRC:=src
+BLOG_URL_ROOT:=https://based.cooking/
diff --git a/src/pix/beef-goulash.webp b/data/pix/beef-goulash.webp
index 1f9b1ff..1f9b1ff 100644
--- a/src/pix/beef-goulash.webp
+++ b/data/pix/beef-goulash.webp
Binary files differ
diff --git a/src/pix/bitcoin-based-cooking.webp b/data/pix/bitcoin-based-cooking.webp
index 1c5c8af..1c5c8af 100644
--- a/src/pix/bitcoin-based-cooking.webp
+++ b/data/pix/bitcoin-based-cooking.webp
Binary files differ
diff --git a/src/pix/cacio-e-pepe.webp b/data/pix/cacio-e-pepe.webp
index 6921d9f..6921d9f 100644
--- a/src/pix/cacio-e-pepe.webp
+++ b/data/pix/cacio-e-pepe.webp
Binary files differ
diff --git a/src/pix/carbonara.webp b/data/pix/carbonara.webp
index da6c549..da6c549 100644
--- a/src/pix/carbonara.webp
+++ b/data/pix/carbonara.webp
Binary files differ
diff --git a/src/pix/cheesy-meatballs.webp b/data/pix/cheesy-meatballs.webp
index 2bb0b4f..2bb0b4f 100644
--- a/src/pix/cheesy-meatballs.webp
+++ b/data/pix/cheesy-meatballs.webp
Binary files differ
diff --git a/src/pix/country-skillet.webp b/data/pix/country-skillet.webp
index a0ad2c3..a0ad2c3 100644
--- a/src/pix/country-skillet.webp
+++ b/data/pix/country-skillet.webp
Binary files differ
diff --git a/src/pix/creamy-mashed-potatoes.webp b/data/pix/creamy-mashed-potatoes.webp
index d496bc3..d496bc3 100644
--- a/src/pix/creamy-mashed-potatoes.webp
+++ b/data/pix/creamy-mashed-potatoes.webp
Binary files differ
diff --git a/src/pix/croutons.webp b/data/pix/croutons.webp
index e779328..e779328 100644
--- a/src/pix/croutons.webp
+++ b/data/pix/croutons.webp
Binary files differ
diff --git a/src/pix/csalad.webp b/data/pix/csalad.webp
index bf37a2f..bf37a2f 100644
--- a/src/pix/csalad.webp
+++ b/data/pix/csalad.webp
Binary files differ
diff --git a/src/pix/fried-anglerfish-fillet-00.webp b/data/pix/fried-anglerfish-fillet-00.webp
index 6b85d02..6b85d02 100644
--- a/src/pix/fried-anglerfish-fillet-00.webp
+++ b/data/pix/fried-anglerfish-fillet-00.webp
Binary files differ
diff --git a/src/pix/fried-anglerfish-fillet-01.webp b/data/pix/fried-anglerfish-fillet-01.webp
index a95ebab..a95ebab 100644
--- a/src/pix/fried-anglerfish-fillet-01.webp
+++ b/data/pix/fried-anglerfish-fillet-01.webp
Binary files differ
diff --git a/src/pix/guacamole.webp b/data/pix/guacamole.webp
index 690cd7c..690cd7c 100644
--- a/src/pix/guacamole.webp
+++ b/data/pix/guacamole.webp
Binary files differ
diff --git a/src/pix/japanese-noodle-soup.webp b/data/pix/japanese-noodle-soup.webp
index 85ca326..85ca326 100644
--- a/src/pix/japanese-noodle-soup.webp
+++ b/data/pix/japanese-noodle-soup.webp
Binary files differ
diff --git a/src/pix/merchants-buckwheat.webp b/data/pix/merchants-buckwheat.webp
index d294c47..d294c47 100644
--- a/src/pix/merchants-buckwheat.webp
+++ b/data/pix/merchants-buckwheat.webp
Binary files differ
diff --git a/src/pix/mortar-and-pestle.webp b/data/pix/mortar-and-pestle.webp
index dd94795..dd94795 100644
--- a/src/pix/mortar-and-pestle.webp
+++ b/data/pix/mortar-and-pestle.webp
Binary files differ
diff --git a/src/pix/pan-seared-chicken.webp b/data/pix/pan-seared-chicken.webp
index e030e10..e030e10 100644
--- a/src/pix/pan-seared-chicken.webp
+++ b/data/pix/pan-seared-chicken.webp
Binary files differ
diff --git a/src/pix/parmesan-potatoes.webp b/data/pix/parmesan-potatoes.webp
index 42c81cd..42c81cd 100644
--- a/src/pix/parmesan-potatoes.webp
+++ b/data/pix/parmesan-potatoes.webp
Binary files differ
diff --git a/src/pix/pasta-navy-style.webp b/data/pix/pasta-navy-style.webp
index 2836d66..2836d66 100644
--- a/src/pix/pasta-navy-style.webp
+++ b/data/pix/pasta-navy-style.webp
Binary files differ
diff --git a/src/pix/refried-beans.webp b/data/pix/refried-beans.webp
index 9f49af6..9f49af6 100644
--- a/src/pix/refried-beans.webp
+++ b/data/pix/refried-beans.webp
Binary files differ
diff --git a/src/pix/sunday-milkshake.webp b/data/pix/sunday-milkshake.webp
index bdb9074..bdb9074 100644
--- a/src/pix/sunday-milkshake.webp
+++ b/data/pix/sunday-milkshake.webp
Binary files differ
diff --git a/src/pix/sweet-potato-fries.webp b/data/pix/sweet-potato-fries.webp
index 62bec8a..62bec8a 100644
--- a/src/pix/sweet-potato-fries.webp
+++ b/data/pix/sweet-potato-fries.webp
Binary files differ
diff --git a/src/pix/tuscan-style-pork-roast.webp b/data/pix/tuscan-style-pork-roast.webp
index eaaea0f..eaaea0f 100644
--- a/src/pix/tuscan-style-pork-roast.webp
+++ b/data/pix/tuscan-style-pork-roast.webp
Binary files differ
diff --git a/src/style.css b/data/style.css
index 77a285c..2e6aa32 100644
--- a/src/style.css
+++ b/data/style.css
@@ -20,6 +20,17 @@ img {
display: block ;
}
+code {
+ overflow-wrap: break-word ;
+ color: lime ;
+}
+
+li img {
+ max-width: 1em ;
+ max-height: 1em ;
+ display: inline ;
+}
+
@media (prefers-color-scheme: dark) {
body {
background: #151515 ;
diff --git a/example.md b/example.md
index dfb3d05..a53988f 100644
--- a/example.md
+++ b/example.md
@@ -32,5 +32,11 @@ Here, just put your name and links to yourself (maybe a website or donation link
You may say "Anonymous" or a screenname if desired.
If you add something substantial to an already existing recipe (including and image) you may add your name below with the contribution in parens.
+Note that your commit name will be used to sign the recipe, so for full
+anonymity either commit with a name that can't be traced back to you, or ask
+someone else to commit for you.
+
- Luke Smith - [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
- Luke Smith (photo credit) - [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: tag1 tag2 tag3 (see README for tag guidelines)
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..d8a0a59
--- /dev/null
+++ b/index.md
@@ -0,0 +1,12 @@
+## About this site
+
+Founded to provide a simple online cookbook without ads and obese web design.
+
+### It's easy to contribute!
+
+- Submit new recipes via git via [Github](https://github.com/lukesmithxyz/based.cooking) or [Gitlab](https://gitlab.com/lukesmithxyz/based.cooking).
+- If a recipe has no image for it, make the recipe as presented and submit a picture above or to [luke@lukesmith.xyz](mailto:luke@lukesmith.xyz).
+- Donate to the individual people who contribute pages whose names are at the bottom of each page.
+- Donate to the site's long-term maintenance fund:
+ - ![BTC logo](https://lukesmith.xyz/pix/btc.svg) Bitcoin: `bc1q763s4ud0hgfa66ce64gyh6tsss49vyk5cqcm6w` ([QR code](pix/bitcoin-based-cooking.webp))
+ - ![XMR Logo](https://lukesmith.xyz/pix/xmr.svg) Monero: `48jewbtxe4jU3MnzJFjTs3gVFWh2nRrAMWdUuUd7Ubo375LL4SjLTnMRKBrXburvEh38QSNLrJy3EateykVCypnm6gcT9bh` ([QR code](https://lukesmith.xyz/pix/xmr.png))
diff --git a/src/.ssgignore b/src/.ssgignore
deleted file mode 100644
index febf952..0000000
--- a/src/.ssgignore
+++ /dev/null
@@ -1 +0,0 @@
-template.md
diff --git a/src/_footer.html b/src/_footer.html
deleted file mode 100644
index 452246e..0000000
--- a/src/_footer.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
- <footer>
- <a href="index.html">🏡 Based Cooking Homepage</a> </br>
- All site content is in the Public Domain.
- </footer>
-
- </body>
-</html>
diff --git a/src/_header.html b/src/_header.html
deleted file mode 100644
index 3110681..0000000
--- a/src/_header.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
- <head>
- <title></title>
- <meta charset=UTF-8>
- <link rel=stylesheet href=style.css>
- <link rel="shortcut icon" type="image/x-icon" href="favicon.png">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- </head>
-
- <body>
diff --git a/src/aelplermagronen.md b/src/aelplermagronen.md
index e9b97ca..90e4171 100644
--- a/src/aelplermagronen.md
+++ b/src/aelplermagronen.md
@@ -33,3 +33,5 @@ Cooking time: ~30 minutes
## Contributors
- **Alexander Bocken** -- [contact](mailto:alexander@bocken.org)
+
+;tags: swiss pork potato
diff --git a/src/almeirim-stone-soup.md b/src/almeirim-stone-soup.md
index f35a3fe..ec5aca1 100644
--- a/src/almeirim-stone-soup.md
+++ b/src/almeirim-stone-soup.md
@@ -33,3 +33,5 @@
## Contribution
- Artur Mancha -- [Pleroma](https://pleroma.pt/@lisbonjoker)
+
+;tags: portuguese soup pork
diff --git a/src/banana-bread.md b/src/banana-bread.md
index a89af6b..437869a 100644
--- a/src/banana-bread.md
+++ b/src/banana-bread.md
@@ -33,3 +33,5 @@ Not too sweet. Great for when you have friends over for tea.
## Contribution
- Martin Chrzanowski -- [website](https://m-chrzan.xyz), [donate](https://m-chrzan.xyz/crypto.html)
+
+;tags: bread desert sweet
diff --git a/src/banana-muffins-with-chocolate.md b/src/banana-muffins-with-chocolate.md
index 2f2c92a..d02172b 100644
--- a/src/banana-muffins-with-chocolate.md
+++ b/src/banana-muffins-with-chocolate.md
@@ -25,3 +25,5 @@
## Contribution
- Łukasz Drukała - [website](https://masflam.com), [donate](https://masflam.com/#donate)
+
+;tags: desert sweet snack cake
diff --git a/src/banana-pancakes.md b/src/banana-pancakes.md
index 2c89844..102bd9c 100644
--- a/src/banana-pancakes.md
+++ b/src/banana-pancakes.md
@@ -26,3 +26,5 @@ Either eat the pancakes as they get ready or put a plate in a preheated oven (lo
## Contribution
- Ricky Lindén - [website](https://rickylinden.com), [donate](https://rickylinden.com/donate.html)
+
+;tags: breakfast quick sweet cake
diff --git a/src/beef-goulash.md b/src/beef-goulash.md
index abb365e..9327d9d 100644
--- a/src/beef-goulash.md
+++ b/src/beef-goulash.md
@@ -53,3 +53,5 @@ Originally published at [https://www.yaroslavps.com/food/beef-goulash/](https://
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: hungarian beef stew
diff --git a/src/beef-jerky.md b/src/beef-jerky.md
index 5704231..22ce332 100644
--- a/src/beef-jerky.md
+++ b/src/beef-jerky.md
@@ -32,3 +32,4 @@ Other meats may be substituted instead of beef, but use caution.
- Elias Howell -- [website](https://snarf.top)
+;tags: beef snack
diff --git a/src/beef-stew.md b/src/beef-stew.md
index 20bb636..1673328 100644
--- a/src/beef-stew.md
+++ b/src/beef-stew.md
@@ -26,3 +26,5 @@ There you have it, an idiot-proof stew that should taste reasonably well. Beside
## Contribution
- Eoin Coogan - [website](https://eoincoogan.com), [youtube](https://www.youtube.com/channel/UCehh50T6qtDpt_kEUF33GJw)
+
+;tags: irish stew lamb beef
diff --git a/src/beef-tips.md b/src/beef-tips.md
index 24cfb1d..24e864c 100644
--- a/src/beef-tips.md
+++ b/src/beef-tips.md
@@ -48,3 +48,5 @@ Tender chunks of meat in a rich brown gravy poured over sour cream mashed potato
- **Batu Cam** -- Transcribed recipe from Mark Rippetoe's video with moderate to significant modifications based on experience -- Monero (XMR) to help me save for an unazoomer cabin: 85eZ4uVd4gkiCsQEeDnsQG9pUbDzdi1r1VSJ9hK5Sx7hKsFZjvmqtWV7gU1ysWUR32jhWutBRGUUq8VAJNUfin9wBCCuTdg
- **Mark Rippetoe** -- Original recipe author, creator of starting strength, and pink nationalist -- [Website](https://startingstrength.com)
+
+;tags: american beef
diff --git a/src/bread.md b/src/bread.md
index 249863e..a8d07d9 100644
--- a/src/bread.md
+++ b/src/bread.md
@@ -35,3 +35,5 @@ This is a recipe for a basic loaf of bread. The dough itself can be used however
## Contribution
Alex Selimov - [Website](https://alexselimov.xyz)
+
+;tags: basic bread
diff --git a/src/broiled-trevally.md b/src/broiled-trevally.md
index 0766886..4386c02 100644
--- a/src/broiled-trevally.md
+++ b/src/broiled-trevally.md
@@ -30,3 +30,5 @@ So here's a recipe to make it look---and taste!---more appealing.
## Contribution
- O.Q. Olarte [website](https://oqolarte.github.io), [donate](https://oqolarte.github.io/support)
+
+;tags: fish
diff --git a/src/cacio-e-pepe.md b/src/cacio-e-pepe.md
index 306b021..31860d0 100644
--- a/src/cacio-e-pepe.md
+++ b/src/cacio-e-pepe.md
@@ -26,3 +26,5 @@ Pasta water and the cheese are already salty, so you may not need to add any ext
- Some guy called [siedes](https://github.com/siedes)
- Batu Cam -- Added picture -- XMR: 85eZ4uVd4gkiCsQEeDnsQG9pUbDzdi1r1VSJ9hK5Sx7hKsFZjvmqtWV7gU1ysWUR32jhWutBRGUUq8VAJNUfin9wBCCuTdg
+
+;tags: italian quick pasta
diff --git a/src/caesar-salad.md b/src/caesar-salad.md
index 8352b33..ac58915 100644
--- a/src/caesar-salad.md
+++ b/src/caesar-salad.md
@@ -22,3 +22,5 @@ Caesar Salad is an easy and delicious meal for lunch or dinner.
## Contributors
- gucko
+
+;tags: italian salad
diff --git a/src/carbonade.md b/src/carbonade.md
index 5a7c585..49781f4 100644
--- a/src/carbonade.md
+++ b/src/carbonade.md
@@ -36,3 +36,5 @@ The smoked bacon is not in the traditional recipe but it's good. Don't add it if
## Contribution
- anon btc: 1FJSSps89rEMtYm8Vvkp2uyTX9MFpZtcGy
+
+;tags: flemish stew beef
diff --git a/src/carbonara.md b/src/carbonara.md
index 25efbd7..dba94f5 100644
--- a/src/carbonara.md
+++ b/src/carbonara.md
@@ -33,3 +33,5 @@ Add the guanciale back in and give it a quick toss to mix. Plate and optionally
## Contribution
Peter Piontek
+
+;tags: italian pasta quick
diff --git a/src/cheesy-meatballs.md b/src/cheesy-meatballs.md
index b4cb587..a130c09 100644
--- a/src/cheesy-meatballs.md
+++ b/src/cheesy-meatballs.md
@@ -59,3 +59,5 @@ Originally published at [https://www.yaroslavps.com/food/cheesy-meatballs/](http
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: beef
diff --git a/src/chicken-biscuit-potpie.md b/src/chicken-biscuit-potpie.md
index 25ba6b4..438e954 100644
--- a/src/chicken-biscuit-potpie.md
+++ b/src/chicken-biscuit-potpie.md
@@ -18,3 +18,5 @@
## Contribution
Front3ndNinja - [Website](https://github.com/Front3ndNinja)
+
+;tags: chicken
diff --git a/src/chicken-parmesan.md b/src/chicken-parmesan.md
index 02866a7..3643326 100644
--- a/src/chicken-parmesan.md
+++ b/src/chicken-parmesan.md
@@ -38,3 +38,5 @@ I recommend keeping the breasts separate and only adding the sauce when served.
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: italian chicken
diff --git a/src/chicken-pasta-casserole.md b/src/chicken-pasta-casserole.md
index 945d5b4..b6c7b70 100644
--- a/src/chicken-pasta-casserole.md
+++ b/src/chicken-pasta-casserole.md
@@ -27,4 +27,6 @@ Easy to throw together and transport for the working fellow. High in protein!
## Contribution
-- Miika Nissi - [website](https://miikanissi.com) \ No newline at end of file
+- Miika Nissi - [website](https://miikanissi.com)
+
+;tags: chicken italian pasta
diff --git a/src/chicken-stock-bone-broth.md b/src/chicken-stock-bone-broth.md
index e1f522b..0a4e461 100644
--- a/src/chicken-stock-bone-broth.md
+++ b/src/chicken-stock-bone-broth.md
@@ -31,3 +31,5 @@ You may eat or compost the remaining vegetables.
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: chicken stock basic
diff --git a/src/chicken-tacos.md b/src/chicken-tacos.md
index afe9ec9..6fb5db8 100644
--- a/src/chicken-tacos.md
+++ b/src/chicken-tacos.md
@@ -26,3 +26,5 @@
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: mexican chicken
diff --git a/src/chicken-tomato-spinach-curry.md b/src/chicken-tomato-spinach-curry.md
index cf13b12..7307dca 100644
--- a/src/chicken-tomato-spinach-curry.md
+++ b/src/chicken-tomato-spinach-curry.md
@@ -26,3 +26,5 @@ Note: You may also need a blender / food processor.
## Contribution
- Luke Goule - [GitHub](https://github.com/LukeGoule), [XMR Donation QR](https://ergine.cc/xmr.png)
+
+;tags: curry chicken
diff --git a/src/chicken-wings.md b/src/chicken-wings.md
index de24bdc..9192706 100644
--- a/src/chicken-wings.md
+++ b/src/chicken-wings.md
@@ -23,3 +23,5 @@ Perfectly cooked fall off the bone buffalo wings.
## Contributors
- **Kyle Steger** -- [GitHub](https://github.com/kyleVsteger) -- _just some dude_
+
+;tags: chicken
diff --git a/src/chili-con-carne.md b/src/chili-con-carne.md
index 0f633ae..6bc1116 100644
--- a/src/chili-con-carne.md
+++ b/src/chili-con-carne.md
@@ -36,3 +36,5 @@
## Contribution
- Aaron Taylor -- [website](https://atay.me)
+
+;tags: mexican beef beans
diff --git a/src/country-skillet.md b/src/country-skillet.md
index 5b1fb1b..c0f6f3f 100644
--- a/src/country-skillet.md
+++ b/src/country-skillet.md
@@ -66,3 +66,5 @@ Originally published at [https://www.yaroslavps.com/food/country-breakfast-skill
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: american breakfast pork
diff --git a/src/creamy-mashed-potatoes.md b/src/creamy-mashed-potatoes.md
index 60002f1..1317dbd 100644
--- a/src/creamy-mashed-potatoes.md
+++ b/src/creamy-mashed-potatoes.md
@@ -53,3 +53,5 @@ Originally published at [https://www.yaroslavps.com/food/creamy-mashed-potatoes/
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: potato side
diff --git a/src/croutons.md b/src/croutons.md
index 897e7c2..3982131 100644
--- a/src/croutons.md
+++ b/src/croutons.md
@@ -20,3 +20,5 @@ Croutons are an essential addition to many salads. They are delicious and easy
## Contributors
- gucko
+
+;tags: basic french salad
diff --git a/src/dried-tomato-plum-spread.md b/src/dried-tomato-plum-spread.md
index 0942e53..20fb8bb 100644
--- a/src/dried-tomato-plum-spread.md
+++ b/src/dried-tomato-plum-spread.md
@@ -20,3 +20,5 @@ Quick and simple bread spread.
## Contribution
- Patryk Niedźwiedziński - [website](https://niedzwiedzinski.cyou)
+
+;tags: bread quick snack spread
diff --git a/src/drunken-beans.md b/src/drunken-beans.md
index 7ae2f87..0c7466e 100644
--- a/src/drunken-beans.md
+++ b/src/drunken-beans.md
@@ -27,3 +27,5 @@ Pinto beans cooking with beer, what beer you use can change the dish.
## Contribution
- just a dude who likes cooking
+
+;tags: beans stew
diff --git a/src/eggs.md b/src/eggs.md
index 32dfae6..24dd033 100644
--- a/src/eggs.md
+++ b/src/eggs.md
@@ -48,3 +48,5 @@ of ham, mushrooms, chopped tomatoes, etc., before cracking the eggs in.
- Martin Chrzanowski -- [website](https://m-chrzan.xyz), [donate](https://m-chrzan.xyz/crypto.html)
- Deven Blake -- [website](http://www.trinity.moe)
+
+;tags: eggs basic
diff --git a/src/flammkuchen.md b/src/flammkuchen.md
index 56a6a47..87f302c 100644
--- a/src/flammkuchen.md
+++ b/src/flammkuchen.md
@@ -1,4 +1,4 @@
-# Recipe name
+# Flammkuchen
A recipe for Flammkuchen a very thin crust pizza-like dish - it originates from Elsass, a French region close to where I grew up.
I like the recipe because it takes 10 minutes to prepare and another 10 minutes to bake. It goes well with a green salad as a side.
@@ -26,3 +26,5 @@ I usually take it down from the baking tray and let it cool down for 2-5 minutes
## Contributors
- Bernhard Egger -- [website](https://eggerbernhard.ch), [twitter](https://twitter.com/VisionBernie)
+
+;tags: french pork quick
diff --git a/src/french-mustard-sauce-porkchops.md b/src/french-mustard-sauce-porkchops.md
index b94a745..bf608bb 100644
--- a/src/french-mustard-sauce-porkchops.md
+++ b/src/french-mustard-sauce-porkchops.md
@@ -33,3 +33,5 @@ Serves 4
## Contribution
- anon btc: 1FJSSps89rEMtYm8Vvkp2uyTX9MFpZtcGy
+
+;tags: french pork quick
diff --git a/src/fried-anglerfish-fillet.md b/src/fried-anglerfish-fillet.md
index a16bde3..224ccf1 100644
--- a/src/fried-anglerfish-fillet.md
+++ b/src/fried-anglerfish-fillet.md
@@ -34,3 +34,5 @@ This is a simple light-flavoured recipe. Anglerfish (I'm referring specifically
## Contribution
by Shou, [website](https://shouganai.xyz)
+
+;tags: fish
diff --git a/src/fried-potatoes.md b/src/fried-potatoes.md
index c6e854b..836b0b9 100644
--- a/src/fried-potatoes.md
+++ b/src/fried-potatoes.md
@@ -15,3 +15,5 @@
## Contribution
themisch - [website](http://k63fspwi7eekmjy7i3ofk425lseyftfrbikyjs5ndgrvzasxlh6hoiid.onion), [donate](http://k63fspwi7eekmjy7i3ofk425lseyftfrbikyjs5ndgrvzasxlh6hoiid.onion/donate.html)
+
+;tags: potato quick side
diff --git a/src/ginataang-kalabasa.md b/src/ginataang-kalabasa.md
index e9a2fc6..44ade7d 100644
--- a/src/ginataang-kalabasa.md
+++ b/src/ginataang-kalabasa.md
@@ -24,3 +24,5 @@ Or "Squash in Coconut Milk". This is a common Filipino dish.
## Contribution
- Jacob Smith - [website](https://jacobwsmith.xyz)
+
+;tags: filipino squash
diff --git a/src/gnocchi.md b/src/gnocchi.md
index 99ba9a5..5ccf5c1 100644
--- a/src/gnocchi.md
+++ b/src/gnocchi.md
@@ -29,3 +29,5 @@ They are substantial and can be roasted in butter and other ingredients.
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: italian potato side
diff --git a/src/guacamole.md b/src/guacamole.md
index 873a3f2..db072b1 100644
--- a/src/guacamole.md
+++ b/src/guacamole.md
@@ -36,3 +36,5 @@ Originally published at [https://www.yaroslavps.com/food/fresh-guacamole/](https
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: mexican spread snack
diff --git a/src/hamburger-patties.md b/src/hamburger-patties.md
index 0a27dac..477b522 100644
--- a/src/hamburger-patties.md
+++ b/src/hamburger-patties.md
@@ -25,3 +25,4 @@
- Anonymous
+;tags: american quick beef sandwich
diff --git a/src/hangover-eggs.md b/src/hangover-eggs.md
index d4f9693..49975bf 100644
--- a/src/hangover-eggs.md
+++ b/src/hangover-eggs.md
@@ -34,3 +34,5 @@ bite.
## Contributors
- **Dr. Cat** -- [website](https://github.com/castrated)
+
+;tags: eggs snack quick
diff --git a/src/hellfire-steak.md b/src/hellfire-steak.md
index b48b010..08aee3d 100644
--- a/src/hellfire-steak.md
+++ b/src/hellfire-steak.md
@@ -20,3 +20,5 @@ I first learned this recipe from a Bishop I had growing up. It produces quite a
## Contribution
- Jacob Smith - [website](https://jacobwsmith.xyz)
+
+;tags: beef quick
diff --git a/src/hummus.md b/src/hummus.md
index 73fdd9c..4757b71 100644
--- a/src/hummus.md
+++ b/src/hummus.md
@@ -17,3 +17,5 @@
## Contribution
- Jacob Smith - [website](https://jacobwsmith.xyz)
+
+;tags: basic snack spread
diff --git a/src/index.md b/src/index.md
deleted file mode 100644
index d64b222..0000000
--- a/src/index.md
+++ /dev/null
@@ -1,109 +0,0 @@
-# 🍳 Based Cooking 🍲
-
-Only based cooking. No ads, no tracking, nothing but based cooking.
-
-## Recipes
-
-- [Carbonara](carbonara.html)
-- [Chicken Parmesan](chicken-parmesan.html)
-- [Chicken Pasta Casserole](chicken-pasta-casserole.html)
-- [Gnocchi](gnocchi.html)
-- [Slow-cooked Chicken Tacos](chicken-tacos.html)
-- [Beef Stroganoff](stroganoff.html)
-- [Beef or Lamb Stew](beef-stew.html)
-- [Beef Jerky](beef-jerky.html)
-- [Hamburger Patties](hamburger-patties.html)
-- [Portuguese Steak with Beer Sauce](portuguese-steak-with-beer-sauce.html)
-- [Tuscan Style Pork Roast](tuscan-style-pork-roast.html)
-- [Flemish Beer and Gingerbread Beef Stew](carbonade.html)
-- [French Mustard Sauce Porkchops](french-mustard-sauce-porkchops.html)
-- [Chicken, Tomato & Spinach Curry](chicken-tomato-spinach-curry.html)
-- [Broiled Trevally](broiled-trevally.html)
-- [Almeirim Stone Soup](almeirim-stone-soup.html)
-- [Chicken Wings](chicken-wings.html)
-- [Instant Tom Yam Kung Noodle Soup](instant-tom-yam-kung-noodle-soup.html)
-- [Marinated Pork Steaks](marinated-pork-steaks.html)
-- [Banana Pancakes](banana-pancakes.html)
-- [Banana Bread](banana-bread.html)
-- [Cacio e Pepe](cacio-e-pepe.html)
-- [Potato and Eggplant Curry](potato-and-eggplant-curry.html)
-- [Dried Tomato and Plums Bread Spread](dried-tomato-plum-spread.html)
-- [Drunken Beans](drunken-beans.html)
-- [Chili con Carne](chili-con-carne.html)
-- [Matcha Cookies](matcha-cookies.html)
-- [Miso Ginger Pork](miso-ginger-pork.html)
-- [Pancakes](pancake.html)
-- [Oaty Pancakes](oaty-pancakes.html)
-- [Pizza Dough](pizza-dough.html)
-- [Beef Tips with Mashed Potatoes](beef-tips.html)
-- [Älplermagronen (Alpine macaroni)](aelplermagronen.html)
-- [Rösti](roesti.html)
-- [Chicken Biscuit Potpie](chicken-biscuit-potpie.html)
-- [Liver Pate](liverpate.html)
-- [Flammkuchen](flammkuchen.html)
-- [Tortellini](tortellini.html)
-- [Banana Muffins with Chocolate](banana-muffins-with-chocolate.html)
-- [Taco Meat](taco-meat.html)
-- [Fried Anglerfish Fillet](fried-anglerfish-fillet.html)
-- [Hangover Eggs](hangover-eggs.html)
-- [Caesar Salad](caesar-salad.html)
-- [Maque Choux](maque-choux.html)
-- [Ragù](ragu.html)
-- [Roasted Chicken Breast](roasted-chicken-breast.html)
-- [Scandinavian Coffee Cake](scandinavian-coffee-cake.html)
-- [Japanese Noodle Soup](japanese-noodle-soup.html)
-- [Sticky Porkchops](sticky-porkchops.html)
-- [Pork-based Chili con Carne](pork-based-chili-con-carne.html)
-- [Beef Goulash](beef-goulash.html)
-- [Omelet](omelet.html)
-- [Cheesy Meatballs with Tomato Sauce](cheesy-meatballs.html)
-- [Country Breakfast Skillet](country-skillet.html)
-- [Creamy Mashed Potatoes](creamy-mashed-potatoes.html)
-- [Fresh Guacamole](guacamole.html)
-- [Merchant's Buckwheat](merchants-buckwheat.html)
-- [Pasta Navy Style](pasta-navy-style.html)
-- [Pan-seared Chicken Fillet](pan-seared-chicken.html)
-- [Parmesan Potatoes](parmesan-potatoes.html)
-- [Refried Beans](refried-beans.html)
-- [Sunday Morning Milkshake](sunday-milkshake.html)
-- [Quesadilla](quesadilla.html)
-- [Tuna Sub](tuna-sub.html)
-- [Spaghetti and Meatballs](spaghetti-and-meatballs.html)
-- [Peanut Butter](peanut-butter.html)
-- [Hummus](hummus.html)
-- [Ginataang Kalabasa](ginataang-kalabasa.html)
-- [Simple Sauce](simple-sauce.html)
-- [Hellfire Steak](hellfire-steak.html)
-
-## Basics
-
-- [Chicken Stock and Bone Broth](chicken-stock-bone-broth.html)
-- [Pasta (store bought)](pasta.html)
-- [Pasta Sauce](pasta-sauce.html)
-- [Rice](rice.html)
-- [Eggs](eggs.html)
-- [Ketchup](ketchup.html)
-- [Oats](oats.html)
-- [Bread](bread.html)
-- [Sauerkraut](sauerkraut.html)
-- [Yogurt](yogurt.html)
-- [Sweet Potato Fries](sweet-potato-fries.html)
-- [Fried Potatoes](fried-potatoes.html)
-- [Croutons](croutons.html)
-
-## More Info
-
-- [Table Salt vs. Kosher Salt?](salt.html)
-- [Slow Cooking Benefits and Tips](slow-cooking-tips.html)
-- [Get a Mortar and Pestle](mortar-and-pestle.html)
-
-## About this site
-
-Founded to provide a simple online cookbook without ads and obese web design.
-
-### It's easy to contribute!
-
-- Submit new recipes via git via [Github](https://github.com/lukesmithxyz/based.cooking) or [Gitlab](https://gitlab.com/lukesmithxyz/based.cooking).
-- If a recipe has no image for it, make the recipe as presented and submit a picture above or to [luke@lukesmith.xyz](mailto:luke@lukesmith.xyz).
-- Donate to the individual people who contribute pages whose names are at the bottom of each page.
-- Donate Bitcoin to the site's long-term maintenance fund: `bc1q763s4ud0hgfa66ce64gyh6tsss49vyk5cqcm6w` ([QR code](pix/bitcoin-based-cooking.webp))
diff --git a/src/instant-tom-yam-kung-noodle-soup.md b/src/instant-tom-yam-kung-noodle-soup.md
index 9dc4425..ba3ea05 100644
--- a/src/instant-tom-yam-kung-noodle-soup.md
+++ b/src/instant-tom-yam-kung-noodle-soup.md
@@ -29,3 +29,5 @@ Pro tip: Squeeze some remaining lime juice into your drinking water.
## Contribution
- Ting-Yun Huang, Ricky Lindén - [website](https://rickylinden.com), [donate](https://rickylinden.com/donate.html)
+
+;tags: thai quick soup
diff --git a/src/japanese-noodle-soup.md b/src/japanese-noodle-soup.md
index 9cb8d19..0268cb8 100644
--- a/src/japanese-noodle-soup.md
+++ b/src/japanese-noodle-soup.md
@@ -1,6 +1,6 @@
# Japanese Noodle Soup
-![Japanese Noodle Soup](/pix/japanese-noodle-soup.webp)
+![Japanese Noodle Soup](pix/japanese-noodle-soup.webp)
This is a very easy and simple Japanese style ramen noodle soup. This is very cheap to make, and you can really customise this however you wish with the garnish. This is my own spin inspired by other recipes that I found.
@@ -42,3 +42,5 @@ This is a very easy and simple Japanese style ramen noodle soup. This is very ch
## Contribution
- Jake Keast - [website](https://jakekeast.xyz), xmr: 8BBKCQbL1xSKS8fWE257cVBzerYu1censWYUCncLppo6MPLd3u59ejYE9XMdW4CNL3DGgf1vjG5SHGDEJV95xtxW2wsaANo
+
+;tags: japanese chicken soup
diff --git a/src/ketchup.md b/src/ketchup.md
index e1a33f3..512c8b5 100644
--- a/src/ketchup.md
+++ b/src/ketchup.md
@@ -29,3 +29,5 @@
## Contribution
- Anonymous
+
+;tags: basic sauce
diff --git a/src/liverpate.md b/src/liverpate.md
index cc5db8e..4fdd7cc 100644
--- a/src/liverpate.md
+++ b/src/liverpate.md
@@ -27,3 +27,5 @@ With beef liver, remove its membrane, that is on top, with your fingers. Cut it
vod3
btc: 3DdikYnxPHv6Bz6qgXYoyxrcbikADqxwNd
+
+;tags: pate liver
diff --git a/src/maque-choux.md b/src/maque-choux.md
index b55f1ba..7b8cc83 100644
--- a/src/maque-choux.md
+++ b/src/maque-choux.md
@@ -24,3 +24,5 @@ a sausage dish. Pairs well with brown ales.
## Contributors
- **Dr. Cat** -- [website](https://github.com/castrated/)
+
+;tags: american corn
diff --git a/src/marinated-pork-steaks.md b/src/marinated-pork-steaks.md
index 584f49a..d98a421 100644
--- a/src/marinated-pork-steaks.md
+++ b/src/marinated-pork-steaks.md
@@ -28,3 +28,5 @@ And just like that you got yourself some tasty pork steaks.
## Contribution
- Ricky Lindén - [website](https://rickylinden.com), [donate](https://rickylinden.com/donate.html)
+
+;tags: pork
diff --git a/src/matcha-cookies.md b/src/matcha-cookies.md
index a1779f3..be68d9c 100644
--- a/src/matcha-cookies.md
+++ b/src/matcha-cookies.md
@@ -33,3 +33,5 @@ Matcha is a type of tea leaf powder that has a beautiful vivid green color. Howe
## Contribution
- Hamza Masood
+
+;tags: snack sweet desert
diff --git a/src/merchants-buckwheat.md b/src/merchants-buckwheat.md
index d707e70..7c5bfda 100644
--- a/src/merchants-buckwheat.md
+++ b/src/merchants-buckwheat.md
@@ -49,3 +49,5 @@ Originally published at [https://www.yaroslavps.com/food/merchants-buckwheat/](h
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: russian pork
diff --git a/src/miso-ginger-pork.md b/src/miso-ginger-pork.md
index 7dbc6ac..12e8a0f 100644
--- a/src/miso-ginger-pork.md
+++ b/src/miso-ginger-pork.md
@@ -34,3 +34,5 @@
## Contribution
- Jon Paul Uritis - [website](https://jonpauluritis.com), [donate](http://paypal.me/jppope)
+
+;tags: japanese pork
diff --git a/src/mortar-and-pestle.md b/src/mortar-and-pestle.md
deleted file mode 100644
index 6abf387..0000000
--- a/src/mortar-and-pestle.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Get a Mortar and Pestle
-
-![mortar-and-pestle](pix/mortar-and-pestle.webp)
-
-Mortars and pestles are tools which have unfortunately been nearly forgotten in modern American kitchens, but they
-have been around since the stone age for a reason.
-They are one of the most useful appliances and require no electricity.
-
-They easily smash garlic, nuts and other things (also automatically removes skins).
-This is much better than simple slicing because it squeezes out the juices and tastes of things.
-
-You can also easily make paste (like pesto) and out of herbs and other simple ingredients.
-Many people use a hard-to-clean and expensive electric food processor to do things like this,
-but a larger mortar and pestle could get the job done just as easily.
-
-Do not get porcelain mortar and pestles; they are non-functional and loud.
-I have two granite ones which work very well (see pic above).
diff --git a/src/oats.md b/src/oats.md
index b146c7d..761ae87 100644
--- a/src/oats.md
+++ b/src/oats.md
@@ -41,3 +41,5 @@ size. My personal "standard serving" is 1/3 cup steel cut or 1/2 cup rolled
## Contribution
- Martin Chrzanowski -- [website](https://m-chrzan.xyz), [donate](https://m-chrzan.xyz/crypto.html)
+
+;tags: sweet breakfast quick
diff --git a/src/oaty-pancakes.md b/src/oaty-pancakes.md
index b764cf1..44dbe3d 100644
--- a/src/oaty-pancakes.md
+++ b/src/oaty-pancakes.md
@@ -39,3 +39,5 @@ and serve bacon or sausages alongside if you like.
## Contribution
Puremana
+
+;tags: breakfast quick sweet cake
diff --git a/src/omelet.md b/src/omelet.md
index ae3347b..001dff7 100644
--- a/src/omelet.md
+++ b/src/omelet.md
@@ -36,3 +36,5 @@
## Contribution
- Anonymous
+
+;tags: eggs quick
diff --git a/src/pan-seared-chicken.md b/src/pan-seared-chicken.md
index aaef8c0..2945223 100644
--- a/src/pan-seared-chicken.md
+++ b/src/pan-seared-chicken.md
@@ -39,3 +39,5 @@ Originally published at [https://www.yaroslavps.com/food/pan-seared-chicken-file
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: chicken
diff --git a/src/pancake.md b/src/pancake.md
index fe65102..f2c540d 100644
--- a/src/pancake.md
+++ b/src/pancake.md
@@ -18,3 +18,5 @@ Here is a simple Pancake recipe
## Contribution
BeFe
+
+;tags: quick basic breakfast sweet cake
diff --git a/src/parmesan-potatoes.md b/src/parmesan-potatoes.md
index 8274856..b31efdb 100644
--- a/src/parmesan-potatoes.md
+++ b/src/parmesan-potatoes.md
@@ -37,3 +37,5 @@ Originally published at [https://www.yaroslavps.com/food/parmesan-potatoes/](htt
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: potato side
diff --git a/src/pasta-navy-style.md b/src/pasta-navy-style.md
index d81e316..964d365 100644
--- a/src/pasta-navy-style.md
+++ b/src/pasta-navy-style.md
@@ -49,3 +49,5 @@ Originally published at [https://www.yaroslavps.com/food/navy-style-pasta/](http
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: russian pasta beef
diff --git a/src/pasta-sauce.md b/src/pasta-sauce.md
index 4ade5a4..c0f9ca4 100644
--- a/src/pasta-sauce.md
+++ b/src/pasta-sauce.md
@@ -21,3 +21,5 @@ Unlike modern store-bought sauces, there is no added sugar, only the subtle tast
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: italian basic sauce
diff --git a/src/pasta.md b/src/pasta.md
index 228e2f1..62437c2 100644
--- a/src/pasta.md
+++ b/src/pasta.md
@@ -29,3 +29,5 @@ but if you keep it in there for *too* long, it'll become mush.
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: italian pasta quick basic side
diff --git a/src/peanut-butter.md b/src/peanut-butter.md
index 1780711..131b016 100644
--- a/src/peanut-butter.md
+++ b/src/peanut-butter.md
@@ -13,3 +13,5 @@
## Contribution
- Jacob Smith - [website](https://jacobwsmith.xyz)
+
+;tags: spread snack basic
diff --git a/src/pizza-dough.md b/src/pizza-dough.md
index 7210a96..dafb5b6 100644
--- a/src/pizza-dough.md
+++ b/src/pizza-dough.md
@@ -20,3 +20,5 @@ if you use other flour like rye, you may need more liquid.
## Contribution
BeFe
+
+;tags: basic
diff --git a/src/pork-based-chili-con-carne.md b/src/pork-based-chili-con-carne.md
index d0fb3ac..2e65c1f 100644
--- a/src/pork-based-chili-con-carne.md
+++ b/src/pork-based-chili-con-carne.md
@@ -37,3 +37,5 @@ Mince should be broken up well before cooking.
## Contribution
jacobsiggins.co.uk
+
+;tags: mexican beans pork
diff --git a/src/portuguese-steak-with-beer-sauce.md b/src/portuguese-steak-with-beer-sauce.md
index aba0c02..86c54a0 100644
--- a/src/portuguese-steak-with-beer-sauce.md
+++ b/src/portuguese-steak-with-beer-sauce.md
@@ -26,3 +26,5 @@ Bitoque (pronounced bee-tok) is a traditional quintessential Portuguese dish, it
## Contribution
- Artur Mancha -- [Pleroma](https://pleroma.pt/@lisbonjoker)
+
+;tags: portuguese beef
diff --git a/src/potato-and-eggplant-curry.md b/src/potato-and-eggplant-curry.md
index d6e0955..58f3db2 100644
--- a/src/potato-and-eggplant-curry.md
+++ b/src/potato-and-eggplant-curry.md
@@ -38,3 +38,5 @@ A simple and tasty curry that is easy to customise.
## Contribution
- Luke Chadwick - [website](https://lukechadwick.com)
+
+;tags: indian curry potato
diff --git a/src/quesadilla.md b/src/quesadilla.md
index b3638fc..5902565 100644
--- a/src/quesadilla.md
+++ b/src/quesadilla.md
@@ -1,4 +1,4 @@
-## Quesadilla
+# Quesadilla
A quick and easy meal, able to be taken anywhere, but be warned of its high empty carb counts.
@@ -26,3 +26,5 @@ Cooking time: ~5 minutes
## Contributors
- peebowo
+
+;tags: mexican quick
diff --git a/src/quickbreakfastspaghetti.md b/src/quickbreakfastspaghetti.md
index 78872b8..b3f8f6d 100644
--- a/src/quickbreakfastspaghetti.md
+++ b/src/quickbreakfastspaghetti.md
@@ -2,13 +2,13 @@
A quick breakfast spaghetti recipe that covers a healthy amount of carbs, fat, and spices. Eggs
and/or bacon can be added to cover some protein, you should cook those while the boiler is cooking
-the speghatti for time efficiency.
+the spaghetti for time efficiency.
## Ingredients
- Spaghetti (any kind you prefer)
- Ground spices (I like to use cumin, tumeric, paprika, and garlic)
-- Tomato Paste/Sauce (preferably one with basil and without perservatives)
+- Tomato Paste/Sauce (preferably one with basil and without preservative)
- Extra Virgin Olive Oil
## Directions
@@ -16,7 +16,7 @@ the speghatti for time efficiency.
1. Boil some water fully and prepare a pot.
2. While the water is boiling, add all your spices in the pot with the spaghetti on top.
3. Pour the boiled water on the spaghetti to make it soft so you can immerse it fully in the water.
-4. Mix thouroughly the water with the spices and salt and pepper if needed.
+4. Mix thoroughly the water with the spices and salt and pepper if needed.
5. Place the pot on the stove, keep it boiling, and stir every minute or two for 8 minutes.
6. It should take no more than 8 minutes, but you can check if it is fully cooked by tasting one
peice at a time.
@@ -31,3 +31,5 @@ the speghatti for time efficiency.
## Contribution
- Sadoon AlBader - [website](https://soulserv.xyz)
+
+;tags: breakfast pasta
diff --git a/src/ragu.md b/src/ragu.md
index fa6edd3..2d32f8b 100644
--- a/src/ragu.md
+++ b/src/ragu.md
@@ -38,3 +38,5 @@ Reduce heat to very low and add mix to the pan.
Support the [site](https://based.cooking/pix/bitcoin-based-cooking.webp).
Luke's Vultr referral credits won't last forever...
+
+;tags: italian pasta
diff --git a/src/refried-beans.md b/src/refried-beans.md
index a04583b..ec10885 100644
--- a/src/refried-beans.md
+++ b/src/refried-beans.md
@@ -42,3 +42,5 @@ Originally published at [https://www.yaroslavps.com/food/refried-beans/](https:/
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: mexican beans
diff --git a/src/rice.md b/src/rice.md
index 5ffff9e..b913148 100644
--- a/src/rice.md
+++ b/src/rice.md
@@ -29,3 +29,5 @@ For Mexican rice, you might want to avoid cooking in stock to avoid taste clashe
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: basic rice side
diff --git a/src/roasted-chicken-breast.md b/src/roasted-chicken-breast.md
index 21f29b2..4792d24 100644
--- a/src/roasted-chicken-breast.md
+++ b/src/roasted-chicken-breast.md
@@ -1,4 +1,3 @@
-
# Roasted chicken breast
How to roast chicken breast with a "leave-in" probe thermometer. The thermometer ensures the chicken comes out juicy and delicious.
@@ -12,15 +11,17 @@ How to roast chicken breast with a "leave-in" probe thermometer. The thermometer
## Directions
1. Fill a large bowl with enough water to submerge the chicken. Add salt to the water until it's fully saturated. Put the chicken under the water and let it sit for 20-40 minutes at room temperature.
-1. Preheat the oven to 230°C / 450°F.
-1. Remove the chicken from the water. Rinse it. Dry it. Put it in a roasting pan (you can use a casserole dish, oven-safe skillet, or baking pan too).
-1. Brush the chicken with melted butter. For best results, brush all sides of the chicken breast.
-1. Season with pepper and any optional seasoning. Season with salt last.
-1. Insert the thermometer probe into the thickest part of the smallest breast.
-1. Bake until the internal temperature reaches 68°C / 155°F.
-1. Remove from the oven and immediately cover with foil leaving the probe inserted. Let the chicken sit for 10 minutes at room temperature. The chicken will continue to cook. It should reach at least 74°C / 165°F but if it doesn't, see [this reddit post](https://www.reddit.com/r/Cooking/comments/49opyx/cooking_chicken_to_temps_below_165_is_it_safe/) about food safety when cooking chicken to less than 165°F.
-1. Serve
+2. Preheat the oven to 230°C / 450°F.
+3. Remove the chicken from the water. Rinse it. Dry it. Put it in a roasting pan (you can use a casserole dish, oven-safe skillet, or baking pan too).
+4. Brush the chicken with melted butter. For best results, brush all sides of the chicken breast.
+5. Season with pepper and any optional seasoning. Season with salt last.
+6. Insert the thermometer probe into the thickest part of the smallest breast.
+7. Bake until the internal temperature reaches 68°C / 155°F.
+8. Remove from the oven and immediately cover with foil leaving the probe inserted. Let the chicken sit for 10 minutes at room temperature. The chicken will continue to cook. It should reach at least 74°C / 165°F but if it doesn't, see [this reddit post](https://www.reddit.com/r/Cooking/comments/49opyx/cooking_chicken_to_temps_below_165_is_it_safe/) about food safety when cooking chicken to less than 165°F.
+9. Serve
## Contribution
-- Michael - [website](https://murphym.dev/) \ No newline at end of file
+- Michael - [website](https://murphym.dev/)
+
+;tags: chicken
diff --git a/src/roesti.md b/src/roesti.md
index 6f9161a..c3c693f 100644
--- a/src/roesti.md
+++ b/src/roesti.md
@@ -30,3 +30,5 @@ Cooking time: ~45 minutes
## Contributors
- **Alexander Bocken** -- [contact](mailto:alexander@bocken.org)
+
+;tags: swiss potato side
diff --git a/src/salt.md b/src/salt.md
deleted file mode 100644
index e35af4f..0000000
--- a/src/salt.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Table Salt vs. Kosher Salt
-
-Table salt is the salt on your table: teeny-tiny grains in a little shaker.
-
-Kosher salt is the salt that should be in your kitchen: large, thick grains.
-
-Some people new to cooking get confused on the difference and when to use one or the other.
-
-The long story short is you should always use kosher salt for cooking.
-Table salt is much more intense and is only for brisk post-cooking flavoring at the table.
-Kosher salt is more subtle, dissolves slower and thus releases its flavor slower.
-
-Note also that you should add a larger mass of kosher salt where you might only
-add a pinch of table salt, since table salt is much stronger partially because
-it dissolves so quickly.
-
-## Table salt is not lindy.
-
-Table salt has iodine and other additives.
-
-Its history is somewhat analogous to the addition of fluoride to municipal
-water supplies. Nearly a hundred years ago, the U.S. government began working
-with corporations to add iodine to salt ostensibly because they were concerned
-about people having iodine deficiencies.
-
-A healthy diet including eggs, dairy and some seafood should get enough iodine
-elsewhere to not need it in the form of table salt supplements, so don't feel
-like to you need to use it.
-
-## Why is kosher salt called "kosher" salt?
-
-Hebrews and then Jews revile eating meat with any blood in it. Larger grain
-salt was better for the process called "koshering" whereby meat is covered in
-salt and the salt draws out the liquid blood. Note that table salt is not
-non-kosher in Mosaic law either, it is simply not suited for this "koshering"
-process because it simply dissolves into the meat.
-
-For one reason or another, this association caught on and we now call coarse
-grain salt "kosher." Note that kosher salt is more or less the natural form of
-salt, it is not, as one might imagine, some new innovation to comply with
-Jewish dietary practice.
diff --git a/src/sauerkraut.md b/src/sauerkraut.md
index 2e707b1..7fa2e01 100644
--- a/src/sauerkraut.md
+++ b/src/sauerkraut.md
@@ -20,3 +20,5 @@ Sauerkraut is a based lacto-fermented food that is healthy and has a long shelf
## Contribution
- Andrej Kirchmaier, XMR: 53QjcCVACp4Fuc5cULMoa8GyS8jyuwLteSihhoAkuezfBMSpnwsQgZ2Mu1cha2fpG8AZqtAwdHmZB6hNqk3K4485HrKQFyS
+
+;tags: german cabbage side
diff --git a/src/scandinavian-coffee-cake.md b/src/scandinavian-coffee-cake.md
index 7f0a4de..dffe18e 100644
--- a/src/scandinavian-coffee-cake.md
+++ b/src/scandinavian-coffee-cake.md
@@ -43,3 +43,5 @@
## Contribution
- Anonymous
+
+;tags: sweet desert cake
diff --git a/src/simple-sauce.md b/src/simple-sauce.md
index a6651c6..029180e 100644
--- a/src/simple-sauce.md
+++ b/src/simple-sauce.md
@@ -15,3 +15,5 @@ This is a simple and well known recipe. It goes by many names and this recipe is
## Contribution
By el3ctr0lyte [github](https://github.com/el3ctr0lyte)
+
+;tags: basic quick sauce
diff --git a/src/slow-cooking-tips.md b/src/slow-cooking-tips.md
deleted file mode 100644
index e635445..0000000
--- a/src/slow-cooking-tips.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Slow Cooking Benefits and Tips
-
-You can buy a Slow Cooker for cheap, but it is still one of the most precious tools you can have in a kitchen.
-
-## Benefits
-
-- It's cheap: slow-cooking turns the toughest and cheapest cuts of meat into that "fall off the bone" goodness. Chuck steak and pork shoulder/Boston butts are some of the cheapest meats and are sure hard to eat, but put them in a slow-cooker and it's gourmet stuff.
-- It is easy and low-effort: ingredients take very little time to prep and the cooking happens overnight or while you're at work.
-- It's an objective science: a lot of people have a hard time developing the best techniques for kneading or pan-frying or other culinary skills, but slow-cooking just requires you put the ingredients in. No magic, just follow directions.
-- It's relaxing: by the time your food is done, you've had plenty of time to clean up, so you can serve and eat your meal without having to worry about cleaning up afterwards.
-- It's portable: you can cook for an event or your friends because you load up your slow-cooker and go.
-
-## Tips
-
-- Things that need more cooking should always go at the bottom. For example, potatoes take forever to cook, so put them under your meat. They'll get the extra cooking they need while getting marinated in juices.
-- Only slow-cook dry herbs, not freshly-picked herbs, although you can add freshly-picked herbs in the last 10 or 20 minutes for some extra flavor.
-- Only take off the top to check how things are doing in absolute emergencies. It loses a lot more heat than you might expect when you open that.
diff --git a/src/spaghetti-and-meatballs.md b/src/spaghetti-and-meatballs.md
index eff8d26..9f39199 100644
--- a/src/spaghetti-and-meatballs.md
+++ b/src/spaghetti-and-meatballs.md
@@ -82,3 +82,5 @@
## Contribution
- ClosedGL - [GitHub](https://github.com/ClosedGL2)
+
+;tags: italian pasta beef pork
diff --git a/src/sticky-porkchops.md b/src/sticky-porkchops.md
index 1e0cdf3..51cfd88 100644
--- a/src/sticky-porkchops.md
+++ b/src/sticky-porkchops.md
@@ -28,3 +28,5 @@ Simple chinese inspired sticky porkchops.
## Contribution
- Jake Keast - [website](https://jakekeast.xyz), xmr: 8BBKCQbL1xSKS8fWE257cVBzerYu1censWYUCncLppo6MPLd3u59ejYE9XMdW4CNL3DGgf1vjG5SHGDEJV95xtxW2wsaANo
+
+;tags: japanese pork soup
diff --git a/src/stroganoff.md b/src/stroganoff.md
index ffc03ea..5d0fadc 100644
--- a/src/stroganoff.md
+++ b/src/stroganoff.md
@@ -30,3 +30,5 @@ This is American-style stroganoff.
## Contribution
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
+
+;tags: american beef
diff --git a/src/sunday-milkshake.md b/src/sunday-milkshake.md
index 50afdfa..807f9af 100644
--- a/src/sunday-milkshake.md
+++ b/src/sunday-milkshake.md
@@ -38,3 +38,5 @@ Originally published at [https://www.yaroslavps.com/food/sunday-morning-milkshak
- Yaroslav de la Peña Smirnov — [website](https://www.yaroslavps.com/),
[other website](https://saucesource.cc/),
[donate](https://www.yaroslavps.com/donate)
+
+;tags: sweet breakfast drink
diff --git a/src/sweet-potato-fries.md b/src/sweet-potato-fries.md
index 21447ef..72dd210 100644
--- a/src/sweet-potato-fries.md
+++ b/src/sweet-potato-fries.md
@@ -31,3 +31,5 @@ A simple, tasty, and healthy carb based snack.
## Contribution
Shane Kunz - [Website](https://shanekunz.com)
+
+;tags: potato snack side
diff --git a/src/taco-meat.md b/src/taco-meat.md
index b0d7222..b6657b3 100644
--- a/src/taco-meat.md
+++ b/src/taco-meat.md
@@ -23,3 +23,4 @@
- Elias Howell -- [website](https://snarf.top)
+;tags: mexican beef
diff --git a/src/template.md b/src/template.md
deleted file mode 100644
index eca38fd..0000000
--- a/src/template.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Recipe name
-
-This is a brief, one or two sentence description of the dish.
-
-Optionally include a picture of the dish here, stored in `pix/` with the same base name as this file.
-Please take your own picture after having followed exactly this recipe.
-
-## Ingredients
-
-- Just do
-- a very simple
-- markdown list for this
-- with amounts.
-
-## Directions
-
-1. Now include the directions.
-2. I suppose this list should be numbered
-3. just for convenience's sake.
-4. If necessary, include directional images between these items.
-
-![like this](lol.webp)
-
-5. Looks good.
-6. Obvious,
-
-## Contributors
-
-<!--
-Put your name or identifier here if you want.
-Limit yourself to a single line with links like this:
--->
-
-- **Luke Smith** -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
-- Billy Smith -- [website](https://lukesmith.xyz) (improved kneading technique added)
-
-<!--
-If someone add a *substantial* improvement, they can add their name to the
-bottom of the list (at least for the time being). In that case, the original
-author's line should still be at the top and bold.
--->
-
-<!--
-Other Rules:
-
-- Images should be as small as possible in size, preferably .webp files.
-- Minor edits (spell checkings) do not warrant credit at the bottom.
-- Everything you add here should be public domain. Getting credit at the bottom for adding the article is not a claim to ownership.
--->
diff --git a/src/tortellini.md b/src/tortellini.md
index 069086f..8ca4e64 100644
--- a/src/tortellini.md
+++ b/src/tortellini.md
@@ -23,3 +23,5 @@
## Contribution
- Teo Dragovic - [website](https://teodragovic.com)
+
+;tags: italian pasta quick
diff --git a/src/tuna-sub.md b/src/tuna-sub.md
index a03d66a..60ca446 100644
--- a/src/tuna-sub.md
+++ b/src/tuna-sub.md
@@ -26,3 +26,5 @@ Use the best tuna you can find. I like oil-packed but water is OK. Someone you k
## Contribution
- I don't think you could call it that.
+
+;tags: fish sandwich quick
diff --git a/src/tuscan-style-pork-roast.md b/src/tuscan-style-pork-roast.md
index d8f3302..9e5b476 100644
--- a/src/tuscan-style-pork-roast.md
+++ b/src/tuscan-style-pork-roast.md
@@ -41,3 +41,5 @@ I point out that ingredients need to be fresh, the olive oil high quality, the s
## Contribution
- Tanner Wilcox – [gitlab](https://git.najer.info/twiclo), [donate](https://twil.cx/donate.txt)
+
+;tags: italian pork
diff --git a/src/yogurt.md b/src/yogurt.md
index 1522c4d..24f37fc 100644
--- a/src/yogurt.md
+++ b/src/yogurt.md
@@ -21,3 +21,5 @@
## Contribution
- italian boy
+
+;tags: basic breakfast
diff --git a/ssg5 b/ssg5
deleted file mode 100755
index 9aa58fe..0000000
--- a/ssg5
+++ /dev/null
@@ -1,263 +0,0 @@
-#!/bin/sh -e
-#
-# https://rgz.ee/bin/ssg5
-# Copyright 2018-2019 Roman Zolotarev <hi@romanzolotarev.com>
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-#
-
-main() {
- test -n "$1" || usage
- test -n "$2" || usage
- test -n "$3" || usage
- test -n "$4" || usage
- test -d "$1" || no_dir "$1"
- test -d "$2" || no_dir "$2"
-
- src=$(readlink_f "$1")
- dst=$(readlink_f "$2")
-
- IGNORE=$(
- if ! test -f "$src/.ssgignore"
- then
- printf ' ! -path "*/.*"'
- return
- fi
- while read -r x
- do
- test -n "$x" || continue
- printf ' ! -path "*/%s*"' "$x"
- done < "$src/.ssgignore"
- )
-
- # files
-
- title="$3"
-
- h_file="$src/_header.html"
- f_file="$src/_footer.html"
- test -f "$f_file" && FOOTER=$(cat "$f_file") && export FOOTER
- test -f "$h_file" && HEADER=$(cat "$h_file") && export HEADER
-
- list_dirs "$src" |
- (cd "$src" && cpio -pdu "$dst")
-
- fs=$(
- if test -f "$dst/.files"
- then list_affected_files "$src" "$dst/.files"
- else list_files "$1"
- fi
- )
-
- if test -n "$fs"
- then
- echo "$fs" | tee "$dst/.files"
-
- if echo "$fs" | grep -q '\.md$'
- then
- if test -x "$(which lowdown 2> /dev/null)"
- then
- echo "$fs" | grep '\.md$' |
- render_md_files_lowdown "$src" "$dst" "$title"
- else
- if test -x "$(which Markdown.pl 2> /dev/null)"
- then
- echo "$fs" | grep '\.md$' |
- render_md_files_Markdown_pl "$src" "$dst" "$title"
- else
- echo "couldn't find lowdown nor Markdown.pl"
- exit 3
- fi
- fi
- fi
-
- echo "$fs" | grep '\.html$' |
- render_html_files "$src" "$dst" "$title"
-
- echo "$fs" | grep -Ev '\.md$|\.html$' |
- (cd "$src" && cpio -pu "$dst")
- fi
-
- printf '[ssg] ' >&2
- print_status 'file, ' 'files, ' "$fs" >&2
-
-
- # sitemap
-
- base_url="$4"
- date=$(date +%Y-%m-%d)
- urls=$(list_pages "$src")
-
- test -n "$urls" &&
- render_sitemap "$urls" "$base_url" "$date" > "$dst/sitemap.xml"
-
- print_status 'url' 'urls' "$urls" >&2
- echo >&2
-}
-
-
-readlink_f() {
- file="$1"
- cd "$(dirname "$file")"
- file=$(basename "$file")
- while test -L "$file"
- do
- file=$(readlink "$file")
- cd "$(dirname "$file")"
- file=$(basename "$file")
- done
- dir=$(pwd -P)
- echo "$dir/$file"
-}
-
-
-print_status() {
- test -z "$3" && printf 'no %s' "$2" && return
-
- echo "$3" | awk -v singular="$1" -v plural="$2" '
- END {
- if (NR==1) printf NR " " singular
- if (NR>1) printf NR " " plural
- }'
-}
-
-
-usage() {
- echo "usage: ${0##*/} src dst title base_url" >&2
- exit 1
-}
-
-
-no_dir() {
- echo "${0##*/}: $1: No such directory" >&2
- exit 2
-}
-
-list_dirs() {
- cd "$1" && eval "find . -type d ! -name '.' ! -path '*/_*' $IGNORE"
-}
-
-
-list_files() {
- cd "$1" && eval "find . -type f ! -name '.' ! -path '*/_*' $IGNORE"
-}
-
-
-list_dependant_files () {
- e="\\( -name '*.html' -o -name '*.md' -o -name '*.css' -o -name '*.js' \\)"
- cd "$1" && eval "find . -type f ! -name '.' ! -path '*/_*' $IGNORE $e"
-}
-
-list_newer_files() {
- cd "$1" && eval "find . -type f ! -name '.' $IGNORE -newer $2"
-}
-
-
-has_partials() {
- grep -qE '^./_.*\.html$|^./_.*\.js$|^./_.*\.css$'
-}
-
-
-list_affected_files() {
- fs=$(list_newer_files "$1" "$2")
-
- if echo "$fs" | has_partials
- then list_dependant_files "$1"
- else echo "$fs"
- fi
-}
-
-
-render_html_files() {
- while read -r f
- do render_html_file "$3" < "$1/$f" > "$2/$f"
- done
-}
-
-
-render_md_files_lowdown() {
- while read -r f
- do
- lowdown \
- < "$1/$f" |
- render_html_file "$3" \
- > "$2/${f%\.md}.html"
- done
-}
-
-
-render_md_files_Markdown_pl() {
- while read -r f
- do
- Markdown.pl < "$1/$f" |
- render_html_file "$3" \
- > "$2/${f%\.md}.html"
- done
-}
-
-
-render_html_file() {
- # h/t Devin Teske
- awk -v title="$1" '
- { body = body "\n" $0 }
- END {
- body = substr(body, 2)
- if (body ~ /<[Hh][Tt][Mm][Ll]/) {
- print body
- exit
- }
- if (match(body, /<[[:space:]]*[Hh]1(>|[[:space:]][^>]*>)/)) {
- t = substr(body, RSTART + RLENGTH)
- sub("<[[:space:]]*/[[:space:]]*[Hh]1.*", "", t)
- gsub(/^[[:space:]]*|[[:space:]]$/, "", t)
- if (t) title = t " &mdash; " title
- }
- n = split(ENVIRON["HEADER"], header, /\n/)
- for (i = 1; i <= n; i++) {
- if (match(tolower(header[i]), "<title></title>")) {
- head = substr(header[i], 1, RSTART - 1)
- tail = substr(header[i], RSTART + RLENGTH)
- print head "<title>" title "</title>" tail
- } else print header[i]
- }
- print body
- print ENVIRON["FOOTER"]
- }'
-}
-
-
-list_pages() {
- e="\\( -name '*.html' -o -name '*.md' \\)"
- cd "$1" && eval "find . -type f ! -path '*/.*' ! -path '*/_*' $IGNORE $e" |
- sed 's#^./##;s#.md$#.html#;s#/index.html$#/#'
-}
-
-
-render_sitemap() {
- urls="$1"
- base_url="$2"
- date="$3"
-
- echo '<?xml version="1.0" encoding="UTF-8"?>'
- echo '<urlset'
- echo 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
- echo 'xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9'
- echo 'http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"'
- echo 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
- echo "$urls" |
- sed -E 's#^(.*)$#<url><loc>'"$base_url"'/\1</loc><lastmod>'\
-"$date"'</lastmod><priority>1.0</priority></url>#'
- echo '</urlset>'
-}
-
-main "$@"
diff --git a/templates/article_entry.html b/templates/article_entry.html
new file mode 100644
index 0000000..4c149eb
--- /dev/null
+++ b/templates/article_entry.html
@@ -0,0 +1 @@
+<li><a href="$URL">$TITLE</a></li>
diff --git a/templates/article_footer.html b/templates/article_footer.html
new file mode 100644
index 0000000..331e55b
--- /dev/null
+++ b/templates/article_footer.html
@@ -0,0 +1 @@
+<p><i>Recipe posted on: $DATE_POSTED, last edited on: $DATE_EDITED, written by: $AUTHOR</i></p>
diff --git a/templates/article_header.html b/templates/article_header.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/templates/article_header.html
diff --git a/templates/article_list_footer.html b/templates/article_list_footer.html
new file mode 100644
index 0000000..3d3a44c
--- /dev/null
+++ b/templates/article_list_footer.html
@@ -0,0 +1 @@
+</ul>
diff --git a/templates/article_list_header.html b/templates/article_list_header.html
new file mode 100644
index 0000000..54ba16f
--- /dev/null
+++ b/templates/article_list_header.html
@@ -0,0 +1,2 @@
+<h2>Recipes</h2>
+<ul>
diff --git a/templates/article_separator.html b/templates/article_separator.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/templates/article_separator.html
diff --git a/templates/footer.html b/templates/footer.html
new file mode 100644
index 0000000..58b5364
--- /dev/null
+++ b/templates/footer.html
@@ -0,0 +1,10 @@
+<footer>
+ <hr/>
+ <a href=".">homepage</a>
+ <a href="./rss.xml">RSS</a>
+ <a href="./atom.xml">atom</a>
+ <br>
+ <p>All site content is in the Public Domain.</p>
+ <p><small>Powered by <a href="https://pedantic.software/git/blogit">blogit</a></small></p>
+</footer>
+</body></html>
diff --git a/templates/header.html b/templates/header.html
new file mode 100644
index 0000000..7756d4f
--- /dev/null
+++ b/templates/header.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8">
+ <link rel="stylesheet" href="./style.css">
+ <title>$PAGE_TITLE</title>
+ </head>
+ <body>
diff --git a/templates/index_footer.html b/templates/index_footer.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/templates/index_footer.html
diff --git a/templates/index_header.html b/templates/index_header.html
new file mode 100644
index 0000000..0026f08
--- /dev/null
+++ b/templates/index_header.html
@@ -0,0 +1,5 @@
+<div class="banner">
+ <h1>🍳 $TITLE 🍲</h1>
+ <hr/>
+</div>
+<p>Only Based cooking. No ads, no tracking, nothing but based cooking.</p>
diff --git a/templates/tag_entry.html b/templates/tag_entry.html
new file mode 100644
index 0000000..cb23fee
--- /dev/null
+++ b/templates/tag_entry.html
@@ -0,0 +1 @@
+<a href="$URL">$NAME</a> \ No newline at end of file
diff --git a/templates/tag_index_footer.html b/templates/tag_index_footer.html
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/templates/tag_index_footer.html
diff --git a/templates/tag_index_header.html b/templates/tag_index_header.html
new file mode 100644
index 0000000..57fd89f
--- /dev/null
+++ b/templates/tag_index_header.html
@@ -0,0 +1,5 @@
+<div class="banner">
+ <h1>🍳 $TITLE 🍲</h1>
+ <hr/>
+</div>
+<p><i>Filtering recipes tagged:</i> <b>$TAGS</b></p>
diff --git a/templates/tag_link.html b/templates/tag_link.html
new file mode 100644
index 0000000..49cc68c
--- /dev/null
+++ b/templates/tag_link.html
@@ -0,0 +1 @@
+<a href="$TAG_LINK">$TAG_NAME</a>
diff --git a/templates/tag_link_footer.html b/templates/tag_link_footer.html
new file mode 100644
index 0000000..38bf9e7
--- /dev/null
+++ b/templates/tag_link_footer.html
@@ -0,0 +1 @@
+</i></p>
diff --git a/templates/tag_link_header.html b/templates/tag_link_header.html
new file mode 100644
index 0000000..c566585
--- /dev/null
+++ b/templates/tag_link_header.html
@@ -0,0 +1 @@
+<p><i> Recipe tags:
diff --git a/templates/tag_list_footer.html b/templates/tag_list_footer.html
new file mode 100644
index 0000000..38bf9e7
--- /dev/null
+++ b/templates/tag_list_footer.html
@@ -0,0 +1 @@
+</i></p>
diff --git a/templates/tag_list_header.html b/templates/tag_list_header.html
new file mode 100644
index 0000000..ae3a759
--- /dev/null
+++ b/templates/tag_list_header.html
@@ -0,0 +1 @@
+<p><i>Tags:
diff --git a/templates/tag_separator.html b/templates/tag_separator.html
new file mode 100644
index 0000000..c3a6e48
--- /dev/null
+++ b/templates/tag_separator.html
@@ -0,0 +1 @@
+, \ No newline at end of file