|
| 1 | +# ASRFacet-Rb Website |
| 2 | + |
| 3 | +This folder contains the static documentation website for ASRFacet-Rb. |
| 4 | + |
| 5 | +## Purpose |
| 6 | + |
| 7 | +The website is kept separate from the Ruby runtime so it can be: |
| 8 | + |
| 9 | +- served by GitHub Pages |
| 10 | +- maintained without touching application code |
| 11 | +- validated independently in CI |
| 12 | + |
| 13 | +## Structure |
| 14 | + |
| 15 | +### Pages |
| 16 | + |
| 17 | +- `index.html` is the docs homepage |
| 18 | +- `getting-started.html` covers installation and first use |
| 19 | +- `download.html` provides installer downloads |
| 20 | +- `workflow.html` explains framework flow |
| 21 | +- `cli-reference.html` documents commands and flags |
| 22 | +- `modes.html` covers console, web, wizard, and lab usage |
| 23 | +- `reporting.html` explains outputs and configuration |
| 24 | +- `project.html` covers author, repository, and license context |
| 25 | + |
| 26 | +### CSS |
| 27 | + |
| 28 | +- `css/core/` holds shared tokens and baseline styles |
| 29 | +- `css/layout/` holds top bar, sidebar, content layout, and responsive rules |
| 30 | +- `css/components/` holds reusable documentation UI pieces |
| 31 | + |
| 32 | +### JavaScript |
| 33 | + |
| 34 | +- `js/core/` holds shared data, state, and helper logic |
| 35 | +- `js/features/` holds isolated interactive features |
| 36 | +- `js/bootstrap/` holds the final page bootstrap |
| 37 | + |
| 38 | +### Assets |
| 39 | + |
| 40 | +- `web_assets/media/` holds icons, preview images, and website visuals |
| 41 | +- `web_assets/installers/` holds downloadable installer scripts for the site |
| 42 | + |
| 43 | +## Load Order |
| 44 | + |
| 45 | +The HTML pages load CSS in this order: |
| 46 | + |
| 47 | +1. `css/core/base.css` |
| 48 | +2. `css/layout/topbar.css` |
| 49 | +3. `css/layout/sidebar.css` |
| 50 | +4. `css/layout/content.css` |
| 51 | +5. `css/components/workflow.css` |
| 52 | +6. `css/components/modules.css` |
| 53 | +7. `css/layout/responsive.css` |
| 54 | + |
| 55 | +The HTML pages load JavaScript in this order: |
| 56 | + |
| 57 | +1. `js/core/site-data.js` |
| 58 | +2. `js/core/helpers.js` |
| 59 | +3. `js/features/sidebar.js` |
| 60 | +4. `js/features/easter-eggs.js` |
| 61 | +5. `js/features/search.js` |
| 62 | +6. `js/features/contact-panel.js` |
| 63 | +7. `js/features/workflow-visual.js` |
| 64 | +8. `js/bootstrap/app.js` |
| 65 | + |
| 66 | +Do not change that order unless the dependency chain changes too. |
| 67 | + |
| 68 | +## Maintenance Rules |
| 69 | + |
| 70 | +- Keep the site fully static. No build step should be required for normal edits. |
| 71 | +- Prefer extending the existing modules instead of creating duplicate behavior. |
| 72 | +- Shared state belongs in `js/core/`. |
| 73 | +- Page behavior belongs in `js/features/`. |
| 74 | +- Final event wiring belongs in `js/bootstrap/app.js`. |
| 75 | +- Shared design tokens belong in `css/core/base.css`. |
| 76 | +- Put responsive overrides in `css/layout/responsive.css` unless a component truly needs isolated responsive behavior. |
| 77 | +- Keep asset paths relative so GitHub Pages works without rewriting links. |
| 78 | + |
| 79 | +## Verification |
| 80 | + |
| 81 | +The GitHub workflows validate: |
| 82 | + |
| 83 | +- workflow YAML syntax |
| 84 | +- website asset presence |
| 85 | +- website JS parse checks |
| 86 | +- page include wiring |
| 87 | + |
| 88 | +Local checks that match the workflow intent: |
| 89 | + |
| 90 | +```powershell |
| 91 | +node --check docs/website/js/core/site-data.js |
| 92 | +node --check docs/website/js/core/helpers.js |
| 93 | +node --check docs/website/js/features/sidebar.js |
| 94 | +node --check docs/website/js/features/easter-eggs.js |
| 95 | +node --check docs/website/js/features/search.js |
| 96 | +node --check docs/website/js/features/contact-panel.js |
| 97 | +node --check docs/website/js/features/workflow-visual.js |
| 98 | +node --check docs/website/js/bootstrap/app.js |
| 99 | +``` |
| 100 | + |
| 101 | +## Notes |
| 102 | + |
| 103 | +The root `docs/website/app.js` and `docs/website/styles.css` are kept only as |
| 104 | +small legacy notes so the repository does not carry duplicate full bundles. |
0 commit comments