[[./img/org-chef.png]]
Introduction
=org-chef= is a package for managing recipes in org-mode. One of the main features is that it can automatically extract recipes from websites like allrecipes.com
Installation
=org-chef= is available on MELPA!
I manage my packages via [[https://github.com/jwiegley/use-package][use-package]]. I have added this to my ~.emacs~ file to install =org-chef=:
(require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(require 'use-package)
(use-package org-chef :ensure t)
Org-Capture
It's recommended that you set up an org-capture template to capture recipes. Here is an example of that:
(setq org-capture-templates '(("c" "Cookbook" entry (file "~/org/cookbook.org") "%(org-chef-get-recipe-from-url)" :empty-lines 1) ("m" "Manual Cookbook" entry (file "~/org/cookbook.org") "* %^{Recipe title: }\n :PROPERTIES:\n :source-url:\n :servings:\n :prep-time:\n :cook-time:\n :ready-in:\n :END:\n Ingredients\n %?\n Directions\n\n")))
When capturing to the cookbook it will prompt you for a URL, you can then paste a URL like the following into the mini-buffer, and it will fill in as many details as it can. Here is an example recipe:
http://allrecipes.com/recipe/85452/homemade-black-bean-veggie-burgers/
Which will be extracted to something like the following:
,* Homemade Black Bean Veggie Burgers :PROPERTIES: :source-url: https://www.allrecipes.com/recipe/85452/homemade-black-bean-veggie-burgers/ :servings: 4 :prep-time: 15 m :cook-time: 20 m :ready-in: 35 m :END: ,** Ingredients
1/2 cup bread crumbs ,** Directions
Additionally, there is a capture template in there for manually entering a recipe, if you so desire!
Inserting at Point
You can also insert a recipe at point using the command ~org-chef-insert-recipe~.
Editing recipes
You can change the number of servings in a recipe using the command ~org-chef-edit-servings~. This will automatically update the ingredients list to match.
Supported Sites
The following websites should support recipe extraction:
Contributing
Contributions are very welcome! Feel free to open pull requests and issues (and feel free to include a recipe that you like in it!)
If you find a site that you like that doesn't currently work with =org-chef=, then you should definitely let us know through a GitHub issue! =org-chef='s goal is to support as many sites as possible, so missing websites are considered bugs!
Additionally, there is a #org-chef channel on freenode that you're welcome to join. Share recipes, give each other =org-chef= tips, be happy :).