Skip to content

Commit 0ef06fb

Browse files
docs: update site-architecture to be current
1 parent 885cf79 commit 0ef06fb

1 file changed

Lines changed: 36 additions & 35 deletions

File tree

_pages/site-architecture.md

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,57 @@ nav_order: 13
77

88
## Overview
99

10-
The FEASTorg documentation is organized using a hybrid approach that balances searchability, maintainability, and CI/CD complexity.
10+
FEASTorg uses a hybrid Jekyll architecture that combines automated content import from across multiple repositories with centralized presentation and search. This is designed to balance site quality, maintainability, performance, and workflow efficiency.
1111

12-
## Technical Foundation
12+
## Technical Stack
1313

14-
This site is built using [Jekyll](https://jekyllrb.com/), a static site generator that transforms plain text into static websites. Key technical components include:
14+
**Core**: Jekyll 4.4+ with Just the Docs v0.10.1, Ruby 3.3, GitHub Pages
15+
**Plugins**: SEO-tag, feed, relative-links, redirect-from, include-cache
1516

16-
- **Theme**: Using [Just the Docs](https://just-the-docs.github.io/just-the-docs/) theme for enhanced documentation features
17-
- **Source Control**: All source code is maintained on [GitHub](https://github.com/FEASTorg)
18-
- **Hosting**: Deployed via GitHub Pages at [feastorg.github.io](https://feastorg.github.io)
17+
## Content Architecture
1918

20-
### Developer Resources
19+
### Hub Repository Structure
2120

22-
For contributors working on site improvements:
21+
- **`_pages/`**: Hand-maintained core documentation
22+
- **`getting-started/`, `usage/`, `development/`**: Organized guide collections
23+
- **`_posts/`**: Project updates and announcements
24+
- **Auto-imported content**: collection of repositories via `sources.json`
2325

24-
- Jekyll Documentation: [jekyllrb.com](https://jekyllrb.com/)
25-
- GitHub Pages Guide: [pages.github.com](https://pages.github.com/)
26-
- Just the Docs Theme: [just-the-docs.github.io](https://just-the-docs.github.io/just-the-docs/)
26+
### Automated Import System
2727

28-
## Site Structure
28+
**Process**: Daily automated import via `scripts/import_sources.sh`
2929

30-
### Main Documentation Repository
30+
1. Sparse Git cloning (docs subdirectories only)
31+
2. Intelligent filtering (global + per-repo `.indexignore`)
32+
3. Front matter normalization for navigation hierarchy
33+
4. URL redirect management
3134

32-
- This repository (`FEASTorg.github.io`) serves as the primary documentation hub
33-
- Built as a monolithic site using Jekyll
34-
- Features integrated search functionality
35-
- Contains core documentation, guides, and project overviews
35+
### Linked Projects Architecture
3636

37-
### Site Filtering
37+
Some projects maintain standalone GitHub Pages sites but are linked through the hub due to complex CI/CD requirements. For example, hardware projects (e.g., Slice\_\* repositories) have their own build pipeline using [bread-infra](https://github.com/FEASTorg/bread-infra), or the Freeboard Project, which has its own CI/CD setup using auto-generated developer API reference and component documentation from monorepo packages, published via VuePress and GitHub Actions.
3838

39-
- `source.json` exclude: Hub-level filtering to enforce policy and catch missing, .indexignore in each repo does per-repo filtering
39+
These are managed via `sources.linked.json` and automatically generate redirect stub pages.
4040

41-
### Externally Generated Sites
41+
## Navigation & Styling
4242

43-
Some documentation is intentionally maintained in separate repositories for the following reasons:
43+
**Structure**: Just the Docs hierarchical parent-child system with automated layout assignment via `_config.yml` defaults
4444

45-
- To prevent search result pollution from repetitive content
46-
- To maintain specialized CI/CD workflows
47-
- To handle complex development documentation separately
45+
**Branding**: Custom FEAST color system (`_sass/custom/tokens.scss`) with:
4846

49-
These include:
47+
- Primary blues (engineering theme)
48+
- Accent oranges (harvest/warmth)
49+
- Growth greens (automation/nature)
50+
- Neutral grays (surfaces)
5051

51-
- **Slice_XXXX pages**: Documentation for individual SLICE implementations
52-
- **freeboard**: Development documentation with its own monorepo structure
52+
## Build Pipeline
5353

54-
### Documentation Integration Strategy
54+
**Triggers**: Push to main, daily at 23:11 EST, manual dispatch
55+
**Process**: Environment setup → Content import → Stub generation → Jekyll build → Deploy
5556

56-
- Core documentation is pulled into this repository for unified access
57-
- External documentation maintains independent build processes
58-
- This approach ensures:
59-
- Efficient search functionality
60-
- Streamlined maintenance
61-
- Optimal performance
62-
- Separation of concerns where beneficial
57+
**Features**:
58+
59+
- Daily sync keeps external content current
60+
- Full-text search across all imported content
61+
- Smart tokenization for hyphenated terms
62+
- Pretty URLs with redirect management
63+
- Performance optimizations (sparse cloning, asset optimization, CDN)

0 commit comments

Comments
 (0)