[OCaml] Mobile-friendly clone of cgit.
docs update .kiro steering for syntax highlighting and UI changes
- ocaml.md: expand repository map with new modules (syntax.ml, highlight.ml, highlight_grammars.ml, grammars/, views/) - web-design.md: add syntax highlighting section (server-rendered, gruvbox theme, attribute selectors), document page structure (Summary/Commits/Files only, no branches/tags/README pages)
Changed files
.kiro/steering/ocaml.md
@@ -26,6 +26,12 @@
26
26
- `README.org` — describes the overall architecture.
27
27
- `bin/` — contains the main ogit executable target.
28
28
- `lib/` — contains libraries used by ogit.
29
Added:
- `lib/syntax.ml` — language detection from filename, shebang, modeline.
30
Added:
- `lib/highlight_grammars.ml` — TextMate grammar registry (48 languages).
31
Added:
- `lib/highlight.ml` — tokenisation engine producing dream-html spans.
32
Added:
- `lib/grammars/` — bundled TextMate grammar JSON files (embedded via ocaml-crunch).
33
Added:
- `lib/static/` — CSS and static assets (embedded via ocaml-crunch).
34
Added:
- `lib/views/` — page rendering modules (ui, components, layout, repo, root, error).
29
35
- `test/` — contains tests.
30
36
31
37
## Testing
.kiro/steering/web-design.md
@@ -34,3 +34,16 @@
34
34
- Layout SHALL use modern CSS (grid, flexbox) without framework dependencies.
35
35
- Colour tokens SHALL be defined as CSS custom properties to enable consistent theming and ease contrast verification.
36
36
- Media queries SHALL ensure usability from 320px viewport width upward.
37
Added:
38
Added:
## Syntax Highlighting
39
Added:
40
Added:
- Source code highlighting SHALL be server-rendered at request time. No client-side JavaScript highlighter SHALL be used.
41
Added:
- The highlighting engine uses hilite + textmate-language with bundled TextMate grammars (48 languages).
42
Added:
- The colour theme lives in `lib/static/syntax-theme.css` (currently Gruvbox Dark Hard Contrast) and is decoupled from structural styles.
43
Added:
- CSS selectors use `[class*="-keyword"]` attribute matching for language-agnostic theming.
44
Added:
45
Added:
## Pages
46
Added:
47
Added:
- The repository navigation SHALL expose only: Summary, Commits, Files.
48
Added:
- The Summary page SHALL display only the inline README.
49
Added:
- There SHALL be no dedicated branches, tags, or README pages.