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..6333cc2 --- /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 '$$TITLE' > templates/header.html + printf '' > templates/footer.html + printf '' > templates/index_header.html + printf '

Tags:' > templates/tag_list_header.html + printf '$$NAME' > templates/tag_entry.html + printf ', ' > templates/tag_separator.html + printf '

' > templates/tag_list_footer.html + printf '

Articles

' > 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 >> $@; \ + markdown < index.md >> $@; \ + envsubst < templates/article_list_footer.html >> $@; \ + 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 '\n\n\n%s\n%s\n%s\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 '\n%s\n%s\n%s\n%s\n%s\n\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 '\n\n' >> $@ + +blog/atom.xml: $(ARTICLES) + printf '\n\n%s\n%s\n%s\n\n%s\n\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 '\n%s\n\n%s\n%s\n%s\n%s\n%s\n\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 '\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 similarity index 100% rename from src/pix/beef-goulash.webp rename to data/pix/beef-goulash.webp diff --git a/src/pix/bitcoin-based-cooking.webp b/data/pix/bitcoin-based-cooking.webp similarity index 100% rename from src/pix/bitcoin-based-cooking.webp rename to data/pix/bitcoin-based-cooking.webp diff --git a/src/pix/cacio-e-pepe.webp b/data/pix/cacio-e-pepe.webp similarity index 100% rename from src/pix/cacio-e-pepe.webp rename to data/pix/cacio-e-pepe.webp diff --git a/src/pix/carbonara.webp b/data/pix/carbonara.webp similarity index 100% rename from src/pix/carbonara.webp rename to data/pix/carbonara.webp diff --git a/src/pix/cheesy-meatballs.webp b/data/pix/cheesy-meatballs.webp similarity index 100% rename from src/pix/cheesy-meatballs.webp rename to data/pix/cheesy-meatballs.webp diff --git a/src/pix/country-skillet.webp b/data/pix/country-skillet.webp similarity index 100% rename from src/pix/country-skillet.webp rename to data/pix/country-skillet.webp diff --git a/src/pix/creamy-mashed-potatoes.webp b/data/pix/creamy-mashed-potatoes.webp similarity index 100% rename from src/pix/creamy-mashed-potatoes.webp rename to data/pix/creamy-mashed-potatoes.webp diff --git a/src/pix/croutons.webp b/data/pix/croutons.webp similarity index 100% rename from src/pix/croutons.webp rename to data/pix/croutons.webp diff --git a/src/pix/csalad.webp b/data/pix/csalad.webp similarity index 100% rename from src/pix/csalad.webp rename to data/pix/csalad.webp diff --git a/src/pix/fried-anglerfish-fillet-00.webp b/data/pix/fried-anglerfish-fillet-00.webp similarity index 100% rename from src/pix/fried-anglerfish-fillet-00.webp rename to data/pix/fried-anglerfish-fillet-00.webp diff --git a/src/pix/fried-anglerfish-fillet-01.webp b/data/pix/fried-anglerfish-fillet-01.webp similarity index 100% rename from src/pix/fried-anglerfish-fillet-01.webp rename to data/pix/fried-anglerfish-fillet-01.webp diff --git a/src/pix/guacamole.webp b/data/pix/guacamole.webp similarity index 100% rename from src/pix/guacamole.webp rename to data/pix/guacamole.webp diff --git a/src/pix/japanese-noodle-soup.webp b/data/pix/japanese-noodle-soup.webp similarity index 100% rename from src/pix/japanese-noodle-soup.webp rename to data/pix/japanese-noodle-soup.webp diff --git a/src/pix/merchants-buckwheat.webp b/data/pix/merchants-buckwheat.webp similarity index 100% rename from src/pix/merchants-buckwheat.webp rename to data/pix/merchants-buckwheat.webp diff --git a/src/pix/mortar-and-pestle.webp b/data/pix/mortar-and-pestle.webp similarity index 100% rename from src/pix/mortar-and-pestle.webp rename to data/pix/mortar-and-pestle.webp diff --git a/src/pix/pan-seared-chicken.webp b/data/pix/pan-seared-chicken.webp similarity index 100% rename from src/pix/pan-seared-chicken.webp rename to data/pix/pan-seared-chicken.webp diff --git a/src/pix/parmesan-potatoes.webp b/data/pix/parmesan-potatoes.webp similarity index 100% rename from src/pix/parmesan-potatoes.webp rename to data/pix/parmesan-potatoes.webp diff --git a/src/pix/pasta-navy-style.webp b/data/pix/pasta-navy-style.webp similarity index 100% rename from src/pix/pasta-navy-style.webp rename to data/pix/pasta-navy-style.webp diff --git a/src/pix/refried-beans.webp b/data/pix/refried-beans.webp similarity index 100% rename from src/pix/refried-beans.webp rename to data/pix/refried-beans.webp diff --git a/src/pix/sunday-milkshake.webp b/data/pix/sunday-milkshake.webp similarity index 100% rename from src/pix/sunday-milkshake.webp rename to data/pix/sunday-milkshake.webp diff --git a/src/pix/sweet-potato-fries.webp b/data/pix/sweet-potato-fries.webp similarity index 100% rename from src/pix/sweet-potato-fries.webp rename to data/pix/sweet-potato-fries.webp diff --git a/src/pix/tuscan-style-pork-roast.webp b/data/pix/tuscan-style-pork-roast.webp similarity index 100% rename from src/pix/tuscan-style-pork-roast.webp rename to data/pix/tuscan-style-pork-roast.webp diff --git a/src/style.css b/data/style.css similarity index 100% rename from src/style.css rename to data/style.css 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 @@ - - - - - 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 @@ - - - - - - - - - - - - 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 22aaf60..0000000 --- a/src/index.md +++ /dev/null @@ -1,111 +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 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/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 - - - -- **Luke Smith** -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate) -- Billy Smith -- [website](https://lukesmith.xyz) (improved kneading technique added) - - - - 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 -# -# 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 " — " title - } - n = split(ENVIRON["HEADER"], header, /\n/) - for (i = 1; i <= n; i++) { - if (match(tolower(header[i]), "")) { - head = substr(header[i], 1, RSTART - 1) - tail = substr(header[i], RSTART + RLENGTH) - print head "" 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 '' - echo '' - echo "$urls" | - sed -E 's#^(.*)$#'"$base_url"'/\1'\ -"$date"'1.0#' - echo '' -} - -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 @@ +
  • $TITLE
  • 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 @@ +

    Recipe posted on: $DATE_POSTED, last edited on: $DATE_EDITED, written by: $AUTHOR

    diff --git a/templates/article_header.html b/templates/article_header.html new file mode 100644 index 0000000..e69de29 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 @@ + 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 @@ +

    Recipes

    +