|
||
---|---|---|
.vscode | ||
_includes | ||
_layouts | ||
.drone.yml | ||
.gitignore | ||
_config.yml | ||
Gemfile | ||
Gemfile.lock | ||
index.html | ||
LICENSE | ||
README.md | ||
style.css |
recipe-site
A simple static Jekyll site for keeping track of recipes. This is my first major Jekyll project, so it might be a little messy. This project is a work in progress.
Usage
Ensure that you have Git, Ruby and RubyGems installed.
Assuming a Unix system:
$ git clone https://git.bune.city/lynnesbian/recipe-site
$ cd recipe-site
$ gem install bundler
$ bundle install
$ bundle exec jekyll build
This will compile the website into the _site
directory, which you may serve with any HTTP server. It is necessary to re-run bundle exec jekyll build
after any modifications.
Alternatively, you can use jekyll's built in server for testing:
$ bundle exec jekyll serve
The built in server will automatically regenerate the _site
output whenever you make a change.
However, there won't be much to look at until you add some recipes!
Recipe file format
Recipes are found in _recipes/
, with subrecipes located in _subrecipes/
.
Here's an example recipe, which could be saved to _recipes/chocolate_cake.yml
:
---
name: Chocolate cake
author: Jane Crocker
layout: recipe
ingredients:
- [1, egg, null]
- [2, butter, sticks]
- [2, flour, cups]
# et cetera
method:
- Preheat the oven to 200°C
- Whisk the egg finely
# et cetera
time: 240
---
name
(string) - The displayed name of the recipe. Does not appear in the URL.author
(string, optional) - The author of the recipe.layout
(string) - The template to use; should always berecipe
.ingredients
(list) - Each entry iningredients
consists of an amount, ingredient name, and unit terminology.[2, flour, cups]
is displayed as2 cups of flour
, while[1, egg, null]
is displayed as1 egg
. The third field is optional -[1, egg, null]
is the same as[1, egg]
.method
(list) - A list of steps undertaken to create the recipe, written in plain English. Or whatever language you prefer.time
(string, optional) - The time it takes to make the recipe in minutes.
The recipe's file name isn't important, but it's good practice to make it something obvious, like chocolate_cake.md
and not strawberry_pie.md
.
The recipe files are standard YAML. The extension should always be .md
- other extensions will cause issues with subrecipes (see #1).
Subrecipes
Subrecipes behave a little differently to regular recipes:
- They don't show up on the home page
- The
time
tag is not supported layout
should besubrecipe
Subrecipes have a tag that regular recipes do not - the parents
tag. This is a list of recipes that the subrecipe should be included in. For example:
---
name: Chocolate icing
parents:
- chocolate_cake
- chocolate_cupcakes
ingredients:
- [250, chocolate, grams]
# et cetera
---
The entries in parents
refer to the filenames of the parent recipes - chocolate_cake
refers to chocolate_cake.md
.
If a subrecipe does not have at least one valid parents
entry, it will not appear anywhere on the website.
Licensing
This software is licensed under the Apache 2.0 license.
Copyright 2020 Lynnesbian
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.