# caltech-ipac/irsa-tutorials architecture

> Architecture diagram of the GitHub repository caltech-ipac/irsa-tutorials, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/caltech-ipac/irsa-tutorials
- Repository: https://github.com/caltech-ipac/irsa-tutorials

## Overview

This repository is primarily a collection of IRSA tutorials in MyST Markdown, rather than a standalone application. Its only sampled runtime component is a MyST plugin that turns a notebook-gallery directive into rendered card-grid content, using metadata files and paths supplied by the directive. The available source excerpts support that plugin workflow; tutorial capabilities are documented by the file tree, but no tutorial contents were sampled, so their internal data flows are not represented.

Main entry points: [`plugins/src/notebook-gallery.mjs`](https://github.com/caltech-ipac/irsa-tutorials/blob/main/plugins/src/notebook-gallery.mjs) (Gallery directive), [`tutorials`](https://github.com/caltech-ipac/irsa-tutorials/tree/main/tutorials) (Tutorial collection), [`notebook_metadata.yml`](https://github.com/caltech-ipac/irsa-tutorials/blob/main/notebook_metadata.yml) (Gallery metadata)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_tutorials["IRSA Tutorials"]
  node_tutorials["Tutorial collection"]
end

subgraph group_plugin["Gallery Plugin"]
  node_gallery["Gallery directive"]
  node_metadata["Gallery metadata"]
  node_cards["Card grid output"]
end

node_reader(("Tutorial reader"))
node_myst["MyST parser"]

node_reader -->|"reads tutorials"| node_tutorials
node_gallery -->|"loads metadata"| node_metadata
node_gallery -->|"parses markup"| node_myst
node_gallery -->|"returns nodes"| node_cards

click node_tutorials "https://github.com/caltech-ipac/irsa-tutorials/tree/main/tutorials"
click node_gallery "https://github.com/caltech-ipac/irsa-tutorials/blob/main/plugins/src/notebook-gallery.mjs"
click node_metadata "https://github.com/caltech-ipac/irsa-tutorials/blob/main/notebook_metadata.yml"
click node_cards "https://github.com/caltech-ipac/irsa-tutorials/blob/main/plugins/src/notebook-gallery.mjs"

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_tutorials toneBlue
class node_gallery,node_metadata,node_cards toneAmber
class node_reader,node_myst toneIndigo
```

## Components

### IRSA Tutorials

- [Tutorial collection](https://github.com/caltech-ipac/irsa-tutorials/tree/main/tutorials): `tutorials`

### Gallery Plugin

- [Gallery directive](https://github.com/caltech-ipac/irsa-tutorials/blob/main/plugins/src/notebook-gallery.mjs): `plugins/src/notebook-gallery.mjs`
- [Gallery metadata](https://github.com/caltech-ipac/irsa-tutorials/blob/main/notebook_metadata.yml): `notebook_metadata.yml`
- [Card grid output](https://github.com/caltech-ipac/irsa-tutorials/blob/main/plugins/src/notebook-gallery.mjs): `plugins/src/notebook-gallery.mjs`

### Other components

- **Tutorial reader**
- **MyST parser**

## Connections

- Tutorial reader → Tutorial collection: reads tutorials (evidence: `README.md`)
- Gallery directive → Gallery metadata: loads metadata (evidence: `plugins/src/notebook-gallery.mjs`)
- Gallery directive → MyST parser: parses markup (evidence: `plugins/src/notebook-gallery.mjs`)
- Gallery directive → Card grid output: returns nodes (evidence: `plugins/src/notebook-gallery.mjs`)
