First Grocery List Generated!

This was automatically generated from a list of recipes in my Obsidian Vault

I picked 5 recipes, added them into a script, and ran the combiner. IT works! Mostly!


What is it doing?

  • It’s called Recipe Retriever

  • It reads my obsidian vault and finds notes which are tagged as recipes

  • It randomly selects from the list of recipes a number I specify in the CLI, so If I pass the number 5, it returns 5 recipe paths.

  • It reads the notes at those paths and parses ingredient objects from those notes

  • It combines those ingredients and objects into a single amount so that I can see the full amount of items I need to buy on a single line.

  • It generates a markdown file based on the combined ingredients

  • It puts that markdown file back into my obsidian vault, which uses sync, so it’s available online.

So it’s essentially a food decision-maker and shopping list generator. I call it Recipe Retriever just because I was missing my dog when I started writing it, and I found some cute ASCII art that reminds me of him.

ASCII art of an italian greyhound


So as you can see, I had no choice but to name it that :-)

Finishing Touches

Kind of a lot here! Let’s make bullet points.

  • Smart conversion of amounts POST combining the ingredients

  • Random recipe selection replacement scripting

  • The list should generate with the date and time in the title or the body to avoid confusion

  • Ideally, the list should have at the top the recipes that were used to generate the list

  • I want to add some final touches to the validator to highlight its line and the origin of failure in which file.

  • Organize by aisle

Converting Combined Ingredients Intelligently

By the time we’re at 450+ grams, that needs to be listed in pounds. Not many stores sell things in grams Iaround here. This is quality of life only because I can do the conversions myself, but who wants to worry about conversion in the grocery store?

Random Recipe Selection Replacements

Arguably the most important feature of the whole project, I want to be able to ask for (x) recipes from the set of recipes that I have. I want the system to pick randomly from that set, that specific number I asked for. This functionality is already working. But I can’t replace the randomly selected items that I’m not really wanting to be in the line-up for this week. That’s a high-priority one.


Date and Time included

Either in the title, or in the body of the output someplace, the data and time should be included so I can be sure I’m looking at the correct output. OR I could make it so that only one can ever exist??? TBD here.

Include Target Recipe Names in the list

I would like to know before and after going in the store what recipes I am actually going to be buying items for.

Lowest Priority: Validator Upgrades

The validator parses the ingredients from the original ingredient list, and this parsing process is prone to failures when the validator doesn’t recognize things. I’d like a more detailed report on the origin of failures whenever they occur. Ideally, I’ll run the validator each time I add a new recipe and I won’t need to worry about this. But in the event I don’t, I want some help finding the problem areas.

Organize By Aisle

This will be one of the last things I get done, and I won’t put an ETA on it. But I definitely would prefer that the list be automatically organized by aisle where I can find the ingredient to make the shopping experience a bit more fluid.

Maiden Voyage

I don’t know when I’ll use it for the first time, but I’ll be sure to make a post about that. I’ll get some pictures of the whole affair and put them into the record.

I’m weirdly excited about this, as I don’t know that I’ve ever built an app that did something for me while I was out and about in the city. This will be fun.

Previous
Previous

Building Understanding of Closures with Rust

Next
Next

Measurement Specifiers