Merge branch 'master' of https://github.com/LukeSmithxyz/based.cooking
3
.github/pull_request_template.md
vendored
@ -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.
|
||||
-->
|
||||
|
3
.github/workflows/upload.yml
vendored
@ -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
|
||||
|
5
.gitignore
vendored
@ -1 +1,4 @@
|
||||
dest
|
||||
rss.xml
|
||||
atom.xml
|
||||
blog
|
||||
tags
|
||||
|
198
Makefile
Normal file
@ -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
|
41
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.
|
||||
|
6
config
Normal file
@ -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/
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 158 KiB |
Before Width: | Height: | Size: 558 B After Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 259 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 219 KiB After Width: | Height: | Size: 219 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
@ -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 ;
|
@ -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)
|
||||
|
12
index.md
Normal file
@ -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))
|
@ -1 +0,0 @@
|
||||
template.md
|
@ -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>
|
@ -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>
|
@ -33,3 +33,5 @@ Cooking time: ~30 minutes
|
||||
## Contributors
|
||||
|
||||
- **Alexander Bocken** -- [contact](mailto:alexander@bocken.org)
|
||||
|
||||
;tags: swiss pork potato
|
||||
|
@ -33,3 +33,5 @@
|
||||
## Contribution
|
||||
|
||||
- Artur Mancha -- [Pleroma](https://pleroma.pt/@lisbonjoker)
|
||||
|
||||
;tags: portuguese soup pork
|
||||
|
@ -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
|
||||
|
@ -25,3 +25,5 @@
|
||||
## Contribution
|
||||
|
||||
- Łukasz Drukała - [website](https://masflam.com), [donate](https://masflam.com/#donate)
|
||||
|
||||
;tags: desert sweet snack cake
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -32,3 +32,4 @@ Other meats may be substituted instead of beef, but use caution.
|
||||
|
||||
- Elias Howell -- [website](https://snarf.top)
|
||||
|
||||
;tags: beef snack
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -22,3 +22,5 @@ Caesar Salad is an easy and delicious meal for lunch or dinner.
|
||||
## Contributors
|
||||
|
||||
- gucko
|
||||
|
||||
;tags: italian salad
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -18,3 +18,5 @@
|
||||
## Contribution
|
||||
|
||||
Front3ndNinja - [Website](https://github.com/Front3ndNinja)
|
||||
|
||||
;tags: chicken
|
||||
|
@ -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
|
||||
|
@ -28,3 +28,5 @@ Easy to throw together and transport for the working fellow. High in protein!
|
||||
## Contribution
|
||||
|
||||
- Miika Nissi - [website](https://miikanissi.com)
|
||||
|
||||
;tags: chicken italian pasta
|
||||
|
@ -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
|
||||
|
@ -26,3 +26,5 @@
|
||||
## Contribution
|
||||
|
||||
- Luke Smith -- [website](https://lukesmith.xyz), [donate](https://lukesmith.xyz/donate)
|
||||
|
||||
;tags: mexican chicken
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -36,3 +36,5 @@
|
||||
## Contribution
|
||||
|
||||
- Aaron Taylor -- [website](https://atay.me)
|
||||
|
||||
;tags: mexican beef beans
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -20,3 +20,5 @@ Croutons are an essential addition to many salads. They are delicious and easy
|
||||
## Contributors
|
||||
|
||||
- gucko
|
||||
|
||||
;tags: basic french salad
|
||||
|
@ -20,3 +20,5 @@ Quick and simple bread spread.
|
||||
## Contribution
|
||||
|
||||
- Patryk Niedźwiedziński - [website](https://niedzwiedzinski.cyou)
|
||||
|
||||
;tags: bread quick snack spread
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -33,3 +33,5 @@ Serves 4
|
||||
## Contribution
|
||||
|
||||
- anon btc: 1FJSSps89rEMtYm8Vvkp2uyTX9MFpZtcGy
|
||||
|
||||
;tags: french pork quick
|
||||
|
@ -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
|
||||
|
@ -15,3 +15,5 @@
|
||||
|
||||
## Contribution
|
||||
themisch - [website](http://k63fspwi7eekmjy7i3ofk425lseyftfrbikyjs5ndgrvzasxlh6hoiid.onion), [donate](http://k63fspwi7eekmjy7i3ofk425lseyftfrbikyjs5ndgrvzasxlh6hoiid.onion/donate.html)
|
||||
|
||||
;tags: potato quick side
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -25,3 +25,4 @@
|
||||
|
||||
- Anonymous
|
||||
|
||||
;tags: american quick beef sandwich
|
||||
|
@ -34,3 +34,5 @@ bite.
|
||||
## Contributors
|
||||
|
||||
- **Dr. Cat** -- [website](https://github.com/castrated)
|
||||
|
||||
;tags: eggs snack quick
|
||||
|
@ -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
|
||||
|
@ -17,3 +17,5 @@
|
||||
## Contribution
|
||||
|
||||
- Jacob Smith - [website](https://jacobwsmith.xyz)
|
||||
|
||||
;tags: basic snack spread
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -29,3 +29,5 @@
|
||||
## Contribution
|
||||
|
||||
- Anonymous
|
||||
|
||||
;tags: basic sauce
|
||||
|
@ -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
|
||||
|
@ -24,3 +24,5 @@ a sausage dish. Pairs well with brown ales.
|
||||
## Contributors
|
||||
|
||||
- **Dr. Cat** -- [website](https://github.com/castrated/)
|
||||
|
||||
;tags: american corn
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -34,3 +34,5 @@
|
||||
## Contribution
|
||||
|
||||
- Jon Paul Uritis - [website](https://jonpauluritis.com), [donate](http://paypal.me/jppope)
|
||||
|
||||
;tags: japanese pork
|
||||
|
@ -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).
|
@ -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
|
||||
|
@ -39,3 +39,5 @@ and serve bacon or sausages alongside if you like.
|
||||
## Contribution
|
||||
|
||||
Puremana
|
||||
|
||||
;tags: breakfast quick sweet cake
|
||||
|
@ -36,3 +36,5 @@
|
||||
## Contribution
|
||||
|
||||
- Anonymous
|
||||
|
||||
;tags: eggs quick
|
||||
|
@ -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
|
||||
|
@ -18,3 +18,5 @@ Here is a simple Pancake recipe
|
||||
## Contribution
|
||||
|
||||
BeFe
|
||||
|
||||
;tags: quick basic breakfast sweet cake
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -13,3 +13,5 @@
|
||||
## Contribution
|
||||
|
||||
- Jacob Smith - [website](https://jacobwsmith.xyz)
|
||||
|
||||
;tags: spread snack basic
|
||||
|
@ -20,3 +20,5 @@ if you use other flour like rye, you may need more liquid.
|
||||
## Contribution
|
||||
|
||||
BeFe
|
||||
|
||||
;tags: basic
|
||||
|
@ -37,3 +37,5 @@ Mince should be broken up well before cooking.
|
||||
## Contribution
|
||||
|
||||
jacobsiggins.co.uk
|
||||
|
||||
;tags: mexican beans pork
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|