A SvelteKit-based menu generation tool, designed to easily visualize weekly sandwich menus, and generate email text.
- Menu Management: Configure daily menus with support for two slots per day (Upper/Lower).
- Sandwich Library: Pick from a predefined list of sandwiches (
mealList.json). - Visualizations: Toggle between Vertical and Horizontal menu layouts.
- Mail Generator: Automatic preview of the weekly menu email.
- Command Palette: Fully keyboard-driven interface to manage the menu quickly.
- Export: Screenshots of the menu for distribution.
The application is controlled via a command palette. Type commands to switch views or modify the menu.
Switch between different display modes.
| Command | Alias | Description |
|---|---|---|
view-vertical |
view-v |
Switch to the vertical list view of the menu. |
view-horizontal |
view-h |
Switch to the horizontal card view of the menu. |
view-mail |
view-m |
Preview the generated email for the current menu. |
| Command | Alias | Description |
|---|---|---|
screenshot |
shot |
Takes a screenshot of the current menu view (Vertical or Horizontal) and downloads it as a PNG. |
copymail |
cp |
Generates and copies the email text to your clipboard. |
Commands follow the syntax:
[day]-[zone]-[action] [value]
- [day]:
mon,tue,wed,thu,fri,pub(or full names mostly supported). - [zone]:
u: Upper slot (First meal).l: Lower slot (Second meal).
- [action]:
s: Set Sandwich (Matches against available sandwiches).t: Set Text (Free text).clear: Clear the slot (Aliases:empty,reset).
| Action | Command Syntax | Example | Note |
|---|---|---|---|
| Add Sandwich | [day]-[zone]-s [name] |
mon-u-s Alpin |
Searches mealList.json for "Alpin". |
| Add Text | [day]-[zone]-t [text] |
fri-l-t Special Salad |
Sets custom text description. |
| Clear Slot | [day]-[zone]-clear |
wed-u-clear |
Clears the Wednesday upper slot (and lower slot if it exists). |
Note: You cannot set the Lower (
l) zone if the Upper (u) zone is empty.
Built with SvelteKit and powered by sv. This project uses Bun as the package manager and runtime.
bun installStart a development server:
bun run dev
# or start the server and open the app in a new browser tab
bun run dev -- --openTo create a production version of your app:
bun run buildYou can preview the production build with bun run preview.
The project includes a Dockerfile optimized for Bun.
- Build the image:
docker build -t tnbarrefact .- Run the container:
docker run -p 3000:3000 tnbarrefactThe application will be accessible at http://localhost:3000.