Jekyll site for Tlaquepaque Arts & Shopping Village in Sedona, AZ — showcasing shops, galleries, dining, events, and wedding services.
- Ruby + Bundler
- Node.js (for image optimization, if applicable)
bundle install
bundle exec jekyll serve| Directory | Description |
|---|---|
_shops/ |
Retail shop pages (31) |
_galleries/ |
Art gallery pages (15) |
_foods/ |
Dining & food pages (9) |
_events/ |
Event pages |
_weddings/ |
Wedding venue/service pages |
_layouts/ |
Page templates |
_data/ |
Site config, form settings |
assets/ |
CSS, JS, images |
Each vendor is a Markdown file with front matter (title, subtitle, date, slug, hours, etc.).
Images live in assets/images/ as .webp at 480/960/1440px sizes.
Events live in _events/ (Markdown + YAML front matter), and are shown in:
- Main event cards block on
events/index(yearly events) - Monthly calendar (
_includes/calendar.html)
Common fields:
title,slug,starts_at,location,subtitleimage(optional)ends_at- for
single,weekly,monthly,yearly: optional, used as the end time for the event instance (usually same date asstarts_at, different time) - for
range: required, because it defines the final day/time of the date span
- for
schedule_type(required):single,range,weekly,monthly,yearly
Recurrence fields:
recurs_until(required forweeklyandmonthly, optional for others)recurrence_weekdays(required forweeklyandmonthly)- format:
[mon, thu] - supported values:
sun,mon,tue,wed,thu,fri,sat
- format:
-
singleOne event instance atstarts_at. -
rangeCreates one card per day fromstarts_atthroughends_at(inclusive), preserving time-of-day. -
weeklyRepeats onrecurrence_weekdaysevery week fromstarts_atuntilrecurs_until. -
monthlyRepeats on the first matching weekday(s) of each month (based onrecurrence_weekdays) untilrecurs_until. -
yearlyRepeats on the same month/day/time each year. Weekday fields are ignored for yearly logic.
Single-day event:
starts_at: '2025-12-14 17:00:00'
ends_at: '2025-12-14 21:00:00'
schedule_type: singleDate range event (daily cards generated):
starts_at: '2025-11-29 10:00:00'
ends_at: '2025-12-05 17:00:00'
schedule_type: rangeWeekly recurring event:
starts_at: '2025-11-01 11:00:00'
ends_at: '2025-11-01 17:00:00'
recurs_until: '2026-12-31 23:59:59'
recurrence_weekdays: [mon, thu, fri]
schedule_type: weeklyMonthly recurring event (first matching weekdays):
starts_at: '2025-11-01 11:00:00'
ends_at: '2025-11-01 17:00:00'
recurs_until: '2026-12-31 23:59:59'
recurrence_weekdays: [sat]
schedule_type: monthlyYearly event:
starts_at: '2025-11-02 10:00:00'
ends_at: '2025-11-02 16:00:00'
schedule_type: yearly- Source content stays in
_events/*.md(YAML front matter), not JSON files in the repo. _includes/calendar.htmlserializes event front matter into a JSON payload in the page (calendarEventsDatascript tag).assets/js/calendar.jsreads that payload, generates occurrences, sorts by day, and renders cards.- Month filter options are generated in JS from occurrences and default to current month when available.
- Use
weeklyfor repeat-on-weekdays patterns. - Use
monthlyonly when you want the first matching weekday(s) each month. - Use
yearlyfor same date each year (no weekday setup needed). - If
recurs_untilis blank on a recurring type, that event will not generate recurrence instances.
- Jekyll ~4.3
jekyll-seo-tag,jekyll-sitemap- Vanilla JS (search, calendar, hours, contact form)
- Custom CSS with CSS variables (no framework)
The site uses Sveltia CMS, a Git-based headless CMS.
Access: https://<your-domain>/admin/
Log in with GitHub credentials. Only users with write access to the activebridge/tlaq repository can make changes. All edits are committed directly to main and trigger an automatic build.
| Collection | Folder | Description |
|---|---|---|
| Shops | _shops/ |
Retail shop pages |
| Food & Dining | _foods/ |
Dining pages |
| Galleries | _galleries/ |
Art gallery pages |
| Events | _events/ |
Event pages with scheduling |
| Weddings | _weddings/ |
Wedding venue/service pages |
| Landing Sections | _landing/ |
Homepage section content (banner, calendar, what's new, etc.) |
| Pages | pages/ |
Static HTML pages (About, Hours, History, etc.) |
- Homepage — Navigation structure and site settings (
index.md) - Site Configuration — Global settings (
_data/site.yml): app name, description, footer, directions/weather links - Default Store Hours — Weekly hour templates (
_data/store/hours_defaults.yml)
Images are uploaded through the CMS to assets/images/ and referenced automatically.
Hosted on GitHub Pages via the built-in Jekyll deployment.
Push to main to trigger an automatic build and deploy.
The site is live at: https://activebridge.github.io/tlaq/