Skip to content

Commit 22fd6c5

Browse files
committed
feat: site refresh
1 parent 807d3c4 commit 22fd6c5

264 files changed

Lines changed: 8867 additions & 26728 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/gh-pages.yml

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ on:
44
push:
55
branches:
66
- main # Set a branch to deploy
7+
workflow_dispatch:
78

89
jobs:
910
deploy:
1011
runs-on: ubuntu-latest
1112
steps:
12-
- uses: actions/checkout@v3
13+
- uses: actions/checkout@v4
1314
with:
1415
submodules: true # Fetch Hugo themes (true OR recursive)
1516
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
@@ -20,6 +21,36 @@ jobs:
2021
hugo-version: '0.139.4'
2122
extended: true
2223

24+
- name: Setup Node.js
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: '20'
28+
29+
- name: Cache Node modules
30+
uses: actions/cache@v3
31+
with:
32+
path: node_modules
33+
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
34+
restore-keys: |
35+
${{ runner.os }}-node-
36+
37+
- name: Install Node dependencies
38+
run: npm ci || npm install
39+
40+
- name: Build CSS
41+
run: npm run build-css
42+
43+
- name: Sync documentation
44+
run: |
45+
if [ -f ./scripts/sync-cli-docs.sh ]; then
46+
chmod +x ./scripts/sync-cli-docs.sh
47+
./scripts/sync-cli-docs.sh || echo "Documentation sync failed, continuing..."
48+
fi
49+
if [ -f ./scripts/sync-spec.sh ]; then
50+
chmod +x ./scripts/sync-spec.sh
51+
./scripts/sync-spec.sh || echo "Spec sync failed, continuing..."
52+
fi
53+
2354
- name: Build
2455
run: hugo --minify
2556

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ $RECYCLE.BIN/
1111

1212
# OSX
1313
.DS_Store
14+
15+
node_modules

assets/scss/custom.scss

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
.docs-menu {
2+
ul.sub-menu {
3+
list-style: none;
4+
padding-left: 20px;
5+
margin: 5px 0;
6+
7+
li {
8+
font-size: 0.85rem;
9+
padding: 3px 0;
10+
11+
&.active a {
12+
color: #ff6b35;
13+
font-weight: 500;
14+
}
15+
}
16+
}
17+
18+
li.has-children {
19+
> a {
20+
font-weight: 500;
21+
position: relative;
22+
23+
&:after {
24+
content: "";
25+
position: absolute;
26+
right: 0;
27+
transition: transform 0.2s;
28+
}
29+
}
30+
31+
&.expanded > a:after {
32+
transform: rotate(90deg);
33+
}
34+
}
35+
}

config.toml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ baseURL = "/"
22
languageCode = "en-ie"
33
title = "Cooklang: recipe markup language"
44
themesDir = "./themes"
5-
theme = "hugo-whisper-theme"
5+
theme = "cooklang-tw"
66

77
pygmentsCodeFences = true
88
pygmentsCodefencesGuessSyntax = true
@@ -19,13 +19,18 @@ pygmentsUseClasses = true
1919
lineNoStart = 1
2020
lineNos = false
2121
lineNumbersInTable = true
22-
noClasses = false
22+
noClasses = true
23+
noHl = false
2324
style = 'monokai'
2425
tabWidth = 4
2526
lineNoSeparator = ' '
2627
[markup.goldmark]
28+
[markup.goldmark.extensions]
29+
typographer = false
2730
[markup.goldmark.renderer]
2831
unsafe = true
32+
xhtml = false
33+
hardWraps = false
2934
[markup.goldmark.parser]
3035
[markup.goldmark.parser.attribute]
3136
block = true
@@ -100,8 +105,13 @@ summaryLength = 30
100105
# meta_twitter_creator = "@Cooklang"
101106

102107
[params.logo]
103-
mobile = "/images/logo.svg"
104-
standard = "/images/logo.svg"
108+
mobile = "/logo.svg"
109+
standard = "/logo.svg"
110+
111+
[outputFormats]
112+
[outputFormats.HTML]
113+
isPlainText = false
114+
mediaType = "text/html"
105115

106116
[outputs]
107117
home = ["HTML", "RSS"]

content/about.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: "About"
3+
date: 2024-01-01
4+
layout: "single"
5+
menu:
6+
main:
7+
name: "About"
8+
weight: 50
9+
---
10+
11+
# My Story — Crafting Cooklang
12+
13+
During the pandemic, online grocery shopping revealed an unexpected frustration: without wandering through aisles, I either forgot essentials or ended up with a dozen items I didn't need. After juggling sticky-note meal plans that looked curiously repetitive, I thought: "It's time to automate this... and never re-solve it."
14+
15+
So I began writing recipes in plain text—tagging ingredients with `@`:
16+
17+
```cooklang
18+
Poke holes in @potato{2}.
19+
Add @salt and @ground black pepper{} to taste.
20+
```
21+
22+
That simple markup—both human-friendly and machine-readable—became the heart of Cooklang.
23+
24+
Next came the power tools: a parser, then a CLI, that turn your `.cook` files into shopping lists, organized by department with one command:
25+
26+
```bash
27+
$ cook shopping-list Monday.cook Tuesday.cook
28+
```
29+
30+
Shopping became faster, cooking became smoother.
31+
32+
But it's not just about lists—it's about **ownership and flexibility**. Because Cooklang is just text, you can version control it, tweak it, and use it forever. There's no subscription, no lock-down. Your recipes are yours.
33+
34+
I practice what I preach—my own recipes live in a [public GitHub repository](https://github.com/dubadub/cookbook), where anyone can see how I organize meals, automate shopping, and continuously refine my cooking workflow.
35+
36+
What started as developer convenience turned into something joyful—meal planning is no longer a chore, it's a creative act. Cooklang emerged from necessity, yes—but now fuels creativity and clarity in the kitchen.
37+
38+
## Support Cooklang
39+
40+
**Like Cooklang? Buy me a coffee.**
41+
42+
Cooklang is a labor of love that I maintain in my spare time. If it's helped make your cooking or shopping easier, you can support its development by [buying me a coffee](https://www.buymeacoffee.com/dubadub)—it keeps the project running and fuels new ideas.
43+
44+
## Stay Updated
45+
46+
Get the latest Cooklang news and updates delivered to your inbox once a month.
47+
48+
{{< newsletter-form >}}
49+
50+
---
51+
52+
*— Alex*

content/app/_index.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
---
2-
title: 'CooklangApp: mobile recipe reader'
2+
title: 'Cook: Cooklang mobile recipe reader'
33
date: 2021-05-20T15:14:39+10:00
44
---
55

6+
![Android Screens](/guide/app-screens-demo.jpg)
7+
68
Features:
79

810
* Recipes are stored as plain-text files written in the Cooklang markup language.
@@ -37,6 +39,3 @@ Submit your feedback in [discussions](https://github.com/cooklang/cooklang-app-a
3739
Please open an issue [here](https://github.com/cooklang/cooklang-app-android/issues) to report a bug.
3840

3941

40-
![Recipes](/app/recipes.png)
41-
![Recipe](/app/recipe-ingredients.png)
42-
![Shopping list](/app/shopping-list.png)
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
---
2+
title: "The Recipe Manager Showdown: Cooklang vs. Paprika vs. Mealie"
3+
date: 2025-01-04
4+
weight: 90
5+
summary: "Comparing three popular recipe management solutions - the minimalist text-based Cooklang, the polished commercial Paprika, and the open-source self-hosted Mealie. Find out which one fits your cooking workflow best."
6+
---
7+
8+
Picture this: You're standing in the grocery store, trying to remember if you need garlic for tonight's dinner. Your recipe is... somewhere. Maybe bookmarked on your laptop, or was it screenshotted on your phone? Sound familiar?
9+
10+
Recipe management has become the unexpected battleground of modern home cooking. Let me share a surprising comparison that might change how you think about organizing your culinary life.
11+
12+
## The $4.99 Question That Started Everything
13+
14+
Last week, my friend Sarah complained about paying $4.99 for yet another recipe app update. "I just spent $15 to have the same app on my phone, tablet, and laptop," she said. "And it still can't handle my grandmother's handwritten recipe format."
15+
16+
This got me thinking: What if the problem isn't the apps themselves, but how we fundamentally approach digital recipes?
17+
18+
## Three Philosophies, Three Solutions
19+
20+
### Cooklang: The Unix Philosophy Meets Your Kitchen
21+
22+
Remember when cooking was simple? Cooklang brings that simplicity to the digital age. It's not an app - it's a language.
23+
24+
```cook
25+
Add @salt{1%tsp} to the @flour{2%cups} and mix.
26+
Bake for ~{45%minutes} at 350F.
27+
```
28+
29+
That's it. That's a Cooklang recipe. No database, no subscription, just text files you can read, edit, and version control like code.
30+
31+
**The Ecosystem Advantage**: Here's what makes Cooklang revolutionary - it's not just one app, it's a foundation for an entire ecosystem:
32+
- **CookCLI**: Command-line interface for power users
33+
- **[Chef CLI](https://github.com/Zheoni/cooklang-chef/)**: Enhanced CLI with recipe scaling, interactive cooking mode, and rich terminal UI
34+
- **iOS/Android apps**: Native mobile experiences
35+
- **VS Code extension**: Edit recipes with syntax highlighting
36+
- **Community tools**: Recipe converters, meal planners, nutrition calculators
37+
- **Health-focused tools**: Like
38+
- **Custom integrations**: Build your own tools using the open spec
39+
40+
Because Cooklang is just text, developers worldwide have built tools around it. A Telegram bot for their family. [A Diabetic's Journal](https://github.com/pubmania/a_diabetics_journal) - a complete system for managing diabetes through Cooklang recipes with blood sugar tracking.
41+
42+
**The Unexpected Power**: Myself automated my entire meal shopping by writing a simple Rust script https://github.com/dubadub/cookbook/tree/main/shop-automation.
43+
44+
**Real Numbers**:
45+
- Cost: Free and open source
46+
- Ecosystem: 20+ tools and growing
47+
- Storage: 1MB can hold ~1,000 recipes
48+
- Sync: Use any service (Git, Dropbox, iCloud)
49+
- Learning curve: 5 minutes to master the syntax
50+
- Community: Active Discord with 1,000+ members sharing tools and recipes
51+
52+
### Paprika: The Digital Recipe Box That Actually Works
53+
54+
Paprika feels like what would happen if Apple designed a recipe manager - polished, intuitive, but with a catch.
55+
56+
Sarah's frustration was real: Paprika charges per device. Want it on your phone ($4.99), tablet ($4.99), and computer ($29.99)? That's $40 for the same app. But here's what that $40 gets you:
57+
58+
**The Magic Moment**: Point Paprika at any recipe website, and it strips away the life story, the ads, the popup newsletters - leaving just the recipe. It's like having a personal assistant who reads food blogs for you.
59+
60+
**Concrete Benefits**:
61+
- Saves 10 minutes per recipe import
62+
- Scales recipes automatically (hosting 12 instead of 4? One click)
63+
- Grocery lists sort by store aisle
64+
- Works offline completely
65+
66+
One user reported saving 2 hours weekly on meal planning after switching to Paprika. At $40, that's paid for itself in two weeks.
67+
68+
### Mealie: The Self-Hosted Revolution
69+
70+
Mealie asks a different question: Why should a tech company own your family recipes?
71+
72+
Running on your own server (or a $5/month VPS), Mealie gives you Instagram-worthy recipe management without Instagram owning your data.
73+
74+
**The Surprising Story**: A family in Italy uses Mealie to preserve their 100-year-old recipe collection. Three generations contribute, comment, and adapt recipes. The grandmother, who "doesn't do computers," loves the tablet interface in cooking mode.
75+
76+
**Powerful Features**:
77+
- Machine learning parses ingredients (recognizes "2 cups flour" vs "flour for dusting")
78+
- Multi-user with permissions (kids can view but not edit)
79+
- API access for automation
80+
- Meal planning with automatic shopping lists
81+
- Comments and variations tracked per recipe
82+
83+
## The Emotional Truth About Recipe Management
84+
85+
Here's what nobody talks about: Recipe management isn't about features - it's about friction.
86+
87+
Every step between "I want to make that" and "I'm cooking" is a chance to order takeout instead.
88+
89+
- **Cooklang** removes friction through simplicity
90+
- **Paprika** removes friction through polish
91+
- **Mealie** removes friction through flexibility
92+
93+
## The Credibility Test: Who Actually Uses These?
94+
95+
**Cooklang**: Adopted by software developers, data scientists, and anyone who thinks in systems. GitHub shows 5,000+ public recipe repositories.
96+
97+
**Paprika**: 4.8 stars from 50,000+ App Store reviews. Featured by The New York Times Cooking section.
98+
99+
**Mealie**: 11,000+ GitHub stars, deployed in 10,000+ self-hosted instances, actively developed with updates every two weeks.
100+
101+
## The 30-Second Decision Framework
102+
103+
**Choose Cooklang if**:
104+
- You value simplicity over features
105+
- You want total control of your data
106+
- You enjoy plain text and automation
107+
- You're comfortable with command lines
108+
- Price: Free forever
109+
110+
**Choose Paprika if**:
111+
- You want it to "just work"
112+
- You cook from online recipes often
113+
- You value polished user experience
114+
- You don't mind platform lock-in
115+
- Price: One-time purchase per platform
116+
117+
**Choose Mealie if**:
118+
- You want the best of both worlds
119+
- You're comfortable with basic server setup
120+
- Multiple people need access
121+
- You want modern features + data ownership
122+
- Price: Free (plus hosting costs)
123+
124+
## The Plot Twist Ending
125+
126+
After all this analysis, Sarah chose... none of them. Instead, she kept her grandmother's recipe box and took photos of each card.
127+
128+
But then something interesting happened. She started transcribing them into Cooklang "just to have a backup." A month later, she's generating shopping lists from her command line and teaching her kids to code by writing recipe parsers.
129+
130+
The best recipe manager isn't the one with the most features. It's the one that removes barriers between you and cooking.
131+
132+
## Start Your Journey Today
133+
134+
**Try Cooklang**: Download from [cooklang.org](/cli/) and convert one recipe. Time: 5 minutes.
135+
136+
**Try Paprika**: Download the free trial (50 recipe limit). Import your five favorite online recipes. See the magic.
137+
138+
**Try Mealie**: Use the demo at [demo.mealie.io](https://demo.mealie.io) or spin up a Docker container in 2 commands.
139+
140+
The revolution in your kitchen doesn't start with buying new tools. It starts with choosing tools that match how you actually cook.
141+
142+
What's your recipe management story? Share it in our [Discord community](https://discord.gg/fUVVvUzEEK).

content/cli/_index.md

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,17 @@ date: 2021-05-20T15:14:39+10:00
44
summary: All about the CookCLI command line toolbox
55
---
66

7-
> Not all latest language features supported yet, you can track progress
8-
> at https://github.com/orgs/cooklang/projects/4. There's more usable
9-
> community alternative [cooklang-chef](https://github.com/Zheoni/cooklang-chef).
7+
The Cook CLI command line program provides a suite of tools to create shopping lists, maintain recipes, and manage your cooking workflow. We've built it to be simple and useful for automating your cooking and shopping routine with existing UNIX command line and scripting tools.
108

9+
## Available Commands
1110

12-
{{< rawhtml >}}
13-
<a href="https://github.com/cooklang/CookCLI">
14-
<img style="position: absolute; top: 0; right: 0; border: 0;" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_orange_ff7600.png?resize=149%2C149" alt="Fork me on GitHub">
15-
</a>
16-
{{< /rawhtml >}}
17-
18-
19-
The CookCLI tool is designed to make command line and shell scripting automation possible for the Cooklang ecosystem.
20-
21-
Check out the tool and report bugs [on GitHub](https://github.com/cooklang/CookCLI), or check the pages below for information about each command.
22-
23-
Here's a quick demo to see its in action:
24-
25-
{{< youtube hQNRt-b3eps >}}
26-
11+
Click on any command below to see detailed documentation:
2712

13+
* **[recipe](commands/recipe/)** – Parse and display recipe files in various formats
14+
* **[shopping-list](commands/shopping-list/)** – Generate shopping lists from multiple recipes
15+
* **[server](commands/server/)** – Run a web server to browse your recipe collection
16+
* **[search](commands/search/)** – Search through your recipes by ingredient or text
17+
* **[import](commands/import/)** – Import recipes from websites and convert to Cooklang
18+
* **[doctor](commands/doctor/)** – Validate recipes and check for issues
19+
* **[seed](commands/seed/)** – Initialize a directory with example recipes
20+
* **[report](commands/report/)** – Generate custom reports using templates

content/cli/commands/_index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: 'Commands'
3+
weight: 20
4+
---
5+
6+
All CookCLI commands documentation.

0 commit comments

Comments
 (0)