Extracted the restaurant data from the HTML file and put it into a stand alone JSON file. Updated ReadMe with information on how to pull updated information for future events.
This commit is contained in:
6798
2026-restaurants.json
Normal file
6798
2026-restaurants.json
Normal file
File diff suppressed because it is too large
Load Diff
17
README.md
17
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Inlander Restaurant Week Picker
|
# Inlander Restaurant Week Picker
|
||||||
|
|
||||||
A single-file web app for browsing, marking favorites, and randomly selecting a restaurant during [Inlander Restaurant Week](https://inlanderrestaurantweek.com/).
|
A web app for browsing, marking favorites, and randomly selecting a restaurant during [Inlander Restaurant Week](https://inlanderrestaurantweek.com/).
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
@@ -19,11 +19,11 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
|
|||||||
- **Clear Filters** — one-click button to reset all search and filter fields back to their defaults
|
- **Clear Filters** — one-click button to reset all search and filter fields back to their defaults
|
||||||
- **Reset Selected** — clears all saved picks (with a confirmation prompt) so you can start fresh
|
- **Reset Selected** — clears all saved picks (with a confirmation prompt) so you can start fresh
|
||||||
- **Mobile-friendly** — responsive single-panel layout on small screens; the list and detail views swap in place, with a Back button to return to the list
|
- **Mobile-friendly** — responsive single-panel layout on small screens; the list and detail views swap in place, with a Back button to return to the list
|
||||||
- **No dependencies** — pure HTML, CSS, and vanilla JavaScript; open the file directly in any browser
|
- **No dependencies** — pure HTML, CSS, and vanilla JavaScript; requires a local web server (see Usage)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
1. Open `restaurant-picker.html` in a web browser (no server required).
|
1. Serve the folder from a web server and open `restaurant-picker.html` in a browser. (The app fetches `2026-restaurants.json` at runtime, so it cannot be opened directly as a local `file://` URL — a server is required. A simple option is the VS Code Live Server extension, or `npx serve .` in the project folder.)
|
||||||
2. Browse the restaurant list or use the toolbar filters to narrow choices.
|
2. Browse the restaurant list or use the toolbar filters to narrow choices.
|
||||||
3. Use the **First Course**, **Second Course**, or **Third Course** buttons to browse all dishes for a given course and jump to any restaurant that interests you.
|
3. Use the **First Course**, **Second Course**, or **Third Course** buttons to browse all dishes for a given course and jump to any restaurant that interests you.
|
||||||
4. Check the **You** and **Wife** boxes on any restaurant you're each interested in.
|
4. Check the **You** and **Wife** boxes on any restaurant you're each interested in.
|
||||||
@@ -44,16 +44,19 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
|
|||||||
## File Structure
|
## File Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
restaurant-picker.html # The entire app — HTML, CSS, and JS in one file
|
restaurant-picker.html # App shell — HTML, CSS, and JS logic
|
||||||
|
2026-restaurants.json # Restaurant data for the 2026 event (loaded at runtime via fetch)
|
||||||
LICENSE
|
LICENSE
|
||||||
README.md
|
README.md
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Each year, create a new `YYYY-restaurants.json` and update the filename in the `fetch()` call near the bottom of `restaurant-picker.html`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Data Entry Guide
|
## Data Entry Guide
|
||||||
|
|
||||||
Each year's restaurant data is stored as a JavaScript array (`const RESTAURANTS = [...]`) inline in `restaurant-picker.html`. The source data comes from the [IRW restaurant listing pages](https://inlanderrestaurantweek.com/restaurants/). This section covers the data schema and common pitfalls to avoid when entering or updating restaurant records.
|
Each year's restaurant data is stored as a JSON file (`YYYY-restaurants.json`) loaded by `restaurant-picker.html` at runtime. The source data comes from the [IRW restaurant listing pages](https://inlanderrestaurantweek.com/restaurants/). This section covers the data schema and common pitfalls to avoid when entering or updating restaurant records.
|
||||||
|
|
||||||
### Restaurant Object Schema
|
### Restaurant Object Schema
|
||||||
|
|
||||||
@@ -151,6 +154,6 @@ Signs that an entry has this problem:
|
|||||||
|
|
||||||
### Special Characters
|
### Special Characters
|
||||||
|
|
||||||
The data lives inside a JavaScript string, so be careful with quotation marks inside descriptions. Use a **curly/smart right double-quote** (`"`, U+201D) for inch marks (e.g. `7" pizza`) rather than a straight ASCII `"`, which would break the JS string delimiters. Em dashes (`–`) and curly apostrophes (`'`) from the source website copy fine as-is.
|
The data lives in a JSON file, so be careful with quotation marks inside descriptions. Use a **curly/smart right double-quote** (`"`, U+201D) for inch marks (e.g. `7" pizza`) rather than a straight ASCII `"`, which would break the JSON string. Em dashes (`–`) and curly apostrophes (`'`) from the source website copy fine as-is.
|
||||||
|
|
||||||
**Critical: field delimiters must be straight ASCII double quotes.** Some editors and AI tools auto-correct straight `"` to curly `"` / `"` (U+201C / U+201D). If curly quotes end up wrapping property names or values (e.g. `"name"` instead of `"name"`), JavaScript will fail to parse the entire `RESTAURANTS` array and no restaurants will appear in the app. Always verify that the structural quotes in the data use the straight ASCII `"` character (U+0022).
|
**Critical: JSON structural quotes must be straight ASCII double quotes.** Some editors and AI tools auto-correct straight `"` to curly `"` / `"` (U+201C / U+201D). If curly quotes end up wrapping property names or values (e.g. `"name"` instead of `"name"`), the JSON file will fail to parse and no restaurants will appear in the app. Always verify that the structural quotes in the data use the straight ASCII `"` character (U+0022).
|
||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user