# mjeya3/2026-09-24-bath architecture

> Architecture diagram of the GitHub repository mjeya3/2026-09-24-bath, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mjeya3/2026-09-24-bath
- Repository: https://github.com/mjeya3/2026-09-24-bath

## Overview

This repository is a Jekyll template for building Carpentries workshop websites. The main workflow is to customize workshop metadata and site settings, select curriculum content and schedules, then render and publish the site through GitHub Pages. It also provides participant setup guidance and a workshop-metadata checker. The README documents additional template capabilities; connections involving unsampled templates are limited to documented Jekyll rendering behavior.

Main entry points: [`_includes`](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes) (Shared includes), [`bin/workshop_check.py`](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/workshop_check.py) (Metadata checker), [`index.md`](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/index.md) (Workshop metadata), [`_config.yml`](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/_config.yml) (Site configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["Workshop authoring"]
  node_metadata["Workshop metadata<br/>[index.md]"]
  node_config["Site configuration<br/>[_config.yml]"]
end

subgraph group_site["Site rendering"]
  node_layouts["Page layouts"]
  node_includes["Shared includes"]
  node_assets["Site assets"]
  node_jekyll{{"Jekyll renderer"}}
end

subgraph group_content["Workshop content"]
  node_curriculum["Curriculum content"]
  node_schedule["Workshop schedules"]
  node_setup["Setup instructions"]
  node_extras["Customization guidance"]
end

subgraph group_validation["Workshop checks"]
  node_checker["Metadata checker<br/>[workshop_check.py]"]
  node_util["Parsing utilities<br/>[util.py]"]
  node_reporter["Validation reporter<br/>[reporter.py]"]
end

node_organizer(("Workshop organizer"))
node_pages(("GitHub Pages"))
node_website["Workshop website"]

node_organizer -->|"edits metadata"| node_metadata
node_organizer -->|"customizes settings"| node_config
node_organizer -->|"edits schedule"| node_schedule
node_organizer -->|"consults guidance"| node_extras
node_metadata -->|"provides page data"| node_jekyll
node_config -->|"configures render"| node_jekyll
node_jekyll -->|"renders pages"| node_layouts
node_layouts -->|"uses includes"| node_includes
node_includes -->|"includes curriculum"| node_curriculum
node_includes -->|"includes schedules"| node_schedule
node_includes -->|"includes instructions"| node_setup
node_jekyll -->|"uses assets"| node_assets
node_jekyll -->|"generates site"| node_website
node_pages -->|"publishes site"| node_website
node_organizer -.->|"runs checks"| node_checker
node_checker -->|"loads metadata"| node_util
node_checker -->|"records results"| node_reporter

click node_metadata "https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/index.md"
click node_config "https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/_config.yml"
click node_layouts "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_layouts"
click node_includes "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes"
click node_assets "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/assets"
click node_curriculum "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes"
click node_schedule "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes"
click node_setup "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes/install_instructions"
click node_extras "https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_extras"
click node_checker "https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/workshop_check.py"
click node_util "https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/util.py"
click node_reporter "https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/reporter.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_metadata,node_config toneBlue
class node_layouts,node_includes,node_assets,node_jekyll toneAmber
class node_curriculum,node_schedule,node_setup,node_extras toneMint
class node_checker,node_util,node_reporter toneRose
class node_organizer,node_pages,node_website toneIndigo
```

## Components

### Workshop authoring

- [Workshop metadata](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/index.md): `index.md`
- [Site configuration](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/_config.yml): `_config.yml`

### Site rendering

- [Page layouts](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_layouts): `_layouts`
- [Shared includes](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes): `_includes`
- [Site assets](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/assets): `assets`
- **Jekyll renderer**

### Workshop content

- [Curriculum content](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes): `_includes`
- [Workshop schedules](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes): `_includes`
- [Setup instructions](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_includes/install_instructions): `_includes/install_instructions`
- [Customization guidance](https://github.com/mjeya3/2026-09-24-bath/tree/gh-pages/_extras): `_extras`

### Workshop checks

- [Metadata checker](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/workshop_check.py): `bin/workshop_check.py`
- [Parsing utilities](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/util.py): `bin/util.py`
- [Validation reporter](https://github.com/mjeya3/2026-09-24-bath/blob/gh-pages/bin/reporter.py): `bin/reporter.py`

### Other components

- **Workshop organizer**
- **GitHub Pages**
- **Workshop website**

## Connections

- Workshop organizer → Workshop metadata: edits metadata
- Workshop organizer → Site configuration: customizes settings
- Workshop organizer → Workshop schedules: edits schedule
- Workshop organizer → Customization guidance: consults guidance
- Workshop metadata → Jekyll renderer: provides page data
- Site configuration → Jekyll renderer: configures render
- Jekyll renderer → Page layouts: renders pages
- Page layouts → Shared includes: uses includes
- Shared includes → Curriculum content: includes curriculum
- Shared includes → Workshop schedules: includes schedules
- Shared includes → Setup instructions: includes instructions
- Jekyll renderer → Site assets: uses assets
- Jekyll renderer → Workshop website: generates site
- GitHub Pages → Workshop website: publishes site
- Workshop organizer → Metadata checker: runs checks
- Metadata checker → Parsing utilities: loads metadata
- Metadata checker → Validation reporter: records results
