Compare commits
No commits in common. "94c46143a9ffe180f551b0f70135190250974cac" and "75e97b9d4a56ebe20ef64ccb4913af993dc92453" have entirely different histories.
94c46143a9
...
75e97b9d4a
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
*.html
|
|
||||||
18
Dockerfile
18
Dockerfile
@ -1,18 +0,0 @@
|
|||||||
FROM python:3.12
|
|
||||||
WORKDIR /usr/local/app
|
|
||||||
|
|
||||||
# Install the application dependencies
|
|
||||||
COPY requirements.txt ./
|
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
|
||||||
|
|
||||||
# Copy in the source code
|
|
||||||
COPY . .
|
|
||||||
EXPOSE 5000
|
|
||||||
|
|
||||||
# Setup an app user so the container doesn't run as the root user
|
|
||||||
RUN useradd app
|
|
||||||
USER app
|
|
||||||
|
|
||||||
CMD ["cd", "/usr/local/app"]
|
|
||||||
CMD "ls"
|
|
||||||
CMD ["flask", "--app", "build", "run", "--host=0.0.0.0"]]
|
|
||||||
48
build.py
48
build.py
@ -7,51 +7,29 @@ env = Environment(
|
|||||||
autoescape=select_autoescape()
|
autoescape=select_autoescape()
|
||||||
)
|
)
|
||||||
|
|
||||||
def generateMenu():
|
|
||||||
with open('menu.yaml', 'r') as file:
|
with open('menu.yaml', 'r') as file:
|
||||||
menu = yaml.safe_load(file)
|
menu = yaml.safe_load(file)
|
||||||
|
|
||||||
templateMenu = env.get_template("menu.html")
|
templateMenu = env.get_template("menu.html")
|
||||||
templateRecipes = env.get_template("recipes.html")
|
templateRecipes = env.get_template("recipes.html")
|
||||||
|
|
||||||
for bev, details in menu['menu'].items():
|
for bev in menu['menu']:
|
||||||
#print(bev)
|
#print(bev)
|
||||||
print(bev)
|
for name in bev:
|
||||||
#for ingredient in details['ingredients']:
|
print(name)
|
||||||
# print(f'<li>{ingredient[list(ingredient)[0]]} {list(ingredient)[0]}</li>')
|
for ingredient in bev[name]['ingredients']:
|
||||||
details['directions_html'] = markdown.markdown(details['directions'])
|
print(f'<li>{ingredient[list(ingredient)[0]]} {list(ingredient)[0]}</li>')
|
||||||
|
print(markdown.markdown(bev[name]['directions']))
|
||||||
|
bev[name]['directions_html'] = markdown.markdown(bev[name]['directions'])
|
||||||
|
|
||||||
menuHtml = templateMenu.render(bevs = menu['menu'])
|
|
||||||
recipesHtml = templateRecipes.render(bevs = menu['menu'])
|
|
||||||
return {'menuHtml': menuHtml, 'recipesHtml': recipesHtml}
|
|
||||||
|
|
||||||
if (__name__ == 'build'):
|
|
||||||
from flask import Flask
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
|
||||||
|
|
||||||
@app.route("/")
|
|
||||||
def serveMenu():
|
|
||||||
return generateMenu()['menuHtml']
|
|
||||||
@app.route("/recipes")
|
|
||||||
def serveRecipes():
|
|
||||||
return generateMenu()['recipesHtml']
|
|
||||||
|
|
||||||
elif (__name__ == '__main__'):
|
|
||||||
html = generateMenu()
|
|
||||||
with open('index.html', 'w') as file:
|
with open('index.html', 'w') as file:
|
||||||
file.write(html['menuHtml'])
|
file.write(templateMenu.render(bevs = menu['menu']))
|
||||||
|
|
||||||
with open('recipes.html', 'w') as file:
|
with open('recipes.html', 'w') as file:
|
||||||
file.write(html['recipesHtml'])
|
file.write(templateRecipes.render(bevs = menu['menu']))
|
||||||
|
|
||||||
|
print(menu['menu'])
|
||||||
|
|
||||||
|
|
||||||
print(generateMenu())
|
for ingredient in menu['out_of_stock']:
|
||||||
#print(menu)
|
print(ingredient)
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#for ingredient in menu['out_of_stock']:
|
|
||||||
# print(ingredient)
|
|
||||||
#
|
|
||||||
#print(__name__)
|
|
||||||
|
|||||||
183
index.html
Normal file
183
index.html
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<title>Cocktail Menu</title>
|
||||||
|
</head>
|
||||||
|
<body class="menu">
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<h1>Cocktails</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Old Fashioned</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Bourbon</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Maple syrup</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Boulevardier</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Bourbon</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Campari</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Sweet vermouth</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Black Manhattan</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Rye whiskey</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Amaro</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Orange bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>MonteNegroni</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Amaro Montenegro</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Sweet vermouth</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Sidecar</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Bourbon</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Cointreau</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Lemon juice</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Gin & Tonic</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Tonic water</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Gimlet</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Lime juice</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Simple syrup</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Bennet</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Lime juice</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Simple syrup</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
103
menu.yaml
103
menu.yaml
@ -1,122 +1,87 @@
|
|||||||
---
|
---
|
||||||
menu:
|
menu:
|
||||||
Old Fashioned:
|
- Old Fashioned:
|
||||||
base: Bourbon
|
base: Bourbon
|
||||||
category: Ancestrals
|
category: Ancestrals
|
||||||
ingredients:
|
ingredients:
|
||||||
Bourbon: 2 oz
|
- Bourbon: 2 oz
|
||||||
Maple syrup: 1tsp
|
- Maple syrup: 1tsp
|
||||||
Angostura bitters: 2 dashes
|
- Angostura bitters: 2 dashes
|
||||||
directions: |
|
directions: |
|
||||||
1. Stir with ice. Strain into rocks glass over large cube.
|
1. Stir with ice. Strain into rocks glass over large cube.
|
||||||
1. Garnish with orange twist.
|
1. Garnish with orange twist.
|
||||||
Boulevardier:
|
- Boulevardier:
|
||||||
base: Bourbon
|
base: Bourbon
|
||||||
category: Spirit-Forward
|
category: Spirit-Forward
|
||||||
ingredients:
|
ingredients:
|
||||||
Bourbon: 1.5 oz
|
- Bourbon: 1.5 oz
|
||||||
Campari: 1 oz
|
- Campari: 1 oz
|
||||||
Sweet vermouth: 1 oz
|
- Sweet vermouth: 1 oz
|
||||||
directions: |
|
directions: |
|
||||||
1. Stir with ice. Strain into rocks glass over large cube.
|
1. Stir with ice. Strain into rocks glass over large cube.
|
||||||
1. Garnish with orange twist.
|
1. Garnish with orange twist.
|
||||||
Manhattan:
|
- Black Manhattan:
|
||||||
base: Bourbon
|
|
||||||
category: Ancestrals
|
|
||||||
ingredients:
|
|
||||||
Bourbon: 1.5 oz
|
|
||||||
Sweet vermouth: 1 oz
|
|
||||||
Angostura bitters: 2 dashes
|
|
||||||
directions: |
|
|
||||||
1. Stir with ice.
|
|
||||||
2. Strain into chilled coupe.
|
|
||||||
3. Garnish with cherry or orange twist.
|
|
||||||
Black Manhattan:
|
|
||||||
base: Rye whiskey
|
base: Rye whiskey
|
||||||
category: Spirit-Forward
|
category: Spirit-Forward
|
||||||
ingredients:
|
ingredients:
|
||||||
Rye whiskey: 2 oz
|
- Rye whiskey: 2 oz
|
||||||
Amaro: 1 oz
|
- Amaro: 1 oz
|
||||||
Angostura bitters: 1 dash
|
- Angostura bitters: 1 dash
|
||||||
Orange bitters: 1 dash
|
- Orange bitters: 1 dash
|
||||||
directions: |
|
directions: |
|
||||||
1. Stir with ice. Strain into chilled coupe.
|
1. Stir with ice. Strain into chilled coupe.
|
||||||
1. Garnish with orange twist.
|
1. Garnish with orange twist.
|
||||||
MonteNegroni:
|
- MonteNegroni:
|
||||||
base: Amaro Montenegro & Gin
|
base: Amaro Montenegro & Gin
|
||||||
category:
|
category:
|
||||||
ingredients:
|
ingredients:
|
||||||
Amaro Montenegro: 1 1/3 oz
|
- Amaro Montenegro: 1 1/3 oz
|
||||||
Gin: 2/3 oz
|
- Gin: 2/3 oz
|
||||||
Sweet vermouth: 2/3 oz
|
- Sweet vermouth: 2/3 oz
|
||||||
Angostura bitters: 2 drops
|
- Angostura bitters: 2 drops
|
||||||
directions: |
|
directions: |
|
||||||
1. Stir with ice. Strain into rocks glass over large cube.
|
1. Stir with ice. Strain into rocks glass over large cube.
|
||||||
1. Garnish with orange twist.
|
1. Garnish with orange twist.
|
||||||
Sidecar:
|
- Sidecar:
|
||||||
base: Bourbon
|
base: Bourbon
|
||||||
category: Sours
|
category: Sours
|
||||||
ingredients:
|
ingredients:
|
||||||
Bourbon: 2 oz
|
- Bourbon: 2 oz
|
||||||
Cointreau: 1 oz
|
- Cointreau: 1 oz
|
||||||
Lemon juice: 0.5 oz
|
- Lemon juice: 0.5 oz
|
||||||
directions: |
|
directions: |
|
||||||
1. Shake with ice. Double strain into chilled coupe.
|
1. Shake with ice. Double strain into chilled coupe.
|
||||||
"Gin & Tonic":
|
- "Gin & Tonic":
|
||||||
base: Gin
|
base: Gin
|
||||||
category: Highballs
|
category: Highballs
|
||||||
ingredients:
|
ingredients:
|
||||||
Gin: 2 oz
|
- Gin: 2 oz
|
||||||
Tonic water: 4 oz
|
- Tonic water: 4 oz
|
||||||
directions: |
|
directions: |
|
||||||
1. Pour gin and tonic over ice in short glass.
|
1. Pour gin and tonic over ice in short glass.
|
||||||
1. Stir gently.
|
1. Stir gently.
|
||||||
1. Garnish with lime wheel.
|
1. Garnish with lime wheel.
|
||||||
Gimlet:
|
- Gimlet:
|
||||||
base: Gin
|
base: Gin
|
||||||
category: Sours
|
category: Sours
|
||||||
ingredients:
|
ingredients:
|
||||||
Gin: 2 oz
|
- Gin: 2 oz
|
||||||
Lime juice: 1 oz
|
- Lime juice: 1 oz
|
||||||
Simple syrup: 0.5 oz
|
- Simple syrup: 0.5 oz
|
||||||
directions: |
|
directions: |
|
||||||
1. Shake with ice.
|
1. Shake with ice.
|
||||||
1. Double strain into chilled coupe.
|
1. Double strain into chilled coupe.
|
||||||
Bennet:
|
- Bennet:
|
||||||
base: Gin
|
base: Gin
|
||||||
category: Sours
|
category: Sours
|
||||||
ingredients:
|
ingredients:
|
||||||
Gin: 2 oz
|
- Gin: 2 oz
|
||||||
Lime juice: 1 oz
|
- Lime juice: 1 oz
|
||||||
Simple syrup: 0.5 oz
|
- Simple syrup: 0.5 oz
|
||||||
Angostura bitters: 1 dash
|
- Angostura bitters: 1 dash
|
||||||
directions: |
|
directions: |
|
||||||
1. Shake with ice.
|
1. Shake with ice.
|
||||||
1. Double strain into chilled coupe.
|
1. Double strain into chilled coupe.
|
||||||
Garibaldi:
|
|
||||||
base: Campari
|
|
||||||
category: Highballs
|
|
||||||
ingredients:
|
|
||||||
Campari: 1.5 oz
|
|
||||||
Orange juice: 4.5 oz
|
|
||||||
directions: |
|
|
||||||
1. Blend orange juice and Campari until frothy.
|
|
||||||
1. Strain into ice-filled highball.
|
|
||||||
White Russian:
|
|
||||||
base: Vodka
|
|
||||||
category:
|
|
||||||
ingredients:
|
|
||||||
Vodka: 1.5 oz
|
|
||||||
Kahlua: 1 oz
|
|
||||||
Heavy cream: 1 oz
|
|
||||||
Instant coffee: 0.5 tsp
|
|
||||||
directions: |
|
|
||||||
1. Chill vodka
|
|
||||||
1. Add large cube to lowball glass
|
|
||||||
1. Sprinkle instant coffee powder over ice
|
|
||||||
1. Slowly pour vodka around ice
|
|
||||||
1. Slowly pour Kahlua around ice
|
|
||||||
1. Slowly pour cream over ice
|
|
||||||
|
|
||||||
out_of_stock:
|
out_of_stock:
|
||||||
- Rye whiskey
|
- Rye whiskey
|
||||||
|
|||||||
231
recipes.html
Normal file
231
recipes.html
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<title>Cocktail Menu</title>
|
||||||
|
</head>
|
||||||
|
<body class="recipes">
|
||||||
|
<main>
|
||||||
|
|
||||||
|
<h1>Recipes</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Old Fashioned</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 oz Bourbon</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1tsp Maple syrup</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 dashes Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Stir with ice. Strain into rocks glass over large cube.</li>
|
||||||
|
<li>Garnish with orange twist.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Boulevardier</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>1.5 oz Bourbon</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 oz Campari</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 oz Sweet vermouth</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Stir with ice. Strain into rocks glass over large cube.</li>
|
||||||
|
<li>Garnish with orange twist.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Black Manhattan</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 oz Rye whiskey</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 oz Amaro</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 dash Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 dash Orange bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Stir with ice. Strain into chilled coupe.</li>
|
||||||
|
<li>Garnish with orange twist.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>MonteNegroni</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 1/3 oz Amaro Montenegro</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>2/3 oz Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>2/3 oz Sweet vermouth</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 drops Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Stir with ice. Strain into rocks glass over large cube.</li>
|
||||||
|
<li>Garnish with orange twist.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Sidecar</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 oz Bourbon</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 oz Cointreau</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>0.5 oz Lemon juice</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Shake with ice. Double strain into chilled coupe.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Gin & Tonic</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 oz Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>4 oz Tonic water</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Pour gin and tonic over ice in short glass.</li>
|
||||||
|
<li>Stir gently.</li>
|
||||||
|
<li>Garnish with lime wheel.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Gimlet</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 oz Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 oz Lime juice</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>0.5 oz Simple syrup</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Shake with ice.</li>
|
||||||
|
<li>Double strain into chilled coupe.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Bennet</h2>
|
||||||
|
<ul>
|
||||||
|
|
||||||
|
|
||||||
|
<li>2 oz Gin</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 oz Lime juice</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>0.5 oz Simple syrup</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li>1 dash Angostura bitters</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Directions</h3>
|
||||||
|
<p><ol>
|
||||||
|
<li>Shake with ice.</li>
|
||||||
|
<li>Double strain into chilled coupe.</li>
|
||||||
|
</ol></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -1,11 +0,0 @@
|
|||||||
blinker==1.9.0
|
|
||||||
click==8.1.8
|
|
||||||
Flask==3.1.0
|
|
||||||
importlib_metadata==8.6.1
|
|
||||||
itsdangerous==2.2.0
|
|
||||||
Jinja2==3.1.5
|
|
||||||
Markdown==3.7
|
|
||||||
MarkupSafe==3.0.2
|
|
||||||
PyYAML==6.0.2
|
|
||||||
Werkzeug==3.1.3
|
|
||||||
zipp==3.21.0
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="static/style.css">
|
<link rel="stylesheet" href="style.css">
|
||||||
<title>{% block title %}{% endblock %}</title>
|
<title>{% block title %}{% endblock %}</title>
|
||||||
</head>
|
</head>
|
||||||
<body class="{% block bodyclass %}{% endblock %}">
|
<body class="{% block bodyclass %}{% endblock %}">
|
||||||
|
|||||||
@ -3,13 +3,17 @@
|
|||||||
{% block bodyclass %}menu{% endblock %}
|
{% block bodyclass %}menu{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% block header %}Cocktails{% endblock %}</h1>
|
<h1>{% block header %}Cocktails{% endblock %}</h1>
|
||||||
{% for name, details in bevs.items() %}
|
{% for bev in bevs %}
|
||||||
|
{% for name, details in bev.items() %}
|
||||||
<h2>{{ name }}</h2>
|
<h2>{{ name }}</h2>
|
||||||
<ul>
|
<ul>
|
||||||
{% for name, amount in details['ingredients'].items() %}
|
{% for ingredient in details['ingredients'] %}
|
||||||
|
{% for name, amount in ingredient.items() %}
|
||||||
<li>{% block amount scoped %}{% endblock %}{{ name }}</li>
|
<li>{% block amount scoped %}{% endblock %}{{ name }}</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% block directions scoped %}{% endblock %}
|
{% block directions scoped %}{% endblock %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user