Skip to content

Commit

Permalink
Unit of measure conversion table
Browse files Browse the repository at this point in the history
  • Loading branch information
sjoerdvanderhoorn committed May 14, 2021
1 parent 1ece213 commit 22b0abe
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 12 deletions.
55 changes: 48 additions & 7 deletions components/recipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,55 @@ Vue.component('recipe', {
data: function() {
return {
outputText: this.strip(this.text),
position: null
position: null,
settings: {
unitofmeasure: [
{ name: "g", unit: "gram", conversion: 1 },
{ name: "gram", unit: "gram", conversion: 1 },
{ name: "kg", unit: "gram", conversion: 1000 },
{ name: "kilo", unit: "gram", conversion: 1000 },
{ name: "kilogram", unit: "gram", conversion: 1000 },
{ name: "pond", unit: "gram", conversion: 500 },
{ name: "ml", unit: "milliliter", conversion: 1 },
{ name: "milliliter", unit: "milliliter", conversion: 1 },
{ name: "dl", unit: "milliliter", conversion: 10 },
{ name: "deciliter", unit: "milliliter", conversion: 10 },
{ name: "cl", unit: "milliliter", conversion: 100 },
{ name: "centiliter", unit: "milliliter", conversion: 100 },
{ name: "l", unit: "milliliter", conversion: 1000 },
{ name: "liter", unit: "milliliter", conversion: 1000 },
{ name: "kop", unit: "kop", conversion: 1 },
{ name: "kopje", unit: "kop", conversion: 1 },
{ name: "kopjes", unit: "kop", conversion: 1 },
{ name: "el", unit: "el", conversion: 1 },
{ name: "eetlepel", unit: "el", conversion: 1 },
{ name: "eetlepels", unit: "el", conversion: 1 },
{ name: "tl", unit: "tl", conversion: 1 },
{ name: "theelepel", unit: "tl", conversion: 1 },
{ name: "theelepels", unit: "tl", conversion: 1 },
{ name: "stuk", unit: "stuk", conversion: 1 },
{ name: "stuks", unit: "stuk", conversion: 1 },
{ name: "hele", unit: "hele", conversion: 1 },
{ name: "halve", unit: "hele", conversion: 0.5 },
{ name: "paar", unit: "paar", conversion: 1 },
{ name: "teen", unit: "teen", conversion: 1 },
{ name: "tenen", unit: "teen", conversion: 1 },
{ name: "teentje", unit: "teen", conversion: 1 },
{ name: "teentjes", unit: "teen", conversion: 1 },
{ name: "stengel", unit: "stengel", conversion: 1 },
{ name: "stengels", unit: "stengel", conversion: 1 }
],
temperature: ["c", "f", "graden", "celsius", "fahrenheit", "fahrenheit"],
time: ["m", "min", "minuut", "minuten", "u", "uur", "uren", "s", "seconde", "seconden", "secondes"]
}
}
},
created: function() {
// Declare private variables
this.ingredientRegex = /\b([\d\,\.]+)\s(gram|paar|stuks|kilo|liter|tenen|teentjes|stengel|stengels|el|eetlepel|l|k|g)\s([\w\-\'\’\`]+)/gi;
this.temperatureRegex = /\b(\d+|hoog|laag|normaal|klein|groot)\s(vuur|vermogen|fahrenheit|graden celsius|graden|celsius)\b/gi;
this.timeRegex = /\b(([\d\,\.\-]| tot )+)\s(min|minuten|minuut|uren|uur|seconde|seconden|secondes)\b/gi;
this.ingredientRegex = new RegExp(`\\b([\\d\\,\\.]+)\\s(${this.settings.unitofmeasure.map(unit => unit.name).join("|")})\\s([\\w\\-\\'\\’\\\`]+)`, "gi");
this.temperatureRegex = new RegExp(`\\b(([\\d])+)\\s(${this.settings.temperature.join("|")})\\b`, "gi");
this.timeRegex = new RegExp(`\\b(([\\d\\,\\.\\-])+)\\s(${this.settings.time.join("|")})\\b`, "gi");
},
mounted: function() {

Expand All @@ -76,8 +117,8 @@ Vue.component('recipe', {
// Parse quantity, unit, and product from ingredient
var match = ingredient.match(new RegExp(this.ingredientRegex, "i"));
return {
quantity: parseFloat(match[1].replace(",", ".")),
unit: match[2],
quantity: parseFloat(match[1].replace(",", ".")) * this.settings.unitofmeasure.find(unit => unit.name == match[2]).conversion,
unit: this.settings.unitofmeasure.find(unit => unit.name == match[2]).unit,
product: match[3]
};
}).reduce((all, ingredient) => {
Expand Down Expand Up @@ -109,7 +150,7 @@ Vue.component('recipe', {
e.target.focus();
}
// Store output
this.outputText = this.strip(this.formattedText);
this.outputText = this.strip(e.target.innerHTML);
},
format: function(html) {
// Remove current formatting
Expand All @@ -126,7 +167,7 @@ Vue.component('recipe', {
return html;
},
strip: function(html) {
html = html.replace(/<(div|br)(.*?)>/gi, "\n");
html = html.replace(/<(div|br)(.*?)>/gi, "<li>");
html = html.replace(/<li>/gi, "\n* ");
html = html.replace(/<(.*?)>/gi, "");
//html = html.replace(/&nbsp;/gi, " ");
Expand Down
10 changes: 5 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,14 @@
<recipe text="
* Wel de 150 gram noedels ca. 5 min. in koud water en nog eens 70 gram noedels in warm water, en laat de rest van de 10 kilo noedels ongebruikt. Breng een pan met water aan de kook en kook de noedels 1 min. Giet af en spoel met koud stromend water. Knip of snijd de slierten 2 à 3 keer en leg in een grote kom.
* Snijd ondertussen de 4 stuks trostomaten in parten, halveer de 2 stuks sjalotten en snijd in de lengte in repen. Snijd de 4 stengels bleekselderij in schuine repen van een ½ cm dik. Snijd de blaadjes van de selderij grof. Schep alles bij de noedels. Haal de 20 g korianderblaadjes los van de steeltjes, snijd grof en houd apart. Snijd de stelen van de koriander fijn.
Ga nu even lekker iets anders doen
* Ga nu even lekker iets anders doen
* Verwijder de steelaanzet van de 4 stuks rode-pepers en snijd het vruchtvlees grof. Halveer de 3 stuks limoenen en pers de vruchten uit. Doe de stelen van de koriander, de pepers en 2 tenen knoflook in de vijzel en stamp tot een pasta. Voeg de 1 el kokosbloesemsuiker toe en stamp fijn. Voeg de vissaus en 6 el limoensap (per 4 personen) toe en meng tot een dressing. Zet apart tot gebruik.
* Breng een pan met water aan de kook en kook de 225 gram garnalen 2 min. op laag vuur. Neem met een schuimspaan eruit en laat uitlekken. Giet het kokende water uit de pan tot je een laag water van 2 cm overhoudt. Verwijder het vel van de 2 stuks varkensbraadworsten. Snijd het worstvlees in kleine stukken. Kook het vlees 3-4 min. Breek het worstvlees met een houten lepel of pureestamper tot het verkruimeld is. Rooster de 50 g ongezouten-pinda’s.
Je bent bijna klaar, tada...
* Je bent bijna klaar, tada...
* Haal het vlees met een schuimspaan uit het water, laat uitlekken en schep samen met de garnalen in de kom met de noedels en groenten. Meng de dressing en de helft van de koriander erdoor. Schep de salade op een serveerbord en garneer met de pinda’s en de rest van de koriander.
Dat was het
Nog maar een klein stukje
Ha, bijna klaar" />
* Dat was het
* Nog maar een klein stukje
* Ha, bijna klaar" />
</main>

<main v-show="page=='shopping'">
Expand Down

0 comments on commit 22b0abe

Please sign in to comment.