Init repo and add all files
This commit is contained in:
commit
b4b35d238d
8
README.md
Normal file
8
README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Try not to starve!
|
||||
A generator for simple food recipes if you havn't any idea what to eat.
|
||||
|
||||
It's just static html, css and js. You can serve it with any webserver and try it out. eg:
|
||||
|
||||
```
|
||||
python3 -m http.server
|
||||
```
|
7
bootstrap.min.css
vendored
Normal file
7
bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
bootstrap.min.js
vendored
Normal file
7
bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
34
index.html
Normal file
34
index.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<link rel="stylesheet" href="bootstrap.min.css">
|
||||
<script src="jquery-3.4.1.min.js"></script>
|
||||
<script src="bootstrap.min.js"></script>
|
||||
<script src="script.js"></script>
|
||||
|
||||
<title>Try not to starve!</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container text-center" style="margin-top: 30px; margin-bottom: 30px;">
|
||||
<div class="row">
|
||||
<div class="offset-md-3 col-md-6">
|
||||
<h1>Try not to starve!</h1>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div id="recipe"></div>
|
||||
</div>
|
||||
<div class="card-footer text-muted">
|
||||
<button class="btn btn-block btn-primary btn-lg" onclick="generateRecipe();">Neu</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-danger" role="alert" id="error" style="display: none;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
2
jquery-3.4.1.min.js
vendored
Normal file
2
jquery-3.4.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
99
recipe.json
Normal file
99
recipe.json
Normal file
@ -0,0 +1,99 @@
|
||||
{
|
||||
"": [
|
||||
"$nudeln und $nudelsosse",
|
||||
"Kartoffeln und $kartoffelsosse",
|
||||
"Kartoffeln mit $beilage",
|
||||
"Kartoffelpuffer und $kartoffelpuffersosse",
|
||||
"Reis und $reissosse",
|
||||
"$muesli",
|
||||
"$muesli und $mueslisosse"
|
||||
],
|
||||
"nudeln": [
|
||||
"Nudeln",
|
||||
"Spaghetti",
|
||||
"Fusili",
|
||||
"Bandnudeln"
|
||||
],
|
||||
"nudelsosse": [
|
||||
"$tomatensosse"
|
||||
],
|
||||
"tomatensosse": [
|
||||
"Tomatensoße mit $gemuese",
|
||||
"Tomatensoße mit $gemuese und $gewuerz"
|
||||
],
|
||||
"kaesesosse":[
|
||||
"$kaese mit $gewuerz"
|
||||
],
|
||||
"kaese": [
|
||||
"Gouda",
|
||||
"Gorgonzola",
|
||||
"Mozzarella"
|
||||
],
|
||||
"kartoffelsosse": [
|
||||
"$sosse-herzhaft"
|
||||
],
|
||||
"beilage": [
|
||||
"$gemuese",
|
||||
"$kaese"
|
||||
],
|
||||
"kartoffelpuffersosse": [
|
||||
"$sosse"
|
||||
],
|
||||
"reissosse": [
|
||||
"$sosse-herzhaft"
|
||||
],
|
||||
"sosse": [
|
||||
"$sosse-herzhaft",
|
||||
"$sosse-suess"
|
||||
],
|
||||
"sosse-herzhaft": [
|
||||
"$tomatensosse",
|
||||
"Quark"
|
||||
],
|
||||
"sosse-suess": [
|
||||
"$sosse-suess und $sosse-suess",
|
||||
"Apfelmus",
|
||||
"Zimt",
|
||||
"Zucker",
|
||||
"Kirschen"
|
||||
],
|
||||
"gewuerz": [
|
||||
"$gewuerz und $gewuerz",
|
||||
"Pfeffer",
|
||||
"Paprikapulver",
|
||||
"Kümmel",
|
||||
"Zwiebeln"
|
||||
],
|
||||
"muesli": [
|
||||
"$muesli mit $obst",
|
||||
"Müsli",
|
||||
"Cornflakes",
|
||||
"Haferflocken",
|
||||
"Haferflakes"
|
||||
],
|
||||
"mueslisosse": [
|
||||
"Milch",
|
||||
"$joghurt",
|
||||
"Saft"
|
||||
],
|
||||
"joghurt": [
|
||||
"Joghurt",
|
||||
"$gemuese Johurt"
|
||||
],
|
||||
"gemuese": [
|
||||
"$gemuese und $gemuese",
|
||||
"Gurke",
|
||||
"Paprika",
|
||||
"Tomate",
|
||||
"Frühlinszwiebeln",
|
||||
"Lauch",
|
||||
"Spinat"
|
||||
],
|
||||
"obst": [
|
||||
"$obst und $obst",
|
||||
"Apfel",
|
||||
"Kirschen",
|
||||
"Banane",
|
||||
"Orangen"
|
||||
]
|
||||
}
|
64
script.js
Normal file
64
script.js
Normal file
@ -0,0 +1,64 @@
|
||||
var recipe = {};
|
||||
|
||||
$(window).on("load", () => {
|
||||
$.getJSON("recipe.json", (json) => {
|
||||
console.log(json);
|
||||
recipe = json;
|
||||
}).done(() => {
|
||||
clearError();
|
||||
generateRecipe();
|
||||
});
|
||||
//;
|
||||
});
|
||||
|
||||
function generateRecipe() {
|
||||
var block = generateBlock("");
|
||||
if(block !== null) {
|
||||
$("#recipe").html(block);
|
||||
clearError();
|
||||
}
|
||||
else {
|
||||
showError("Beim generieren trat ein Fehler auf.");
|
||||
}
|
||||
}
|
||||
|
||||
function generateBlock(key) {
|
||||
if(key in recipe) {
|
||||
var error = false;
|
||||
// choose a random block out of our recipe
|
||||
var block = recipe[key][Math.floor(Math.random() * recipe[key].length)];
|
||||
block = block.split(" ");
|
||||
// scan all words for vars to replace
|
||||
block.forEach((item, index) => {
|
||||
if(item.startsWith("$")) {
|
||||
// generate a new block to replace the var
|
||||
var newBlock = generateBlock(item.substr(1));
|
||||
// replace or brake in case of error
|
||||
if(newBlock !== null) {
|
||||
block[index] = newBlock;
|
||||
}
|
||||
else {
|
||||
error = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
// return or break
|
||||
if(!error) {
|
||||
return block.join(" ");
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function showError(msg) {
|
||||
$("#error").html(msg).fadeIn();
|
||||
}
|
||||
|
||||
function clearError() {
|
||||
$("#error").fadeOut().html("");
|
||||
}
|
Loading…
Reference in New Issue
Block a user