# omp4j/doc architecture

> Architecture diagram of the GitHub repository omp4j/doc, 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/omp4j/doc
- Repository: https://github.com/omp4j/doc

## Overview

This repository is a generated Scaladoc API-reference site for omp4j, not the omp4j compiler itself. Its user-facing result is browsable package and API documentation, with navigation/filtering and interactive detail pages; SVG diagrams add inheritance visualization. The tree shows the generated reference pages, while sampled JavaScript confirms several UI behaviors. The README identifies Scaladoc as the generator, but the excerpts do not establish all page-loading relationships, so the graph avoids inferring those links.

Main entry points: [`index.html`](https://github.com/omp4j/doc/blob/master/index.html) (Reference entry pages), [`lib/index.js`](https://github.com/omp4j/doc/blob/master/lib/index.js) (Browse and filter), [`lib/diagrams.js`](https://github.com/omp4j/doc/blob/master/lib/diagrams.js) (Diagram interaction), [`lib/jquery.js`](https://github.com/omp4j/doc/blob/master/lib/jquery.js) (jQuery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_reference["API reference content"]
  node_api_pages["API pages"]
  node_package_indexes["Package indexes"]
  node_site_shell["Reference entry pages<br/>[index.html]"]
end

subgraph group_navigation["Reference navigation"]
  node_package_data["Package metadata<br/>[index.js]"]
  node_browse_ui["Browse and filter<br/>[index.js]"]
end

subgraph group_interaction["Page interactions"]
  node_page_controls["Member controls<br/>[template.js]"]
  node_diagram_ui["Diagram interaction<br/>[diagrams.js]"]
  node_scheduler["UI task scheduler<br/>[scheduler.js]"]
  node_diagram_styles["Diagram styles<br/>[diagrams.css]"]
end

subgraph group_libraries["Browser libraries"]
  node_tooltip_plugin["Tooltip plugin<br/>[tools.tooltip.js]"]
  node_jquery["jQuery<br/>[jquery.js]"]
  node_jquery_ui["jQuery UI<br/>[jquery-ui.js]"]
  node_layout_plugin["Layout plugin<br/>[jquery.layout.js]"]
  node_modernizr["SVG feature detection"]
end

node_reader(("Documentation reader"))

node_reader -->|"browses"| node_site_shell
node_site_shell -.->|"presents reference"| node_api_pages
node_site_shell -.->|"presents packages"| node_package_indexes
node_browse_ui -->|"queues tasks"| node_scheduler
node_browse_ui -.->|"uses metadata"| node_package_data
node_page_controls -->|"creates tooltips"| node_tooltip_plugin
node_diagram_ui -->|"checks SVG support"| node_modernizr
node_diagram_ui -->|"uses DOM helpers"| node_jquery
node_layout_plugin -->|"uses DOM helpers"| node_jquery

click node_api_pages "https://github.com/omp4j/doc/tree/master/org/omp4j"
click node_package_indexes "https://github.com/omp4j/doc/tree/master/index"
click node_site_shell "https://github.com/omp4j/doc/blob/master/index.html"
click node_package_data "https://github.com/omp4j/doc/blob/master/index.js"
click node_browse_ui "https://github.com/omp4j/doc/blob/master/lib/index.js"
click node_page_controls "https://github.com/omp4j/doc/blob/master/lib/template.js"
click node_diagram_ui "https://github.com/omp4j/doc/blob/master/lib/diagrams.js"
click node_scheduler "https://github.com/omp4j/doc/blob/master/lib/scheduler.js"
click node_tooltip_plugin "https://github.com/omp4j/doc/blob/master/lib/tools.tooltip.js"
click node_jquery "https://github.com/omp4j/doc/blob/master/lib/jquery.js"
click node_jquery_ui "https://github.com/omp4j/doc/blob/master/lib/jquery-ui.js"
click node_layout_plugin "https://github.com/omp4j/doc/blob/master/lib/jquery.layout.js"
click node_modernizr "https://github.com/omp4j/doc/blob/master/lib/modernizr.custom.js"
click node_diagram_styles "https://github.com/omp4j/doc/blob/master/lib/diagrams.css"

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_api_pages,node_package_indexes,node_site_shell toneBlue
class node_package_data,node_browse_ui toneAmber
class node_page_controls,node_diagram_ui,node_scheduler,node_diagram_styles toneMint
class node_tooltip_plugin,node_jquery,node_jquery_ui,node_layout_plugin,node_modernizr toneRose
class node_reader toneIndigo
```

## Components

### API reference content

- [API pages](https://github.com/omp4j/doc/tree/master/org/omp4j): `org/omp4j`
- [Package indexes](https://github.com/omp4j/doc/tree/master/index): `index`
- [Reference entry pages](https://github.com/omp4j/doc/blob/master/index.html): `index.html`

### Reference navigation

- [Package metadata](https://github.com/omp4j/doc/blob/master/index.js): `index.js`
- [Browse and filter](https://github.com/omp4j/doc/blob/master/lib/index.js): `lib/index.js`

### Page interactions

- [Member controls](https://github.com/omp4j/doc/blob/master/lib/template.js): `lib/template.js`
- [Diagram interaction](https://github.com/omp4j/doc/blob/master/lib/diagrams.js): `lib/diagrams.js`
- [UI task scheduler](https://github.com/omp4j/doc/blob/master/lib/scheduler.js): `lib/scheduler.js`
- [Diagram styles](https://github.com/omp4j/doc/blob/master/lib/diagrams.css): `lib/diagrams.css`

### Browser libraries

- [Tooltip plugin](https://github.com/omp4j/doc/blob/master/lib/tools.tooltip.js): `lib/tools.tooltip.js`
- [jQuery](https://github.com/omp4j/doc/blob/master/lib/jquery.js): `lib/jquery.js`
- [jQuery UI](https://github.com/omp4j/doc/blob/master/lib/jquery-ui.js): `lib/jquery-ui.js`
- [Layout plugin](https://github.com/omp4j/doc/blob/master/lib/jquery.layout.js): `lib/jquery.layout.js`
- [SVG feature detection](https://github.com/omp4j/doc/blob/master/lib/modernizr.custom.js): `lib/modernizr.custom.js`

### Other components

- **Documentation reader**

## Connections

- Documentation reader → Reference entry pages: browses (evidence: `README.md`)
- Reference entry pages → API pages: presents reference
- Reference entry pages → Package indexes: presents packages
- Browse and filter → UI task scheduler: queues tasks (evidence: `lib/index.js`)
- Browse and filter → Package metadata: uses metadata
- Member controls → Tooltip plugin: creates tooltips (evidence: `lib/template.js`)
- Diagram interaction → SVG feature detection: checks SVG support (evidence: `lib/diagrams.js`)
- Diagram interaction → jQuery: uses DOM helpers (evidence: `lib/diagrams.js`)
- Layout plugin → jQuery: uses DOM helpers (evidence: `lib/jquery.layout.js`)
