Compare commits

...

10 commits

Author SHA1 Message Date
3245231730 feat: Move media assets outside of the git repository
All checks were successful
CI / build (push) Successful in 10s
CI / deploy (push) Successful in 5s
Images and media referenced by the private Copper Chronicle section are no
longer tracked by git. They live at /assets/copper-chronicle/ on the server
(/srv/www/binning.net/assets/) and are managed independently. Updated all
image links in src/private/copper-chronicle to use absolute paths rooted at
/assets/. Added --filter='protect assets/' to all deploy rsync commands to
prevent accidental deletion during deploys.
2026-04-04 16:48:26 -07:00
1efb4e1203 feat!: Split site into public and private sections
Moved the Copper Chronicle and resume into a private git submodule
(src/private), visible only to authenticated users. Added a lock symbol
to the mdbook sidebar for restricted sections. Reorganized nginx/nix
configuration files into a dedicated folder. Removed one-line descriptions
from the menu. Reduced custom CSS to better align the main website's theme
with mdbook's native styling. Personalized the index and blog introduction
pages.
2026-04-04 13:32:09 -07:00
8b86ade8f2 fix: Remove workflow file made redundant by pipeline split
Cleaned up a leftover workflow file that conflicted with the new
three-workflow structure after the PR merge.
2026-03-26 17:48:51 -07:00
ec2f50c64e Merge pull request 'feat(4): Replace workflow with three' (#5) from 4-split-forgejo-workflow-into-three into master
Reviewed-on: matthew.binning/www#5
2026-03-26 14:57:06 -07:00
7f381adf5b feat: Split CI/CD into three focused workflows
Replaced the monolithic pipeline with three dedicated workflows: ci.yml
(build on every push), cd.yml (manual deploy to staging or prod), and
nightly.yml (scheduled build and deploy). This makes it easier to trigger
deploys independently of builds and to diagnose failures.
2026-03-26 14:17:17 -07:00
2690242244 Merge pull request 'develop' (#2) from develop into master
Reviewed-on: matthew.binning/www#2
2026-03-25 07:54:32 -07:00
83e3f8926a feat: Add a nightly build
Added a scheduled nightly build workflow to keep the deployed site current
with any content changes, particularly in the private submodule.
2026-03-23 06:59:46 -07:00
47347df98c clean: Remove custom CSS that was suppressing mdbook's native theming
Stripped out legacy CSS overrides that were conflicting with mdbook's
built-in theme, allowing the rust/sepia theme to render correctly without
interference.
2026-03-23 06:42:03 -07:00
e9f40ed11a feat: Replace custom navbar with mdbook's native navigation
Dropped the custom HTML navbar in favor of mdbook's built-in navigation.
This also resolved an issue where relative anchor links were incorrectly
appearing as entries in the mdbook sidebar.
2026-03-22 17:21:32 -07:00
0eaeee4a7f fix: Ensure only one navbar renders across all pages 2026-03-22 16:45:52 -07:00
132 changed files with 3982 additions and 1321 deletions

26
.forgejo/workflows/cd.yml Normal file
View file

@ -0,0 +1,26 @@
name: CD
on:
workflow_dispatch:
inputs:
target:
description: "Deployment target"
required: true
type: choice
options:
- staging
- prod
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: blog-${{ github.sha }}
path: book/
- name: Deploy
run: |
nix shell nixpkgs#rsync --command rsync -av --delete --filter='protect assets/' book/ /srv/www/binning.net/
printf "✓ Local deployment complete!\n"

35
.forgejo/workflows/ci.yml Normal file
View file

@ -0,0 +1,35 @@
name: CI
on:
push:
jobs:
build:
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
with:
submodules: false
- name: Build
run: |
git config --global url."https://oauth2:${{ secrets.WWW_PRIVATE_TOKEN }}@forgejo.binning.net/".insteadOf "https://forgejo.binning.net/"
git submodule update --init --depth=1
nix shell nixpkgs#mdbook --command mdbook build
printf "✓ Build complete!\n"
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: blog-${{ github.sha }}
path: book/
deploy:
runs-on: self-hosted
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: blog-${{ github.sha }}
path: book/
- name: Deploy
run: |
nix shell nixpkgs#rsync --command rsync -av --delete --filter='protect assets/' book/ /srv/www/binning.net/
printf "✓ Local deployment complete!\n"

View file

@ -1,20 +0,0 @@
name: Build and Deploy
on:
push:
branches:
- master
- develop
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
run: nix shell nixpkgs#mdbook --command ./deploy.sh build
- name: Deploy
run: nix shell nixpkgs#rsync --command ./deploy.sh local

View file

@ -0,0 +1,40 @@
name: Nightly
on:
schedule:
- cron: '0 2 * * *'
jobs:
build:
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
with:
submodules: false
- name: Build
run: |
git config --global url."https://oauth2:${{ secrets.WWW_PRIVATE_TOKEN }}@forgejo.binning.net/".insteadOf "https://forgejo.binning.net/"
git submodule update --init --depth=1
nix shell nixpkgs#mdbook --command mdbook build
printf "✓ Build complete!\n"
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: blog-${{ github.sha }}
path: book/
deploy:
needs: build
runs-on: self-hosted
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
submodules: true
token: ${{ secrets.WWW_PRIVATE_TOKEN }}
with:
name: blog-${{ github.sha }}
path: book/
- name: Deploy
run: |
nix shell nixpkgs#rsync --command rsync -av --delete --filter='protect assets/' book/ /srv/www/binning.net/
printf "✓ Local deployment complete!\n"

9
.gitignore vendored
View file

@ -1,4 +1,5 @@
blog/
src
content/*
example/*
# the build directory of mdbook
book/
*.jpg
*.png
src/drafts/journal

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "src/private"]
path = src/private
url = https://forgejo.binning.net/www/private

View file

@ -1,35 +1,77 @@
# WWW
# The Bin
Www is my personal website, blog project, and portfolio page.
It should be available at https://wwww.binning.dev
My personal website, blog, and portfolio. Available at https://binning.net.
# History
## Architecture
## 2025-02-28
This is an [mdbook](https://rust-lang.github.io/mdBook/) project. Source content lives in `src/`, and `mdbook build` produces the static site in `book/`, which is what gets deployed.
I restarted this in [Rocket](https://rocket.rs) after yet another data loss event.
### Directory structure
## 2024-06-21
```
.
├── src/ # mdbook source (markdown content)
│ ├── SUMMARY.md # table of contents / navigation
│ ├── private/ # git submodule — see below
│ └── ...
├── book/ # build output (not tracked)
├── content/ # assets and media not tracked by git — see below
├── book.toml # mdbook configuration
└── .forgejo/workflows/ # CI/CD pipelines
```
I migrated from cgit to forgejo and from kuberentes to simply nginx.
### Private content (git submodule)
## 2023-10-07
`src/private` is a separate private git repository included here as a submodule. This keeps personal content out of the public repo history while still building into the same site. The submodule is hosted at `https://forgejo.binning.net/www/private`.
I merged the deployment repository into this one.
I also moved to self-hosting at some point.
When working locally, the submodule URL can be overridden to SSH in `.git/config`:
## 2022-01-05
```bash
git config submodule.src/private.url forgejo@forgejo.binning.net:/www/private.git
git submodule sync
```
I moved hosting to Vultr and moved to a Cobalt.
One neat command to unhide files was:
CI uses HTTPS with an OAuth token via a URL rewrite (`secrets.WWW_PRIVATE_TOKEN`), so `.gitmodules` should always contain the HTTPS URL.
`for i in \.*; do if [ ${i} != '.' ] && [ ${i} != '..' ]; then mv {.,}${i/\./} ; fi; done;`
To update the submodule to the latest commit:
## 2018-12-16
```bash
git submodule update --remote src/private
git add src/private
git commit -m "Update private submodule"
```
I started this blog with [Namecheap][Namecheap], [Ruby][Ruby], [Jekyll][Jekyll], and [Github-Pages][Github-Pages].
### Assets
Images and media referenced by content in `src/private/` are not tracked by this repo. They live on the server at `/srv/www/binning.net/assets/` and are managed separately.
Markdown image links use absolute paths rooted at `/assets/`:
```markdown
![alt text](/assets/copper-chronicle/chapter_1/image.jpg)
```
The deploy rsync uses `--filter='protect assets/'` to ensure the `assets/` directory is never deleted during deployment.
## CI/CD
Three Forgejo Actions workflows handle the build and deploy lifecycle:
- **ci.yml** — builds on every push and uploads the artifact
- **cd.yml** — manual workflow dispatch to deploy to staging or prod
- **nightly.yml** — scheduled nightly build and deploy
All workflows run on a self-hosted runner and deploy to `/srv/www/binning.net/` via rsync.
## History
- 2025-02-28: Restarted in [mdbook](https://rust-lang.github.io/mdBook/) after yet another data loss event.
- 2024-06-21: Migrated from cgit to Forgejo and from Kubernetes to nginx.
- 2023-10-07: Merged the deployment repository into this one and moved to self-hosting.
- 2022-01-05: Moved hosting to Vultr and switched to Cobalt.
- 2018-12-16: Started with [Namecheap], [Ruby], [Jekyll], and [Github Pages][Github-Pages].
[Namecheap]: https://www.namecheap.com/
[Ruby]: https://www.ruby-lang.org/
[Jekyll]: https://jekyllrb.com/
[Github-Pages]: https://pages.github.com/
[Github-Pages]: https://pages.github.com/

View file

@ -3,16 +3,11 @@ title = "The Bin"
authors = ["Matthew Binning"]
language = "en"
[build]
build-dir = "blog"
[output.html]
default-theme = "light"
default-theme = "rust"
smart-punctuation = true
git-repository-url = "https://forgejo.binning.net/matthew.binning/www"
edit-url-template = "https://forgejo.binning.net/matthew.binning/www/src/branch/main/{path}"
additional-css = ["theme/sepia.css"]
additional-js = ["theme/navbar.js"]
no-section-label = true
fold.enable = true
fold.level = 0

View file

@ -1,45 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Common configuration shared between staging and prod
# This file contains nginx settings that are identical across environments
# Import this in both staging.nginx.nix and prod.nginx.nix
services.nginx = {
# Recommended settings
recommendedGzipSettings = true;
recommendedOptimisation = true;
recommendedProxySettings = true;
};
# Common location configurations that can be reused
# These are defined as library functions
lib.nginxLocations = {
# Standard root location with SSI support
rootLocation = {
index = "index.html";
tryFiles = "$uri $uri/ =404";
extraConfig = ''
# Enable Server Side Includes for navbar/footer includes
ssi on;
'';
};
# Private blog articles location with HTTP basic authentication
privateLocation = {
extraConfig = ''
auth_basic "Private Articles";
auth_basic_user_file /srv/nginx/.htpasswd;
# Enable Server Side Includes
ssi on;
'';
};
# Common extraConfig for custom 404
custom404 = ''
error_page 404 /404.html;
'';
};
}

View file

@ -2,76 +2,21 @@
set -e
usage() {
printf "Usage: %s [build|staging|prod|local]\n\n build - Build the blog with mdbook\n staging - Deploy to local staging environment (/srv/www/stage.binning.net)\n prod - Deploy to production server via SSH (www.binning.net)\n local - Deploy directly to /srv/www/binning.net (used by Forgejo CI runner)\n\nExample:\n %s build\n %s staging\n %s prod\n %s local\n" "$0" "$0" "$0" "$0" "$0"
exit 1
}
printf "Deploying to PRODUCTION environment...\n"
if [ $# -eq 0 ]; then
printf "Error: No command specified\n"
usage
REMOTE_HOST="crossbox"
REMOTE_USER="brimlock"
REMOTE_PATH="/srv/www/binning.net"
if ! ssh -o BatchMode=yes -o ConnectTimeout=5 ${REMOTE_USER}@${REMOTE_HOST} exit 2>/dev/null; then
printf "Warning: SSH connection test failed. Ensure SSH keys are configured.\nYou may be prompted for a password.\n"
fi
CMD=$1
printf "Deploying website files...\n"
ssh ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p /tmp/blog-deploy"
rsync -avz --delete blog/ ${REMOTE_USER}@${REMOTE_HOST}:/tmp/blog-deploy/
ssh ${REMOTE_USER}@${REMOTE_HOST} "sudo rsync -avz --delete --filter='protect assets/' /tmp/blog-deploy/ ${REMOTE_PATH}/ && \
sudo chown -R nginx:nginx ${REMOTE_PATH}/ && \
printf 'Content deployed.\n'"
case $CMD in
build)
printf "Building blog with mdbook...\n"
[ -s src ] || ln -s /var/lib/www src
mdbook build
printf "✓ Build complete!\n"
;;
staging)
printf "Deploying to STAGING environment...\n"
STAGING_PATH="/srv/www/stage.binning.net"
sudo mkdir -p ${STAGING_PATH}
printf "Deploying website files...\n"
sudo rsync -av --delete main/* ${STAGING_PATH}/
sudo rsync -av --delete blog ${STAGING_PATH}/
sudo chown -R nginx:nginx ${STAGING_PATH}/
printf "✓ Staging deployment complete!\n Files deployed to: %s\n\nTo activate nginx, import staging.nginx.nix into your local NixOS config\nand run: sudo nixos-rebuild switch\n" "${STAGING_PATH}"
;;
prod)
printf "Deploying to PRODUCTION environment...\n"
REMOTE_HOST="crossbox"
REMOTE_USER="brimlock"
REMOTE_PATH="/srv/www/binning.net"
if ! ssh -o BatchMode=yes -o ConnectTimeout=5 ${REMOTE_USER}@${REMOTE_HOST} exit 2>/dev/null; then
printf "Warning: SSH connection test failed. Ensure SSH keys are configured.\nYou may be prompted for a password.\n"
fi
printf "Deploying website files...\n"
ssh ${REMOTE_USER}@${REMOTE_HOST} "mkdir -p /tmp/${REMOTE_PATH}"
rsync -avz --delete main/ blog ${REMOTE_USER}@${REMOTE_HOST}:/tmp/${REMOTE_PATH}/
ssh ${REMOTE_USER}@${REMOTE_HOST} "sudo rsync -avz --delete /tmp/${REMOTE_PATH}/ ${REMOTE_PATH}/ && \
sudo chown -R nginx:nginx ${REMOTE_PATH}/ && \
printf 'Content deployed.\n'"
printf "✓ Production deployment complete!\n\nNginx configuration is managed by the nixos-config flake (hosts/crossbox/nginx.nix).\n"
;;
local)
printf "Deploying locally to production path...\n"
LOCAL_PATH="/srv/www/binning.net"
printf "Deploying website files...\n"
rsync -av --delete main/ blog ${LOCAL_PATH}/
printf "✓ Local deployment complete!\n Files deployed to: %s\n" "${LOCAL_PATH}"
;;
*)
printf "Error: Invalid command '%s'\n" "$CMD"
usage
;;
esac
printf "✓ Production deployment complete!\n\nNginx configuration is managed by the nixos-config flake (hosts/crossbox/nginx.nix).\n"

View file

@ -1,27 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>404 - Page Not Found</title>
<link rel="stylesheet" href="/style.css">
</head>
<body>
<!--#include virtual="/includes/navbar.html" -->
<main class="container">
<section class="hero">
<h1>404 - Page Not Found</h1>
<p>The page you're looking for doesn't exist.</p>
</section>
<section class="content-section">
<h2>What happened?</h2>
<p>The page you requested could not be found. It may have been moved, deleted, or never existed.</p>
<p><a href="/" style="color: #3498db; text-decoration: none; font-weight: bold;">← Go back to homepage</a></p>
</section>
</main>
<!--#include virtual="/includes/footer.html" -->
</body>
</html>

View file

@ -1,127 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blog - WWW</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!--#include virtual="/includes/navbar.html" -->
<main class="container">
<section class="hero">
<h1>Blog</h1>
<p>Stories, adventures, and reflections from life's journey</p>
</section>
<!-- The Copper Chronicle Section -->
<section class="content-section">
<h2>The Copper Chronicle</h2>
<p class="section-description">Adventures and travels with Copper, exploring the beautiful outdoors.</p>
<div class="blog-grid">
<article class="blog-card">
<h3><a href="/blog/copper-chronicle/big-sur.html">Big Sur Adventure</a></h3>
<p class="blog-meta">April 2024</p>
<p>Exploring the stunning coastline and trails of Big Sur with Copper.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/copper-chronicle/dove-hunting.html">Dove Hunting</a></h3>
<p class="blog-meta">September 2024</p>
<p>A day in the field with friends, shotguns, and good company.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/copper-chronicle/shasta-trip.html">Shasta & Dunsmuir</a></h3>
<p class="blog-meta">September 2024</p>
<p>Mountain adventures in Northern California.</p>
</article>
</div>
</section>
<!-- Life & Reflections Section -->
<section class="content-section">
<h2>Life & Reflections</h2>
<p class="section-description">Personal thoughts and journeys on health, faith, and life.</p>
<div class="blog-grid">
<article class="blog-card private">
<h3><a href="/blog/health-journey.html">Health Journey</a></h3>
<p class="blog-meta">Private Article</p>
<p>Reflections on physical and mental wellness.</p>
<span class="private-badge">🔒 Private</span>
</article>
<article class="blog-card private">
<h3><a href="/blog/faith-journey.html">Faith Journey</a></h3>
<p class="blog-meta">Private Article</p>
<p>Personal spiritual reflections and growth.</p>
<span class="private-badge">🔒 Private</span>
</article>
</div>
</section>
<!-- Events & Experiences Section -->
<section class="content-section">
<h2>Events & Experiences</h2>
<p class="section-description">Special moments and memorable experiences.</p>
<div class="blog-grid">
<article class="blog-card private">
<h3><a href="/blog/defcon.html">DefCon</a></h3>
<p class="blog-meta">Private Article</p>
<p>Notes and reflections from DefCon.</p>
<span class="private-badge">🔒 Private</span>
</article>
<article class="blog-card private">
<h3><a href="/blog/oktoberfest.html">Oktoberfest</a></h3>
<p class="blog-meta">Private Article</p>
<p>Celebrating traditions and community.</p>
<span class="private-badge">🔒 Private</span>
</article>
<article class="blog-card">
<h3><a href="/blog/independence-day.html">Independence Day</a></h3>
<p class="blog-meta">July 2024</p>
<p>A celebration of freedom and fireworks.</p>
</article>
</div>
</section>
<!-- Recipes Section -->
<section class="content-section">
<h2>Recipes</h2>
<p class="section-description">Family recipes and culinary experiments.</p>
<div class="blog-grid">
<article class="blog-card">
<h3><a href="/blog/public/recipe-book/st-patricks-day.html">St. Patrick's Day</a></h3>
<p class="blog-meta">Holiday</p>
<p>Traditional Irish recipes - corned beef, lamb stew, soda bread, and more.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/public/recipe-book/christmas.html">Christmas</a></h3>
<p class="blog-meta">Holiday</p>
<p>Holiday favorites including eggnog, gingerbread fruitcake, and meatloaf.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/public/recipe-book/earth-day.html">Earth Day</a></h3>
<p class="blog-meta">Special Event</p>
<p>Lamb stir fry and berry compote from April 2024.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/public/recipe-book/camping.html">Camping & Backpacking</a></h3>
<p class="blog-meta">Outdoor</p>
<p>Trail-ready recipes and energy bars for adventures.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/public/recipe-book/misc.html">Miscellaneous</a></h3>
<p class="blog-meta">Various</p>
<p>Drinks, snacks, sides, and external recipe links.</p>
</article>
<article class="blog-card">
<h3><a href="/blog/public/recipe-book/">Full Recipe Book</a></h3>
<p class="blog-meta">Index</p>
<p>Browse all recipe collections in one place.</p>
</article>
</div>
</section>
</main>
<!--#include virtual="/includes/footer.html" -->
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

View file

@ -1,3 +0,0 @@
<footer class="footer">
<p>&copy; 2025 WWW - Built with simple HTML and CSS</p>
</footer>

View file

@ -1,11 +0,0 @@
<nav class="navbar">
<div class="nav-container">
<a href="/" class="nav-brand">Home</a>
<ul class="nav-menu">
<li><a href="/menu.html/">Menu</a></li>
<li><a href="/blog/">Blog</a></li>
<li><a href="https://forgejo.binning.net" target="_blank">Git</a></li>
<li><a href="/resume.html">Resume</a></li>
</ul>
</div>
</nav>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WWW - Personal Website</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!--#include virtual="/includes/navbar.html" -->
<main class="container">
<section class="hero">
<h1>Welcome</h1>
<p>Welcome to Matt's personal website, blog, and landing page for other self-hosted software.</p>
<img src="cover.jpg" alt="cover photo">
</section>
<section class="content-section">
<h2>About & Contact</h2>
<div class="contact-info">
<p><strong>Email:</strong> matthew@binning.net</p>
<p>Hi, my name is Matt. I am a software engineer living in the West. My interests include software, defense, EW, drones, and data security and privacy.</p>
<p>Other personal interests of mine include linguistics, philosophy, and theology, to name a few.</p>
<p>This website serves as a space to share musings, stories, and chronicles, about all of those things.</p>
<p>The Copper Chronicle contains stories and memories from various trips and experiences. More to come as this site develops.</p>
</div>
</section>
<section class="content-section">
<h2>Genealogy</h2>
<div class="genealogy-blurb">
<p>The title of this website you may recognize as a surname. I am also interested in family history and genealogy. If you have some relation or interest to this surname, please feel free to reach out. I am planning a genealogical project.</p>
</div>
</section>
</main>
<!--#include virtual="/includes/footer.html" -->
</body>
</html>

View file

@ -1,121 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Menu - WWW</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!--#include virtual="/includes/navbar.html" -->
<main class="container">
<section class="hero">
<h1>Menu</h1>
<p>A curated selection from our recipe collection.</p>
</section>
<section class="content-section">
<h2>☕ Beverages</h2>
<h3><a href="blog/recipes/beverages.html#pour-over-black-coffee">Pour-Over Black Coffee</a></h3>
<p>Freshly brewed artisan coffee using the pour-over method for a clean, flavorful cup.</p>
<p><em>Coffee beans, hot water</em></p>
<h3><a href="blog/recipes/beverages.html#london-fog">London Fog</a></h3>
<p>A cozy Earl Grey tea latte sweetened with raw honey.</p>
<p><em>Earl Grey tea, manuka honey, steamed milk</em></p>
<h3><a href="blog/recipes/beverages.html#french-press-black-coffee">French Press Black Coffee</a></h3>
<p>Rich, full-bodied coffee brewed with a French press.</p>
<p><em>Coarse ground coffee, hot water</em></p>
<h3><a href="blog/recipes/beverages.html#milkshake">Milkshake</a></h3>
<p>Creamy, protein-packed shake with berries and natural sweetness.</p>
<p><em>Heavy cream, milk, blackberries, Medjool dates, vanilla whey protein, vanilla extract, manuka honey, peanut butter</em></p>
</section>
<section class="content-section">
<h2>🥖 Appetizers</h2>
<h3><a href="blog/recipes/appetizers.html#artichoke-spinach-dip-gf--df">Artichoke Spinach Dip</a></h3>
<p>Creamy, dairy-free dip perfect with crackers or vegetables.</p>
<p><em>Artichoke hearts, fresh spinach, cashew cream, nutritional yeast, garlic, lemon juice, salt, pepper</em></p>
<h3><a href="blog/recipes/appetizers.html#bacon-wrapped-goat-cheese-stuffed-dates">Bacon Wrapped Dates</a></h3>
<p>Sweet and savory bites with bacon-wrapped goat cheese stuffed dates.</p>
<p><em>Medjool dates, goat cheese, bacon strips, optional honey, optional almonds</em></p>
</section>
<section class="content-section">
<h2>🍞 Baked Goods</h2>
<h3><a href="blog/recipes/baked-goods.html#banana-chocolate-chip-bread">Banana Chocolate Chip Bread</a></h3>
<p>Moist, sweet bread loaded with chocolate chips.</p>
<p><em>Ripe bananas, flour, sugar or sweetener, eggs, butter or oil, chocolate chips, baking soda, vanilla extract, salt</em></p>
</section>
<section class="content-section">
<h2>🍳 Breakfast</h2>
<h3><a href="blog/recipes/breakfast.html#egg-scramble-with-sweet-potato-black-bean--ground-beef">Egg Scramble</a></h3>
<p>Hearty breakfast scramble with sweet potato, black beans, and ground beef in green enchilada sauce.</p>
<p><em>Eggs, ground beef, sweet potato, black beans, green enchilada sauce, onions, cumin, chili powder</em></p>
<h3><a href="blog/recipes/breakfast.html#protein-purple-potato-pancakes-proplto-cakes">Proplto Pancakes</a></h3>
<p>Protein-packed purple potato pancakes with a unique color and flavor.</p>
<p><em>Purple potatoes, eggs, protein powder, oat flour, baking powder, cinnamon, salt, milk</em></p>
</section>
<section class="content-section">
<h2>🎄 Seasonal Favorites</h2>
<h3><a href="blog/recipes/christmas.html#eggnog">Eggnog</a></h3>
<p>Rich, creamy holiday classic with raw cultured cream and peppermint.</p>
<p><em>Raw cultured cream, raw eggs, vanilla extract, nutmeg, raw honey, peppermint tea, cacao nibs</em></p>
<h3><a href="blog/recipes/christmas.html#gingerbread-fruitcake-muffins">Gingerbread Fruitcake Muffins</a></h3>
<p>Spiced muffins packed with dried fruits and nuts.</p>
<p><em>Pastry flour, baking soda, buttermilk, butter, allulose, eggs, molasses, dried fruits, chopped nuts, cinnamon, cloves, ginger, salt, vanilla extract</em></p>
</section>
<section class="content-section">
<h2>🍨 Desserts</h2>
<h3><a href="blog/recipes/desserts.html#roasted-peaches-with-honey-mint--ice-cream">Roasted Peaches</a></h3>
<p>Warm roasted peaches with honey, mint, and vanilla ice cream.</p>
<p><em>Fresh peaches, honey, fresh mint leaves, vanilla ice cream, butter, optional cinnamon</em></p>
</section>
<section class="content-section">
<h2>🍽️ Main Dishes</h2>
<h3><a href="blog/recipes/meals.html#pistachio-encrusted-liver-burgers">Pistachio Liver Burgers</a></h3>
<p>Unique burgers with liver, lion's mane mushrooms, and pistachio crust.</p>
<p><em>Beef liver, lion's mane mushrooms, ground beef, crushed pistachios, seasonings</em></p>
<h3><a href="blog/recipes/meals.html#salmon-bowl">Salmon Bowl</a></h3>
<p>Fresh salmon served over coconut rice with cabbage slaw and mango.</p>
<p><em>Salmon fillet, coconut rice, cabbage slaw, fresh mango, sesame seeds</em></p>
<h3><a href="blog/recipes/meals.html#steak--air-fried-broccoli">Steak & Air-Fried Broccoli</a></h3>
<p>Simple, satisfying steak paired with crispy broccoli.</p>
<p><em>Steak, fresh broccoli florets, olive oil, salt, pepper, garlic powder</em></p>
</section>
<section class="content-section">
<h2>🥗 Sides</h2>
<h3><a href="blog/recipes/sides.html#roasted-vegetables">Roasted Vegetables</a></h3>
<p>Colorful medley of seasonal vegetables roasted to perfection.</p>
<p><em>Mixed vegetables (Brussels sprouts, carrots, bell peppers, zucchini), olive oil, salt, pepper, herbs (rosemary, thyme), garlic</em></p>
<h3><a href="blog/recipes/sides.html#cabbage-steaks">Cabbage Steaks</a></h3>
<p>Thick-cut roasted cabbage with optional balsamic glaze.</p>
<p><em>Cabbage, olive oil, salt, pepper, garlic powder, optional balsamic glaze</em></p>
</section>
</main>
<!--#include virtual="/includes/footer.html" -->
</body>
</html>

View file

@ -1,122 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Resume - WWW</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!--#include virtual="/includes/navbar.html" -->
<main class="container">
<section class="hero">
<h1>Resume</h1>
<p>Professional Experience & Skills</p>
</section>
<section class="content-section">
<h2>Summary</h2>
<p>Experienced software engineer with expertise in systems engineering, cloud infrastructure, and full-stack development. Passionate about building reliable, scalable solutions using modern technologies.</p>
</section>
<section class="content-section">
<h2>Technical Skills</h2>
<div class="skills-grid">
<div class="skill-category">
<h3>Languages</h3>
<ul>
<li>Rust</li>
<li>Python</li>
<li>Go</li>
<li>JavaScript/TypeScript</li>
<li>HTML/CSS</li>
</ul>
</div>
<div class="skill-category">
<h3>Systems & Infrastructure</h3>
<ul>
<li>Linux/NixOS</li>
<li>Docker</li>
<li>Nginx</li>
<li>Git</li>
<li>CI/CD</li>
</ul>
</div>
<div class="skill-category">
<h3>Frameworks & Tools</h3>
<ul>
<li>Rocket (Rust)</li>
<li>React</li>
<li>Node.js</li>
<li>PostgreSQL</li>
<li>RESTful APIs</li>
</ul>
</div>
</div>
</section>
<section class="content-section">
<h2>Professional Experience</h2>
<div class="experience-item">
<h3>Software Engineer</h3>
<p class="job-meta">Example Company • 2020 - Present</p>
<ul>
<li>Designed and implemented scalable backend services using Rust and Python</li>
<li>Managed infrastructure using NixOS and containerization technologies</li>
<li>Built and maintained CI/CD pipelines for automated testing and deployment</li>
<li>Collaborated with cross-functional teams to deliver high-quality software solutions</li>
</ul>
</div>
<div class="experience-item">
<h3>Systems Administrator</h3>
<p class="job-meta">Previous Company • 2018 - 2020</p>
<ul>
<li>Maintained Linux-based server infrastructure and monitoring systems</li>
<li>Automated routine tasks using shell scripting and Python</li>
<li>Implemented security best practices and access control policies</li>
<li>Provided technical support and documentation for development teams</li>
</ul>
</div>
</section>
<section class="content-section">
<h2>Education</h2>
<div class="experience-item">
<h3>Bachelor of Science in Computer Science</h3>
<p class="job-meta">University Name • 2014 - 2018</p>
<p>Focus on software engineering, algorithms, and systems programming.</p>
</div>
</section>
<section class="content-section">
<h2>Projects</h2>
<div class="experience-item">
<h3>Self-Hosted Infrastructure</h3>
<p>Designed and deployed a complete self-hosted solution including:</p>
<ul>
<li>Git hosting with Forgejo</li>
<li>Web server with Nginx and SSL/TLS</li>
<li>Calendar and contacts sync with Radicale</li>
<li>Declarative configuration management with NixOS</li>
</ul>
</div>
<div class="experience-item">
<h3>Personal Website & Blog</h3>
<p>Built a simple, reliable website using primitive technologies (HTML/CSS) focused on performance and maintainability.</p>
</div>
</section>
<section class="content-section">
<h2>Contact</h2>
<p><strong>Email:</strong> example@example.com</p>
<p><strong>GitHub:</strong> <a href="https://forgejo.binning.net" target="_blank">forgejo.binning.net</a></p>
</section>
</main>
<!--#include virtual="/includes/footer.html" -->
</body>
</html>

View file

@ -1,340 +0,0 @@
/* CSS Reset and Base Styles */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Courier New', 'Courier', 'Monaco', 'Lucida Console', monospace;
line-height: 1.7;
color: #3e2723;
background-color: #f4ecd8;
}
/* Navbar Styles */
.navbar {
background-color: #5d4037;
box-shadow: 0 2px 4px rgba(62, 39, 35, 0.3);
position: sticky;
top: 0;
z-index: 1000;
border-bottom: 2px solid #4e342e;
}
.nav-container {
max-width: 1200px;
margin: 0 auto;
padding: 1rem 2rem;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-brand {
color: #f4ecd8;
text-decoration: none;
font-size: 1.5rem;
font-weight: bold;
}
.nav-brand:hover {
color: #d7ccc8;
}
.nav-menu {
list-style: none;
display: flex;
gap: 2rem;
}
.nav-menu a {
color: #f4ecd8;
text-decoration: none;
font-size: 1rem;
transition: color 0.3s ease;
}
.nav-menu a:hover {
color: #d7ccc8;
}
/* Main Container */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 2rem;
}
/* Hero Section */
.hero {
background-color: #efebe9;
padding: 3rem 2rem;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(62, 39, 35, 0.2);
margin-bottom: 2rem;
text-align: center;
border: 1px solid #d7ccc8;
}
.hero h1 {
font-size: 2.5rem;
color: #4e342e;
margin-bottom: 1rem;
}
.hero p {
font-size: 1.2rem;
color: #6d4c41;
}
.hero img {
max-width: 100%;
height: auto;
margin-top: 1.5rem;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(62, 39, 35, 0.3);
border: 2px solid #d7ccc8;
}
/* Content Section */
.content-section {
background-color: #efebe9;
padding: 2rem;
margin-bottom: 2rem;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(62, 39, 35, 0.2);
border: 1px solid #d7ccc8;
}
.content-section h2 {
color: #4e342e;
font-size: 2rem;
margin-bottom: 1.5rem;
border-bottom: 3px solid #8d6e63;
padding-bottom: 0.5rem;
}
.contact-info p,
.genealogy-blurb p {
margin-bottom: 1rem;
line-height: 1.8;
color: #5d4037;
}
.contact-info strong {
color: #4e342e;
}
/* Footer */
.footer {
background-color: #5d4037;
color: #f4ecd8;
text-align: center;
padding: 2rem;
margin-top: 3rem;
border-top: 2px solid #4e342e;
}
.footer p {
font-size: 0.9rem;
}
/* Blog Styles */
.section-description {
color: #6d4c41;
font-style: italic;
margin-bottom: 1.5rem;
}
.blog-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 1.5rem;
margin-top: 1.5rem;
}
.blog-card {
background-color: #faf8f3;
border: 1px solid #d7ccc8;
border-radius: 4px;
padding: 1.5rem;
transition: transform 0.2s ease, box-shadow 0.2s ease;
position: relative;
}
.blog-card:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(62, 39, 35, 0.25);
}
.blog-card h3 {
color: #4e342e;
margin-bottom: 0.5rem;
font-size: 1.3rem;
}
.blog-card h3 a {
color: #4e342e;
text-decoration: none;
transition: color 0.3s ease;
}
.blog-card h3 a:hover {
color: #6d4c41;
}
.blog-meta {
color: #8d6e63;
font-size: 0.9rem;
margin-bottom: 0.75rem;
}
.blog-card p {
color: #5d4037;
line-height: 1.6;
}
.blog-card.private {
border-color: #a1887f;
background-color: #f5f5f0;
}
.private-badge {
display: inline-block;
background-color: #8d6e63;
color: #f4ecd8;
padding: 0.25rem 0.75rem;
border-radius: 4px;
font-size: 0.85rem;
margin-top: 0.5rem;
}
/* Resume Styles */
.skills-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin-top: 1.5rem;
}
.skill-category h3 {
color: #4e342e;
margin-bottom: 1rem;
font-size: 1.2rem;
border-bottom: 2px solid #8d6e63;
padding-bottom: 0.5rem;
}
.skill-category ul {
list-style: none;
padding-left: 0;
}
.skill-category li {
padding: 0.5rem 0;
color: #5d4037;
position: relative;
padding-left: 1.5rem;
}
.skill-category li:before {
content: "▸";
position: absolute;
left: 0;
color: #8d6e63;
font-weight: bold;
}
.experience-item {
margin-bottom: 2rem;
}
.experience-item:last-child {
margin-bottom: 0;
}
.experience-item h3 {
color: #4e342e;
font-size: 1.4rem;
margin-bottom: 0.5rem;
}
.job-meta {
color: #8d6e63;
font-size: 0.95rem;
margin-bottom: 1rem;
font-style: italic;
}
.experience-item ul {
margin-top: 1rem;
padding-left: 1.5rem;
}
.experience-item li {
color: #5d4037;
margin-bottom: 0.5rem;
line-height: 1.7;
}
.experience-item p {
color: #5d4037;
line-height: 1.7;
}
/* Recipe Page Styles */
.recipe-card {
background-color: #faf8f3;
border: 1px solid #d7ccc8;
border-radius: 4px;
padding: 1.5rem;
margin-bottom: 1.5rem;
}
.recipe-card h3 {
color: #4e342e;
border-bottom: 2px solid #8d6e63;
padding-bottom: 0.5rem;
margin-bottom: 1rem;
}
.recipe-year {
color: #8d6e63;
font-style: italic;
font-size: 0.9rem;
}
/* Responsive Design */
@media (max-width: 768px) {
.nav-container {
flex-direction: column;
gap: 1rem;
}
.nav-menu {
flex-direction: column;
gap: 1rem;
text-align: center;
}
.container {
padding: 1rem;
}
.hero h1 {
font-size: 2rem;
}
.content-section h2 {
font-size: 1.5rem;
}
.blog-grid {
grid-template-columns: 1fr;
}
.skills-grid {
grid-template-columns: 1fr;
}
}

218
src/404.html Normal file
View file

@ -0,0 +1,218 @@
<!DOCTYPE HTML>
<html lang="en" class="light" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Page not found - The Copper Chronicle</title>
<base href="/">
<!-- Custom HTML head -->
<meta name="description" content="Our story...">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
<body class="sidebar-visible no-js">
<div id="body-container">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
</script>
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('light')
html.classList.add(theme);
var body = document.querySelector('body');
body.classList.remove('no-js')
body.classList.add('js');
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var body = document.querySelector('body');
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
body.classList.remove('sidebar-visible');
body.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<ol class="chapter"><li class="chapter-item expanded affix "><a href="title-page.html">The Copper Chronicle</a></li><li class="chapter-item expanded affix "><div>Prelude</div></li><li class="chapter-item expanded affix "><li class="part-title">2024</li><li class="chapter-item expanded "><a href="chapter_1/index.html"><strong aria-hidden="true">1.</strong> Big Sur</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="chapter_1/burnt_offering.html"><strong aria-hidden="true">1.1.</strong> Burnt Offering</a></li><li class="chapter-item expanded "><a href="chapter_1/scurrying.html"><strong aria-hidden="true">1.2.</strong> Scurrying</a></li><li class="chapter-item expanded "><a href="chapter_1/side-pushups.html"><strong aria-hidden="true">1.3.</strong> Side Push-ups</a></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">2.</strong> San Luis Obispo</div></li><li><ol class="section"><li class="chapter-item expanded "><div><strong aria-hidden="true">2.1.</strong> Testimony</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">2.2.</strong> Cambria</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">2.3.</strong> Fencing</div></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">3.</strong> Her Birthday</div></li><li><ol class="section"><li class="chapter-item expanded "><div><strong aria-hidden="true">3.1.</strong> The Hike</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">3.2.</strong> Twenty Qs</div></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">4.</strong> Independence Day</div></li><li><ol class="section"><li class="chapter-item expanded "><div><strong aria-hidden="true">4.1.</strong> Rodeo</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">4.2.</strong> Projectile Day</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">4.3.</strong> Heat Wave Wedding</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">4.4.</strong> Stick Shift</div></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">5.</strong> "Mundane" Date</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">6.</strong> A Beach Wedding</div></li><li class="chapter-item expanded "><a href="chapter_7/index.html"><strong aria-hidden="true">7.</strong> Dove Hunting</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="chapter_7/scouting.html"><strong aria-hidden="true">7.1.</strong> Scouting</a></li><li class="chapter-item expanded "><a href="chapter_7/frog_water.html"><strong aria-hidden="true">7.2.</strong> Frog Water</a></li><li class="chapter-item expanded "><a href="chapter_7/dragons_milk.html"><strong aria-hidden="true">7.3.</strong> Dragon's Milk</a></li><li class="chapter-item expanded "><a href="chapter_7/retrospective.html"><strong aria-hidden="true">7.4.</strong> Retrospective</a></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">8.</strong> Shasta Trip</div></li><li><ol class="section"><li class="chapter-item expanded "><div><strong aria-hidden="true">8.1.</strong> Gumboot</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">8.2.</strong> Poetry</div></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">9.</strong> A Russian Wedding</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">10.</strong> Candlelight Concert</div></li><li><ol class="section"><li class="chapter-item expanded "><div><strong aria-hidden="true">10.1.</strong> Cantilever</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">10.2.</strong> Dutch Blitz</div></li></ol></li><li class="chapter-item expanded "><div><strong aria-hidden="true">11.</strong> Thanksgiving</div></li><li class="chapter-item expanded "><div><strong aria-hidden="true">12.</strong> Melodrama</div></li><li class="chapter-item expanded affix "><li class="part-title">Future</li><li class="chapter-item expanded "><div><strong aria-hidden="true">13.</strong> New Years</div></li><li class="chapter-item expanded "><a href="future_trips.html"><strong aria-hidden="true">14.</strong> Future Trips</a></li><li class="chapter-item expanded affix "><li class="spacer"></li><li class="chapter-item expanded affix "><div>About</div></li></ol>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<!-- Track and set sidebar scroll position -->
<script>
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
sidebarScrollbox.addEventListener('click', function(e) {
if (e.target.tagName === 'A') {
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
}
}, { passive: true });
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
sessionStorage.removeItem('sidebar-scroll');
if (sidebarScrollTop) {
// preserve sidebar scroll position when navigating via links within sidebar
sidebarScrollbox.scrollTop = sidebarScrollTop;
} else {
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
var activeSection = document.querySelector('#sidebar .active');
if (activeSection) {
activeSection.scrollIntoView({ block: 'center' });
}
}
</script>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">The Copper Chronicle</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="document-not-found-404"><a class="header" href="#document-not-found-404">Document not found (404)</a></h1>
<p>This URL is invalid, sorry. Please use the navigation bar or search to continue.</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
</div>
</body>
</html>

17
src/README.md Normal file
View file

@ -0,0 +1,17 @@
# Welcome
Welcome to my personal website, blog, and landing page for other self-hosted software. This website serves as a space to share musings, stories, and chronicles, about all of those things.
![cover photo](/assets/cover-photo.jpg)
## About
My name is Matt. I am a software engineer living in the West. My interests include software, defense, EW, drones, and data security and privacy. Other personal interests of mine include linguistics, philosophy, and theology, to name a few.
## Genealogy
The title of this website you may recognize as a surname. I am also interested in family history and genealogy. If you have some relation or interest to this surname, please feel free to reach out. I am planning a genealogical project.
## Contact
**Email:** matthew@binning.net

147
src/SUMMARY.md Normal file
View file

@ -0,0 +1,147 @@
# The Bin
[Welcome](README.md)
---
# Blog
- [Reflections]()
- [Celtic Camping](reflections/celtic_camping.md)
- [On Mycotoxins](reflections/mycotoxins.md)
- [Stack Semantics](reflections/stack_semantics.md)
- [Events]()
- [Future Trips](future_trips.md)
- [Book Reports]()
- [Deep Work](book_reports/deep_work.md)
- [The Rust Programming Language](book_reports/the_rust_programming_language.md)
---
# Cooking
- [Menu](menu.md)
- [Cookbook](recipes/README.md)
- [Beverages](recipes/beverages/README.md)
- [Pour-Over Black Coffee](recipes/beverages/pour-over-black-coffee.md)
- [London Fog](recipes/beverages/london-fog.md)
- [French Press Black Coffee](recipes/beverages/french-press-black-coffee.md)
- [Milkshake](recipes/beverages/milkshake.md)
- [Appetizers](recipes/appetizers/README.md)
- [Artichoke Spinach Dip](recipes/appetizers/artichoke-spinach-dip.md)
- [Bacon Wrapped Dates](recipes/appetizers/bacon-wrapped-goat-cheese-stuffed-dates.md)
- [Baked Goods](recipes/baked-goods/README.md)
- [Banana Chocolate Chip Bread](recipes/baked-goods/banana-chocolate-chip-bread.md)
- [Chocolate Mint Protein Gunk Bars](recipes/baked-goods/chocolate-mint-protein-gunk-bars.md)
- [Zucchini and Chocolate Chip Bread](recipes/baked-goods/zucchini-and-chocolate-chip-bread.md)
- [Carrot, Fig, Macadamia Bread](recipes/baked-goods/carrot-fig-macadamia-bread.md)
- [Purple Potato, Pecan Bread](recipes/baked-goods/purple-potato-pecan-bread.md)
- [Breakfast](recipes/breakfast/README.md)
- [German Pancakes](recipes/breakfast/german-pancakes.md)
- [Pancake, Fried Ham, Runny Egg, & Avocado](recipes/breakfast/pancake-fried-ham-runny-egg-avocado.md)
- [Egg Scramble](recipes/breakfast/egg-scramble-sweet-potato-black-bean-ground-beef.md)
- [Proplto Pancakes](recipes/breakfast/protein-purple-potato-pancakes.md)
- [Meals](recipes/meals/README.md)
- [Meatloaf, Purple Cabbage Slaw, & Parsnip Puree](recipes/meals/meatloaf-purple-cabbage-slaw-parsnip-puree.md)
- [Pistachio Liver Burgers](recipes/meals/pistachio-encrusted-liver-burgers.md)
- [Greek Bowls](recipes/meals/greek-bowls.md)
- [Miso Oats with Ground Beef](recipes/meals/miso-oats-with-ground-beef.md)
- [Salmon Bowl](recipes/meals/salmon-bowl.md)
- [Pad Se Ew](recipes/meals/pad-se-ew.md)
- [Sushi](recipes/meals/sushi.md)
- [Pesto Chicken and Spaghetti Squash](recipes/meals/pesto-chicken-and-spaghetti-squash.md)
- [Steak & Air-Fried Broccoli](recipes/meals/steak-and-air-fried-broccoli.md)
- [Apple Salmon Salad](recipes/meals/apple-salmon-salad.md)
- [Peanut Butter Chicken](recipes/meals/peanut-butter-chicken.md)
- [Sides](recipes/sides/README.md)
- [Stuffing](recipes/sides/stuffing.md)
- [Vinaigrette](recipes/sides/vinaigrette.md)
- [Kale Dish](recipes/sides/kale-dish.md)
- [Roasted Vegetables](recipes/sides/roasted-vegetables.md)
- [Cabbage Steaks](recipes/sides/cabbage-steaks.md)
- [Coconut Rice](recipes/sides/coconut-rice.md)
- [Slow Cooker](recipes/slow-cooker/README.md)
- [Beef Kombucha Squash Red Curry](recipes/slow-cooker/beef-kombucha-squash-red-curry.md)
- [Balsamic Chicken and Sausage](recipes/slow-cooker/balsamic-chicken-and-sausage.md)
- [Pot Roast](recipes/slow-cooker/pot-roast.md)
- [Chicken Sweet Yellow Curry](recipes/slow-cooker/chicken-sweet-yellow-curry-with-cauliflower-rice.md)
- [Beef Shank and Lentil Indian Curry](recipes/slow-cooker/beef-shank-and-lentil-indian-curry.md)
- [Pork Roast or Ribs with Butternut Squash](recipes/slow-cooker/pork-roast-or-ribs-with-butternut-squash.md)
- [Gumbo](recipes/slow-cooker/gumbo.md)
- [Lamb Roasted Roman Style](recipes/slow-cooker/lamb-roasted-roman-style.md)
- [Taco Soup](recipes/slow-cooker/taco-soup.md)
- [Turkey Chili](recipes/slow-cooker/turkey-chili.md)
- [Chicken Tortilla Soup](recipes/slow-cooker/chicken-tortilla-soup.md)
- [Oxtail Stew](recipes/slow-cooker/oxtail-stew.md)
- [Desserts](recipes/desserts/README.md)
- [Ruby Cake](recipes/desserts/ruby-cake.md)
- [Pumpkin Pie](recipes/desserts/pumpkin-pie.md)
- [Roasted Peaches](recipes/desserts/roasted-peaches-with-honey-mint-and-ice-cream.md)
- [Red Wine Pears](recipes/desserts/red-wine-pears.md)
- [Chocolate Fat Bomb Cookies](recipes/desserts/chocolate-fat-bomb-cookies.md)
- [Mug Cakes](recipes/desserts/mug-cakes.md)
- [Seasonal](recipes/fall/README.md)
- [Miso Maple Acorn Squash](recipes/fall/miso-maple-acorn-squash.md)
- [Delicata Squash with Parmesan](recipes/fall/delicata-squash-with-parmesan.md)
- [Roasted Kabocha Squash](recipes/fall/roasted-kabocha-squash.md)
- [Butternut Squash Soup](recipes/fall/butternut-squash-soup.md)
- [Spiced and Diced Sweet Potatoes](recipes/fall/spiced-and-diced-sweet-potatoes.md)
- [Eggnog](recipes/christmas/eggnog.md)
- [Gingerbread Fruitcake Muffins](recipes/christmas/gingerbread-fruitcake-muffins.md)
- [Based Meatloaf](recipes/christmas/based-meatloaf.md)
- [Corned Beef and Cabbage](recipes/st-patricks-day/corned-beef-and-cabbage-2025.md)
- [Corned Beef](recipes/st-patricks-day/corned-beef-2024.md)
- [Irish Lamb Root Stew](recipes/st-patricks-day/irish-lamb-root-stew-2025.md)
- [Irish Soda Bread](recipes/st-patricks-day/irish-soda-bread-2024.md)
- [Irish Green Milkshake](recipes/st-patricks-day/irish-green-milkshake-2025.md)
- [Irish Whiskey Coffee](recipes/st-patricks-day/irish-whiskey-coffee-2024.md)
- [Goat Root Stir Fry](recipes/earth-day/goat-root-stir-fry.md)
- [Compote](recipes/earth-day/compote.md)
- [Camping](recipes/camping/README.md)
- [Cobblestacks v2](recipes/camping/cobblestacks-v2.md)
- [Shepherd's Pie](recipes/camping/shepherds-pie.md)
- [Curried Cashew Couscous with Chicken](recipes/camping/curried-cashew-couscous-with-chicken.md)
- [Miso Salmon & Rice](recipes/camping/miso-salmon-and-rice.md)
- [Thanksgiving Meal](recipes/camping/thanksgiving-meal.md)
- [Jerky](recipes/camping/jerky.md)
- [Veggie Bread](recipes/camping/veggie-bread.md)
- [Protein Gunk](recipes/camping/protein-gunk.md)
- [Miscellaneous](recipes/misc/README.md)
- [Balsamic Glazed Brussels Sprouts](recipes/misc/balsamic-glazed-brussels-sprouts.md)
- [Bone Broth](recipes/misc/bone-broth.md)
---
# 🔒 Authentication Required
- [The Copper Chronicle](copper_chronicle.md)
- [2024]()
- [Prelude](private/copper-chronicle/chapter_0/index.md)
- [Big Sur Adventure](private/copper-chronicle/chapter_1/big_sur.md)
- [📷 Big Sur Photos](private/copper-chronicle/chapter_1/photos.md)
- [San Luis Obispo](private/copper-chronicle/chapter_2/san_luis_obispo.md)
- [Her Birthday](private/copper-chronicle/chapter_3/her_birthday.md)
- [📷 Independence Day](private/copper-chronicle/chapter_4/independence_day.md)
- ["Mundane" Date]()
- [A Beach Wedding]()
- [Apple Hill](private/copper-chronicle/chapter_apple_hill/index.md)
- [Dove Hunting](private/copper-chronicle/chapter_7/dove_hunting.md)
- [📷 Dove Hunting Photos](private/copper-chronicle/chapter_7/photos.md)
- [Scouting](./chapter_7/scouting.md)
- [Frog Water](./chapter_7/frog_water.md)
- [Dragon's Milk](./chapter_7/dragons_milk.md)
- [Retrospective](./chapter_7/retrospective.md)
- [📷 Shasta & Dunsmuir](private/copper-chronicle/chapter_8/shasta_trip.md)
- [A Russian Wedding]()
- [Candlelight Concert](./chapter_10/README.md)
- [Thanksgiving](private/copper-chronicle/chapter_thanksgiving/index.md)
- [Melodrama](private/copper-chronicle/chapter_melodrama/index.md)
- [2025]()
- [New Years](private/copper-chronicle/2025_new_years/index.md)
- [Saint Patrick's Day](private/copper-chronicle/2025_saint_patricks/index.md)
- [May](private/copper-chronicle/2025_may/index.md)
- [Matheney Reunion](private/copper-chronicle/2025_matheney_reunion/index.md)
- [2026]()
- [Mission Family Statement](private/copper-chronicle/mission_family_statement.md)
- [ROM](private/copper-chronicle/ROM.md)
- [Resume](private/resume.md)

View file

@ -0,0 +1,248 @@
# Synthesis of Fasting by J. Franklin
## Practice of Fasting
### How to Fast
Taper off food intake when preparing.
Try to drink at least 1 gal of purified water throughout the first day.
**Remain modest (or in secret) while fasting.** (Matthew 6:1-18)
Basically, virtue signaling like the pharisees takes away all blessing from it.
Humble yourself rather than give a performance of strife, anger, and lashing out.
This may mean taking responsibility, praying for protection and healing, even protection from oneself, and repenting for mistakes and sins, and wrongheadedness.
Enter a fast having repented of any known sins.
Fasting will bring even hidden things to the surface so you can repent.
**Combine fasting with prayer and reading the Word.**
Fasting is a continual prayer.
Fast from coffee for 40 days, then see what addiction remains.
#### Fasting and Mourning
> Men and beast wore sackcloth while fasting and cried mightily to God as part of repentance.
> -John 3:7-9
"Mourn" and "fast" are interchangeable in the bible (maybe somewhat).
_Citation is needed here._
**Fast for a specific purpose.**
The focus of fasting is on God and "lovesickness" for Him rather than our own physical needs or what we stand to gain.
**While fasting, pray and focus on the needs of others.**
Prayer that goes along with fasting is a time to "press into God".
Fast especially for the "little ones" (children), or probably anyone vulnerable, especially in wicked times.
**Fast for a member of the family (or friend) if something is/has gone wrong with/for them.**
This is what a church might do.
_Is it worth considering just wearing a plain white T-shirt and jeans, as some equivalent to sackcloth?_
#### Monitoring
> There is nothing more worrisome than fasting.
> Fasting is easier with grace.
**Monitor how you are doing, and pray about it.**
> If you want to please God, believe God.
> Faith and patience must go together.
**Pray about it, believe the promises, and have patience.**
We do not need even much faith for miracles, only as _small_ as a mustard seed. (Matt 17:20)
Christ said so, and though Peter had little faith, with that he was able to walk on water for a time.
### When to Fast
**Fast all day before church to sensitize oneself to church.**
**Fast at the beginning of the year to set the tone for the rest of the year.**
This is like giving the first part to God of every day, week, dollar, and consideration in decisions.
This is Matt 6:33 -- Seek _first_ the Kingdom...
Know that there is never a convenient time to fast.
## Types of Fasts
Scripture has:
- Absolute: taking in nothing, including water.
- Normal: no food for some amount of days. Clear broth and juices may be allowed.
- Partial: usually certain foods or drinks for an extended period of time.
- Daniel: eliminate meats, breads, and sweets for 21 days.
Significant lengths in the Bible are 3, 7, 21, and 40 days.
Half day and full day are also seen.
## Beyond Fasting
Fasting is only one tool or step in the process of [[#sanctification]].
But a man is the priest of his home and has many duties and pursuits.
**Exercise sanctification daily** by _practicing purity_ and being _set apart from the world and from sin_.
> Exhort one another daily to not fall to a hardened heart by sin and depart from God due to an evil heart of unbelief.
> -Heb 3:12-13
This implies:
**Surround yourself with a desirable and motivating community.**
**Exhort and ask to be exhorted.**
**Pray with purpose and for exhortation from God in the mornings.**
## Purpose of Fasting
### Physical
#### Healing
**Howbeit this kind goeth not out but by prayer and fasting** Matthew 17:20-21
Matthew 17:20 - With this, nothing is impossible.
Isaiah 58:8 - Healing will follow fasting.
Water is the flushing agent.
Urine turns darker.
Impurities and poisons are "burnt for energy".
Headaches are a sign that fasting was/is needed.
Cognition and senses improve.
Addictions are broken.
Chronic or severe health conditions can improve with long fasts.
There is an allegory of Christ's fasting for 40 days:
Flies represent demons, and cancer and mold may represent corruption.
Flies' life cycles range from 1 to 40 days.
To utterly destroy them, you have to spray pesticides for 40 days.
#### Poverty Mitigation
Fasting mitigates poverty, probably by saving time on cooking, eating, doing dishes, cleaning, cutting out grocery expenses, and other un-necessities.
Fasting breaks us from routine.
Fasting helps you discern what you need from what you want.
Fasting can end demonic attacks and break generational curses -- By this, the author means we can give ourselves space and time to disrupt our self-destructive patterns that harm us generationally.
### Spirtual
Worry more about your spirit than about food or clothing. (Matt 6:25)
#### Sensitization
Fasting is useful in getting direction from God.
Fasting in increasing sensitivity allows us to hear "secrets", i.e. plans, secrets, and knowledge of God.
Among the trinity, fasting increases closeness with the Holy Spirit.
Fasting makes one particularly more sensitive to the timing and voice of the Holy Spirit.
As in Mark 2:22, fasting is what renews our bodies as wineskins.
It follows that the blood of Christ is the new wine.
Matthew 6 -- God rewards openly for praying, fasting, and giving.
Ecclesiastes 4:12 - Solomon describes this as the _threefold chord_ of prayer, fasting, and giving.
Fasting gets us away from our own desires that we might know His.
As you fast, it becomes less about you.
#### Worship
Fasting is a continual form of worship, and an offering of oneself as a living sacrifice. See ROM 12:1
Worship, as in fasting, magnifies God and so reduces the apparent size of your problems.
We need to stop measuring our God by the size of our problems, and instead by how great He is.
#### The Mind
It also allows you to release unforgiveness and bitterness.
Mutual assurance/care while fasting for others fulfills the Law of Christ and is corrective to pride. (Gal 6:1-3)
However, one must be trained with tender hands.
Fasting positions us and prepares us for what is to come.
Fasting sharpens the Word in your heart and on your tongue.
One may not walk into all His promises at once, but over time.
#### Addictions
Fasting also helps break sexual addictions and perversions.
One mechanism is probably related to lowering sex drive.
#### Sanctification
Sanctification is the process of becoming more holy or Christlike.
Theologically, it is allowing the Holy Spirit to make us more Christlike in what we do, think, and desire.
> If God has blessed your life, you are in critical need of sanctification.
Over time after initial acceptance of Christ, complacency and hidden sins build up.
If we are to see God's wonders, like the Israelites toward the Promised Land, we must confront sin in our lives and live holy.
Fasting is an essential means of sanctification, or pulling yourself away from the world.
It filters your life, between serving the spirit and serving "the flesh" (Gal 5:19-21).
In other words, it cuts away dead things and hidden sins, i.e. circumcision of the heart.
## Spiritual Premises for Fasting
Matthew 5:6 - Spiritual "hunger" and "thirst" are mentioned in-place of earthly eating and drinking in scripture.
This is fasting.
Jesus fasted despite having power, because some supernatural release happens with it.
Luke 5:34-35 - then they will fast in those days (when Jesus is taken away).
Jesus never healed anyone until after he fasted 40 days.
Matt 26:29 - Technically Christ is fasting until the end times, when he drinks with us in His Father's Kingdom.
Acts 10:30-31 - Fasting is what opened the door (in part) to the gentiles via Cornelius.
> To loose the bonds of wickedness
> -Isa 58:6-7
By making do with less, we become less dependent on the world's offerings and demands, and so we shrink/thin, and the shackles loosen.
### Gluttony
Our stomachs are metaphorically the bottomless pit.
Heb 12:15-17 -- Esau lost his birthright partly due to hunger and not fasting.
### Manna
Manna apparently was perfectly balanced, so that there was not one sick or feeble person among them for 40 years.
Despite this, people were not content.
Kibroth Hattaavah was the result, where quail was sent and people grew sick on it.
## Trivia
TODO: Revise this with See Also
John 14:30 - Christ points out that the enemy is the ruler of this world, but he is apart from him.
40 represents cleansing and purifying.
"Revival" includes in Joel 2:28 prophesying, dreaming dreams, and seeing visions.
Heb 4:16 - the throne of grace is a canonical object.
Heb 411:13 - " division of soul and spirit"
2 Chronicles 7:14 - about healing, including prayer in the process (but not fasting)
Ps 24:3-4 - This is God's place because he is so far above us. But we think to put ourselves there because our casual ego blinds us.
Heb 11:5 - God translated Enoch.
Heb 11:16 - You must believe that God is a rewarder.
Jude 14-15 - Enoch did not try to please people.
## See Also
101 Reasons to Fast - Bob Rodgers
Toxic Relief - Don Colbert
Dr. Tanner was supposedly someone who had miraculous transformations with long fasts.
Children of light - Eph 5:8-10
The World Hunger Movement has a program called " Let it Growl".
The Hall of Faith is another canonical object.
"God is no respecter of persons."
Healing evangelists include Smith Wigglesworth. (A.C. Had a book of his.)

File diff suppressed because it is too large Load diff

1
src/copper_chronicle.md Normal file
View file

@ -0,0 +1 @@
These are some of my adventures and travels with Copper. From the stunning coastline of Big Sur to mountain adventures in Northern California, these are the stories of our explorations together.

View file

@ -0,0 +1,5 @@
# DefCon
*This article is coming soon.*
Notes and reflections from DefCon.

View file

@ -0,0 +1,5 @@
# Oktoberfest
*This article is coming soon.*
Celebrating traditions and community.

3
src/drafts/faith.md Normal file
View file

@ -0,0 +1,3 @@
# On Faith as a Classical Virtue
*This article is coming soon.*

28
src/future_trips.md Normal file
View file

@ -0,0 +1,28 @@
# Future Trips
- Malta
- Baja
- Falklands
- Hawaii
- Costa Rica
- Medellin, Colombia
- Bahamas
- American Samoa
# National Parks
These national parks are **off** the list.
- Bryce Canyon
- Redwoods
# State Parks
These state parks are **off** the list.
- Alcatraz
- Antelope Island
- Castle Crags
- Folsom Lake SRA
- Muir Woods
- Pismo State Beach

61
src/menu.md Normal file
View file

@ -0,0 +1,61 @@
# Menu
A curated selection from our recipe collection.
## ☕ Beverages
- [Pour-Over Black Coffee](recipes/beverages/pour-over-black-coffee.md)
*Coffee beans, hot water*
- [London Fog](recipes/beverages/london-fog.md)
*Earl Grey tea, manuka honey, steamed milk*
- [French Press Black Coffee](recipes/beverages/french-press-black-coffee.md)
*Coarse ground coffee, hot water*
- [Milkshake](recipes/beverages/milkshake.md)
*Heavy cream, milk, blackberries, Medjool dates, vanilla whey protein, vanilla extract, manuka honey, peanut butter*
## 🥖 Appetizers
- [Artichoke Spinach Dip](recipes/appetizers/artichoke-spinach-dip.md)
*Artichoke hearts, fresh spinach, cashew cream, nutritional yeast, garlic, lemon juice, salt, pepper*
- [Bacon Wrapped Dates](recipes/appetizers/bacon-wrapped-goat-cheese-stuffed-dates.md)
*Medjool dates, goat cheese, bacon strips, optional honey, optional almonds*
## 🍞 Baked Goods
- [Banana Chocolate Chip Bread](recipes/baked-goods/banana-chocolate-chip-bread.md)
*Ripe bananas, flour, sugar or sweetener, eggs, butter or oil, chocolate chips, baking soda, vanilla extract, salt*
## 🍳 Breakfast
- [Egg Scramble](recipes/breakfast/egg-scramble-sweet-potato-black-bean-ground-beef.md)
*Eggs, ground beef, sweet potato, black beans, green enchilada sauce, onions, cumin, chili powder*
- [Proplto Pancakes](recipes/breakfast/protein-purple-potato-pancakes.md)
*Purple potatoes, eggs, protein powder, oat flour, baking powder, cinnamon, salt, milk*
## 🎄 Seasonal Favorites
- [Eggnog](recipes/christmas/eggnog.md)
*Raw cultured cream, raw eggs, vanilla extract, nutmeg, raw honey, peppermint tea, cacao nibs*
- [Gingerbread Fruitcake Muffins](recipes/christmas/gingerbread-fruitcake-muffins.md)
*Pastry flour, baking soda, buttermilk, butter, allulose, eggs, molasses, dried fruits, chopped nuts, cinnamon, cloves, ginger, salt, vanilla extract*
## 🍨 Desserts
- [Roasted Peaches](recipes/desserts/roasted-peaches-with-honey-mint-and-ice-cream.md)
*Fresh peaches, honey, fresh mint leaves, vanilla ice cream, butter, optional cinnamon*
## 🍽️ Main Dishes
- [Pistachio Liver Burgers](recipes/meals/pistachio-encrusted-liver-burgers.md)
*Beef liver, lion's mane mushrooms, ground beef, crushed pistachios, seasonings*
- [Salmon Bowl](recipes/meals/salmon-bowl.md)
*Salmon fillet, coconut rice, cabbage slaw, fresh mango, sesame seeds*
- [Steak & Air-Fried Broccoli](recipes/meals/steak-and-air-fried-broccoli.md)
*Steak, fresh broccoli florets, olive oil, salt, pepper, garlic powder*
## 🥗 Sides
- [Roasted Vegetables](recipes/sides/roasted-vegetables.md)
*Mixed vegetables (Brussels sprouts, carrots, bell peppers, zucchini), olive oil, salt, pepper, herbs (rosemary, thyme), garlic*
- [Cabbage Steaks](recipes/sides/cabbage-steaks.md)
*Cabbage, olive oil, salt, pepper, garlic powder, optional balsamic glaze*

1
src/private Submodule

@ -0,0 +1 @@
Subproject commit b9a3514cf48badcb2165d7e8473217cbd6a7f2f2

1
src/recipes/README.md Normal file
View file

@ -0,0 +1 @@
This is a growing collection. From holiday traditions to camping food, these recipes have been tested and enjoyed with friends and family.

View file

@ -0,0 +1,6 @@
# Appetizers
Starters and finger foods.
- [Artichoke Spinach Dip (GF & DF)](artichoke-spinach-dip.md)
- [Bacon Wrapped Goat Cheese Stuffed Dates](bacon-wrapped-goat-cheese-stuffed-dates.md)

View file

@ -0,0 +1,21 @@
*Source: Abby*
## Description
Gluten-free and dairy-free version.
## Ingredients
- Artichoke hearts, chopped
- Fresh spinach
- Cashew cream or dairy-free cream cheese
- Nutritional yeast
- Garlic
- Lemon juice
- Salt, pepper
- Optional: dairy-free parmesan
## Instructions
1. Sauté spinach and garlic until wilted.
2. Mix with chopped artichokes and cashew cream.
3. Add nutritional yeast, lemon juice, seasonings.
4. Bake at 350°F for 20 minutes until bubbly.
5. Serve with crackers or vegetables.

View file

@ -0,0 +1,14 @@
*Source: Abby*
## Ingredients
- Medjool dates, pitted
- Goat cheese
- Bacon strips, cut in half
- Optional: honey for drizzling
- Optional: almonds to stuff inside
## Instructions
1. Stuff each date with goat cheese (and almond if using).
2. Wrap with half strip of bacon, secure with toothpick.
3. Bake at 400°F for 15-20 minutes until bacon is crispy.
4. Optional: drizzle with honey before serving.

View file

@ -0,0 +1,9 @@
# Baked Goods
Breads, muffins, and bars.
- [Zucchini and Chocolate Chip Bread](zucchini-and-chocolate-chip-bread.md)
- [Carrot, Fig, Macadamia Bread/Bricks](carrot-fig-macadamia-bread.md)
- [Purple Potato, Pecan Bread/Bricks](purple-potato-pecan-bread.md)
- [Chocolate Mint Protein Gunk Bars](chocolate-mint-protein-gunk-bars.md)
- [Banana Chocolate Chip Bread](banana-chocolate-chip-bread.md)

View file

@ -0,0 +1,13 @@
*Source: Abby*
## Ingredients
- Ripe bananas, mashed (3-4)
- Flour
- Sugar or sweetener
- Eggs
- Butter or oil
- Chocolate chips
- Baking soda
- Vanilla extract
- Salt
- Optional: walnuts

View file

@ -0,0 +1,14 @@
*Source: Abby*
## Ingredients
- Grated carrots
- Dried figs, chopped
- Macadamia nuts, chopped
- Flour
- Eggs
- Oil or butter
- Sweetener
- Baking powder
- Spices (cinnamon, nutmeg, ginger)
- Vanilla extract
- Salt

View file

@ -0,0 +1,17 @@
*Source: Abby*
## Ingredients
- Protein powder (chocolate)
- Oats
- Nut butter (peanut or almond)
- Honey or maple syrup
- Cocoa powder
- Peppermint extract
- Dark chocolate chips
- Salt
## Instructions
1. Mix all ingredients until well combined.
2. Press into pan lined with parchment.
3. Refrigerate until firm, cut into bars.
4. Store in fridge or freezer.

View file

@ -0,0 +1,13 @@
*Source: Abby*
## Ingredients
- Purple potatoes, cooked and mashed
- Pecans, chopped
- Flour
- Eggs
- Oil or butter
- Sweetener
- Baking powder
- Cinnamon
- Vanilla extract
- Salt

View file

@ -0,0 +1,13 @@
*Source: Abby*
## Ingredients
- Grated zucchini (about 2 cups)
- Flour
- Sugar or sweetener
- Eggs
- Oil or butter
- Chocolate chips
- Baking soda
- Cinnamon
- Vanilla extract
- Salt

View file

@ -0,0 +1,8 @@
# Beverages
Coffee, tea, and other drinks for all year round.
- [Pour-Over Black Coffee](pour-over-black-coffee.md)
- [London Fog](london-fog.md)
- [French Press Black Coffee](french-press-black-coffee.md)
- [Milkshake](milkshake.md)

View file

@ -0,0 +1,13 @@
*Source: Matt*
## Ingredients
- 30g coarse ground coffee
- 500ml hot water (195-205°F)
## Instructions
1. Add ground coffee to French press.
2. Pour hot water over grounds, stir gently.
3. Place lid on press, don't plunge yet.
4. Steep for 4 minutes.
5. Slowly press plunger down.
6. Serve immediately.

View file

@ -0,0 +1,15 @@
*Source: Matt*
## Ingredients
- 1 Earl Grey tea bag
- 1 cup hot water
- 1/2 cup steamed milk
- 1 tsp manuka honey
- Optional: vanilla extract
## Instructions
1. Steep Earl Grey tea in hot water for 3-4 minutes.
2. Steam or heat milk until frothy.
3. Remove tea bag, stir in honey.
4. Pour steamed milk over tea.
5. Optional: add a drop of vanilla extract.

View file

@ -0,0 +1,11 @@
*Source: Matt*
## Ingredients
- 240ml heavy cream
- 120ml milk
- 120g blackberries
- 100g Medjool dates
- 30g vanilla whey protein
- 5ml vanilla extract
- 10g manuka honey
- 2 tbsp peanut butter

View file

@ -0,0 +1,12 @@
*Source: Matt*
## Ingredients
- 20-25g freshly ground coffee (medium-fine grind)
- 350ml hot water (195-205°F)
## Instructions
1. Place filter in dripper, rinse with hot water.
2. Add ground coffee, create small well in center.
3. Pour 50ml water in circular motion, let bloom 30 seconds.
4. Continue pouring in slow circles until reaching 350ml total.
5. Total brew time: 2.5-3.5 minutes.

View file

@ -0,0 +1,8 @@
# Breakfast Recipes
Morning meals to start your day.
- [German Pancakes (Crepes)](german-pancakes.md)
- [Pancake, Fried Ham, Runny Egg, & Avocado](pancake-fried-ham-runny-egg-avocado.md)
- [Egg Scramble with Sweet Potato, Black Bean, & Ground Beef](egg-scramble-sweet-potato-black-bean-ground-beef.md)
- [Protein Purple Potato Pancakes (Proplto Cakes)](protein-purple-potato-pancakes.md)

View file

@ -0,0 +1,16 @@
*Source: Abby*
## Ingredients
- Eggs
- Ground beef
- Sweet potato, diced
- Black beans
- Green enchilada sauce
- Onions
- Seasonings (cumin, chili powder)
## Instructions
1. Cook ground beef with onions and seasonings.
2. Add diced sweet potato, cook until tender.
3. Add black beans and enchilada sauce, heat through.
4. Scramble eggs in the mixture.

View file

@ -0,0 +1,15 @@
*Source: Abby*
## Ingredients
- Eggs
- Milk
- Flour
- Butter
- Salt
- Vanilla extract (optional)
## Instructions
1. Blend eggs, milk, flour, and salt until smooth.
2. Heat butter in a pan, pour thin layer of batter.
3. Cook until edges lift, flip and cook other side.
4. Serve with jam, cream, or savory fillings.

View file

@ -0,0 +1,17 @@
*Source: Abby*
## Description
A hearty breakfast stack.
## Ingredients
- Pancake batter
- Ham slices
- Eggs
- Avocado
- Butter for cooking
## Assembly
1. Cook pancake as base.
2. Fry ham until crispy.
3. Fry egg to desired doneness.
4. Stack: pancake, ham, egg, sliced avocado on top.

View file

@ -0,0 +1,17 @@
*Source: Matt*
## Ingredients
- Purple potatoes, cooked and mashed
- Eggs
- Protein powder (vanilla or unflavored)
- Oat flour
- Baking powder
- Cinnamon
- Salt
- Milk
## Instructions
1. Mix mashed purple potatoes with eggs.
2. Add protein powder, oat flour, baking powder, cinnamon, salt.
3. Add milk to desired consistency.
4. Cook on griddle like regular pancakes.

View file

@ -0,0 +1,14 @@
# Camping & Backpacking Recipes
Trail-ready food for outdoor adventures.
See [Wikibooks: Camp Cooking](https://en.m.wikibooks.org/wiki/Cookbook:Camp_Cooking)
- [Cobblestacks v2](cobblestacks-v2.md)
- [Shepherd's Pie](shepherds-pie.md)
- [Curried Cashew Couscous with Chicken](curried-cashew-couscous-with-chicken.md)
- [Miso Salmon & Rice](miso-salmon-and-rice.md)
- [Thanksgiving Meal](thanksgiving-meal.md)
- [Jerky](jerky.md)
- [Veggie Bread](veggie-bread.md)
- [Protein Gunk](protein-gunk.md)

View file

@ -0,0 +1,26 @@
*Source: Matt*
## Description
Originally from [Eat Sleep Wild](https://eatsleepwild.com/the-best-homemade-energy-bars-for-hiking-and-backpacking/)
## Ingredients
- 360g mashed banana (about 3 large)
- 1 tsp vanilla extract
- 200g porridge oats
- 90g goji berries
- 50g walnuts
- 30g chia seeds
- 80g pepita seeds
- 60g sliced almonds
- 25g ground flax seed meal
- 1 tsp cinnamon
- 1/4 tsp fine sea salt
## Instructions
1. Preheat oven to 180°C / 350°F. Grease and line 9″ x 13″ dish with parchment.
2. Mash banana, stir in vanilla. Add remaining ingredients, mix well.
3. Let sit 5-10 minutes for chia to absorb moisture.
4. Press into dish with wet hands until compacted.
5. Bake 22-26 minutes until firm and golden on edges.
6. Cool 10 minutes, lift out, cool completely, slice into bars.
7. Store in fridge for a week or freezer for 4-6 weeks.

View file

@ -0,0 +1,9 @@
*Source: Abby*
## Ingredients
- Couscous
- Chicken, cooked and dehydrated
- Cashews, chopped
- Curry powder
- Dried vegetables
- Bouillon

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Lean meat (beef, venison, or turkey)
- Soy sauce or coconut aminos
- Worcestershire sauce
- Spices (garlic, pepper, paprika)
- Optional: liquid smoke

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Instant rice
- Salmon (canned or dehydrated)
- Miso paste packet
- Dried seaweed
- Sesame seeds

View file

@ -0,0 +1,14 @@
*Source: Abby*
## Description
High-protein no-bake bars for the trail.
## Ingredients
- Protein powder
- Nut butter
- Honey or dates
- Oats
- Nuts and seeds
- Optional: chocolate chips
See also: [Backpacker's Shepherd's Pie](https://byucampcooking.blogspot.com/2014/03/backpackers-shepherds-pie.html?m=1) (external link)

View file

@ -0,0 +1,11 @@
*Source: Abby*
## Description
Dehydrated backpacking version.
## Ingredients
- Ground beef or lamb, cooked and dehydrated
- Mashed potatoes (instant or dehydrated)
- Mixed vegetables, dehydrated
- Gravy mix
- Seasonings

View file

@ -0,0 +1,11 @@
*Source: Abby*
## Description
Dehydrated Thanksgiving dinner for the trail.
## Ingredients
- Turkey, cooked and dehydrated
- Instant mashed potatoes
- Stuffing mix
- Dried cranberries
- Gravy mix

View file

@ -0,0 +1,12 @@
*Source: Abby*
## Description
Dense, hearty bread with vegetables for backpacking.
## Ingredients
- Flour
- Grated vegetables (zucchini, carrot)
- Eggs
- Oil
- Baking powder
- Seasonings

View file

@ -0,0 +1,7 @@
# Christmas Recipes
Holiday favorites for the festive season.
- [Eggnog](eggnog.md)
- [Gingerbread Fruitcake (Muffins)](gingerbread-fruitcake-muffins.md)
- [Based Meatloaf](based-meatloaf.md)

View file

@ -0,0 +1,12 @@
*Source: Matt*
## Description
From Based Cooking
## Ingredients
- 2 lbs ground beef
- Beef liver
- Beets
- 4 eggs
- 1/4 cup milk
- Mustard, onion, garlic, tomato, hot sauce

View file

@ -0,0 +1,15 @@
*Source: Matt*
## Description
Adapted from [Bumblebee Apothecary](https://bumblebeeapothecary.com/healthy-eggnog-recipe/)
*Made for Abby and the Leons on December 12, 2024*
## Ingredients
- 1 cup raw cultured cream
- 2 raw eggs
- 1 tsp vanilla extract
- 1/4 tsp nutmeg
- 3 tsp raw honey
- 4 bags peppermint tea in maybe 1/3 cup water (extract would be better)
- Cacao nibs for garnish

View file

@ -0,0 +1,18 @@
*Source: Matt*
## Description
Based on [Keeper of the Home](https://keeperofthehome.org/gingerbread-fruitcake/)
*Be sure to blend dry and wet separately then finally together.*
## Ingredients
- 3 cups pastry flour
- 1 tsp baking soda
- 1 cup buttermilk
- 1/2 cup butter
- 1/2 cup allulose (brown)
- 2 large eggs
- 1.5 cups unsulphered molasses
- 3 cups dried fruits
- 1 cup chopped nuts
- Cinnamon, cloves, ginger, salt, vanilla extract to taste

View file

@ -0,0 +1,10 @@
# Desserts
Sweet treats and after-dinner delights.
- [Ruby Cake](ruby-cake.md)
- [Pumpkin Pie](pumpkin-pie.md)
- [Roasted Peaches with Honey, Mint, & Ice Cream](roasted-peaches-with-honey-mint-and-ice-cream.md)
- [Red Wine Pears](red-wine-pears.md)
- [Chocolate Fat Bomb Cookies](chocolate-fat-bomb-cookies.md)
- [Mug Cakes](mug-cakes.md)

View file

@ -0,0 +1,14 @@
*Source: Matt*
## Description
From Ketoconnect
## Ingredients
- 1/2 cup erythritol
- 1/2 cup cocoa powder
- 1/4 cup butter
- 2 eggs
- 1 tsp vanilla
- 1 cup almond flour
- 1 tsp baking powder
- Pinch of salt

View file

@ -0,0 +1,4 @@
*Source: Matt*
## Description
Originally from Ketoconnect

View file

@ -0,0 +1,15 @@
*Source: Abby*
## Ingredients
- Pie crust
- Pumpkin puree (fresh or canned)
- Eggs
- Heavy cream or evaporated milk
- Sugar or sweetener
- Cinnamon
- Ginger
- Nutmeg
- Cloves
- Salt
**See also:** [Pumpkin Pie from Scratch](https://farmhouseharvest.net/pumpkin-pie-from-scratch/)

View file

@ -0,0 +1,16 @@
*Source: Abby*
## Ingredients
- Pears, peeled (stems intact)
- Red wine
- Sugar or honey
- Cinnamon stick
- Star anise
- Vanilla bean or extract
- Orange peel
## Instructions
1. Combine wine, sweetener, and spices in pot.
2. Add pears, simmer 20-30 minutes, turning occasionally.
3. Remove pears, reduce liquid to syrup.
4. Serve pears with syrup drizzled over.

View file

@ -0,0 +1,15 @@
*Source: Abby*
## Ingredients
- Fresh peaches, halved and pitted
- Honey
- Fresh mint leaves
- Vanilla ice cream
- Butter
- Optional: cinnamon
## Instructions
1. Place peach halves cut-side up in baking dish.
2. Drizzle with honey, dot with butter.
3. Roast at 375°F for 20-25 minutes until tender.
4. Serve warm with ice cream and fresh mint.

View file

@ -0,0 +1,13 @@
*Source: Abby*
## Ingredients
- Flour
- Sugar
- Cocoa powder
- Eggs
- Butter or oil
- Buttermilk
- Red food coloring
- Baking soda
- Vanilla extract
- Salt

View file

@ -0,0 +1,6 @@
# Earth Day Recipes
Made for housemates Ray and Will on April 27th, 2024.
- [Goat Root Stir Fry](goat-root-stir-fry.md)
- [Compote](compote.md)

View file

@ -0,0 +1,12 @@
*Source: Matt*
## Ingredients
- One pack raspberries
- One pack blueberries
- One pack blackberries
- 3 tbsp manuka honey
## Instructions
1. Add all berries to a pot, fill with water until submerged.
2. Bring to a boil, simmer for 20 minutes.
3. Strain or blend, add to pitcher, mix in honey while hot.

View file

@ -0,0 +1,29 @@
*Source: Matt*
## Ingredients
**The Meat:**
- Lamb loin chop
- Lamb shoulder chop
- Lamb leg chop
**The Base:**
- 1 bunch collard greens
- 1 bunch chard
- Coconut aminos
**The Roots:**
- One turnip
- One radish
- One beet
- One rutabaga
- One parsnip
- One (midsize) carrot
**Seasoning (in decreasing order):**
- Nutritional yeast
- Dill
- Cumin
- Coriander
- Ginger
- Cardamom

View file

@ -0,0 +1,9 @@
# Fall Recipes
Seasonal recipes celebrating autumn harvest and flavors.
- [Miso Maple Acorn Squash](miso-maple-acorn-squash.md)
- [Delicata Squash with Parmesan](delicata-squash-with-parmesan.md)
- [Roasted Kabocha Squash](roasted-kabocha-squash.md)
- [Butternut Squash Soup](butternut-squash-soup.md)
- [Spiced and Diced Sweet Potatoes](spiced-and-diced-sweet-potatoes.md)

View file

@ -0,0 +1,10 @@
*Source: Abby*
## Ingredients
- Butternut squash, cubed
- Onion
- Garlic
- Vegetable or chicken broth
- Coconut milk or cream
- Sage, nutmeg
- Salt, pepper

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Delicata squash, sliced in rings
- Olive oil
- Parmesan cheese, grated
- Salt, pepper
- Fresh herbs (optional)

View file

@ -0,0 +1,14 @@
*Source: Abby*
## Ingredients
- Acorn squash, halved
- Miso paste
- Maple syrup
- Butter
- Sesame seeds
## Instructions
1. Roast squash halves at 400°F for 30 minutes.
2. Mix miso, maple syrup, and melted butter.
3. Brush mixture on squash, roast 10 more minutes.
4. Garnish with sesame seeds.

View file

@ -0,0 +1,7 @@
*Source: Abby*
## Ingredients
- Kabocha squash, cut into wedges
- Olive oil
- Salt
- Optional: honey, cinnamon

View file

@ -0,0 +1,9 @@
*Source: Matt*
## Ingredients
- Sweet potatoes, diced
- Olive oil
- Cinnamon
- Nutmeg
- Ginger
- Salt

View file

@ -0,0 +1,15 @@
# Meals
Main dishes and complete meals for everyday cooking.
- [Meatloaf, Purple Cabbage Slaw, & Parsnip Puree](meatloaf-purple-cabbage-slaw-parsnip-puree.md)
- [Pistachio Encrusted Liver Burgers](pistachio-encrusted-liver-burgers.md)
- [Greek Bowls](greek-bowls.md)
- [Miso Oats with Ground Beef](miso-oats-with-ground-beef.md)
- [Salmon Bowl](salmon-bowl.md)
- [Pad Se Ew](pad-se-ew.md)
- [Sushi](sushi.md)
- [Pesto Chicken and Spaghetti Squash](pesto-chicken-and-spaghetti-squash.md)
- [Steak & Air-Fried Broccoli](steak-and-air-fried-broccoli.md)
- [Apple Salmon Salad](apple-salmon-salad.md)
- [Peanut Butter Chicken](peanut-butter-chicken.md)

View file

@ -0,0 +1,10 @@
*Source: Abby*
## Ingredients
- Cooked salmon
- Mixed greens
- Apple, diced
- Celery, chopped
- Red onion, diced
- Walnuts
- Lemon vinaigrette

View file

@ -0,0 +1,10 @@
*Source: Abby*
## Ingredients
- Protein of choice
- Cucumber
- Tomatoes
- Red onion
- Feta cheese
- Olives
- Tzatziki sauce

View file

@ -0,0 +1,24 @@
*Source: Abby*
## Description
A complete meal with meatloaf, colorful slaw, and creamy root vegetable puree.
## Ingredients
**Meatloaf:**
- Ground beef
- Eggs
- Breadcrumbs or oats
- Onion, garlic
- Seasonings
**Purple Cabbage Slaw:**
- Purple cabbage, shredded
- Carrots, shredded
- Vinegar-based dressing
**Parsnip Puree:**
- Parsnips, peeled and chopped
- Butter
- Cream or milk
- Salt, pepper

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Rolled oats
- Ground beef
- Miso paste
- Scallions
- Seasonings

View file

@ -0,0 +1,15 @@
*Source: Abby*
## Description
Thai stir-fried noodle dish.
## Ingredients
- Wide rice noodles
- Protein (chicken, beef, or tofu)
- Chinese broccoli (gai lan)
- Eggs
- Dark soy sauce
- Light soy sauce
- Oyster sauce
- Sugar
- Garlic

View file

@ -0,0 +1,11 @@
*Source: Matt*
## Ingredients
- Chicken pieces
- Natural peanut butter
- Coconut milk
- Soy sauce
- Garlic
- Ginger
- Lime juice
- Vegetables (bell peppers, carrots)

View file

@ -0,0 +1,9 @@
*Source: Abby*
## Ingredients
- Chicken breast
- Spaghetti squash
- Basil pesto
- Parmesan cheese
- Cherry tomatoes
- Garlic

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Beef liver
- Lion's mane mushrooms
- Ground beef
- Crushed pistachios
- Seasonings

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Salmon fillet
- Coconut rice
- Cabbage slaw
- Fresh mango
- Sesame seeds

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Steak (your preferred cut)
- Fresh broccoli florets
- Olive oil
- Salt, pepper
- Garlic powder

View file

@ -0,0 +1,15 @@
*Source: Abby*
## Description
Homemade sushi rolls.
## Ingredients
- Sushi rice
- Nori sheets
- Fresh fish (salmon, tuna)
- Avocado
- Cucumber
- Rice vinegar
- Soy sauce
- Wasabi
- Pickled ginger

View file

@ -0,0 +1,28 @@
# Miscellaneous Recipes
Drinks, snacks, sides, and external links.
## Quick Tips
- Salt garlic before mincing
- Wet tortillas before frying
## Recipes
- [Balsamic Glazed Brussels Sprouts](balsamic-glazed-brussels-sprouts.md)
- [Bone Broth](bone-broth.md)
## External Recipe Links
### From Wikibooks Cookbook
- [Blackberry Oat Bars (Gluten-Free)](https://en.m.wikibooks.org/wiki/Cookbook:Blackberry_Oat_Bars_(Gluten-Free))
- [Oatmeal Muffins](https://en.m.wikibooks.org/wiki/Cookbook:Oatmeal_Muffins)
- [Anzac Biscuits I](https://en.m.wikibooks.org/wiki/Cookbook:Anzac_Biscuits_I)
### Other Links
- [Oatmeal Pancakes](https://based.cooking/oatmeal-pancakes/) (Based Cooking)
- [Pumpkin Pie from Scratch](https://farmhouseharvest.net/pumpkin-pie-from-scratch/)
- [Protein Bread](https://theeastcoastkitchen.com/protein-bread/)
- [Beef Tallow](https://heygrillhey.com/beef-tallow/)
- [Guide for Substituting Eggs](https://www.kingarthurbaking.com/blog/2021/01/21/guide-for-substituting-eggs-best-egg-replacers)
- [Backpacker's Shepherd's Pie](https://byucampcooking.blogspot.com/2014/03/backpackers-shepherds-pie.html?m=1)

View file

@ -0,0 +1,12 @@
*Source: Matt*
## Ingredients
- 1.5 lbs Brussels sprouts (halved)
- 3 tbsp olive oil
- Salt & pepper
- 3 tbsp balsamic vinegar
- 1-2 tbsp honey
- 2 cloves garlic
## Instructions
Roast Brussels sprouts with oil at 400°F for 20-25 min. Make glaze by simmering vinegar, honey, and garlic 3-5 min. Toss and serve.

View file

@ -0,0 +1,18 @@
*Source: Abby*
## Ingredients
- Beef, chicken, or lamb bones (with marrow)
- Water
- Apple cider vinegar (2-3 tbsp)
- Vegetables (onions, carrots, celery)
- Herbs (bay leaf, thyme, parsley)
- Salt, peppercorns
## Instructions
1. Roast bones at 400°F for 30 minutes.
2. Place bones in large pot, cover with water.
3. Add vinegar, let sit 30 minutes.
4. Bring to boil, reduce to simmer.
5. Simmer 12-24 hours (beef), 8-12 hours (chicken).
6. Add vegetables and herbs last 2 hours.
7. Strain, season, store or freeze.

View file

@ -0,0 +1,10 @@
# Side Dishes
Vegetables, salads, and accompaniments for all year round.
- [Stuffing](stuffing.md)
- [Vinaigrette](vinaigrette.md)
- [Kale Dish](kale-dish.md)
- [Roasted Vegetables](roasted-vegetables.md)
- [Cabbage Steaks](cabbage-steaks.md)
- [Coconut Rice](coconut-rice.md)

View file

@ -0,0 +1,13 @@
*Source: Matt*
## Ingredients
- Cabbage, cut into thick slices
- Olive oil
- Salt, pepper
- Garlic powder
- Optional: balsamic glaze
## Instructions
1. Brush cabbage steaks with oil, season.
2. Roast at 400°F for 25-30 minutes, flipping once.
3. Drizzle with balsamic if desired.

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- White or jasmine rice
- Coconut milk
- Water
- Salt
- Optional: lime zest, cilantro

View file

@ -0,0 +1,9 @@
*Source: Abby*
## Ingredients
- Kale, chopped
- Garlic
- Olive oil
- Lemon juice
- Red pepper flakes
- Parmesan (optional)

View file

@ -0,0 +1,8 @@
*Source: Abby*
## Ingredients
- Mixed vegetables (Brussels sprouts, carrots, bell peppers, zucchini)
- Olive oil
- Salt, pepper
- Herbs (rosemary, thyme)
- Garlic

Some files were not shown because too many files have changed in this diff Show more