Commit Graph

11 Commits

Author SHA1 Message Date
Ignacio Ballesteros
4693935fcc fix: reload. Manage unhandled signal on file change 2026-02-23 16:28:18 +01:00
Ignacio Ballesteros
186b25ac5e Switch ox-hugo export from TOML to YAML frontmatter
TOML frontmatter interprets bare dates like 2022-10-31 as date literals
requiring time components, causing parsing issues. YAML handles dates
as strings by default, avoiding these problems.

Changes:
- export.ex: Add org-hugo-front-matter-format set to yaml
- index.ex: Update title regex to match YAML format (title: vs title =)
- quartz.config.ts: Use default FrontMatter plugin (YAML) instead of TOML
2026-02-22 22:26:03 +01:00
Ignacio Ballesteros
798401539f Fix static assets not found by resolving path relative to content directory
The static/ directory lookup was hardcoded as a relative path from the
Quartz working directory (QUARTZ_PATH). However, ox-hugo places static
files in output_dir/static, while Quartz runs with --directory pointing
to output_dir/content.

This fix resolves static/ relative to argv.directory's parent (the
output_dir), matching where ox-hugo actually places the files. Images
referenced as /ox-hugo/... in exported markdown now display correctly.
2026-02-22 22:25:30 +01:00
Ignacio Ballesteros
1fac31dc73 Fix ox-hugo export with internal ID links and Quartz config
- Add org-id resolution for [[id:...]] links by building ID locations
  database once before parallel export
- Handle broken file links gracefully with org-export-with-broken-links
- Fix race condition in parallel exports by pre-building ID cache
- Fix Quartz config not being applied: cp was preserving nix store hash
  prefix in filename instead of using explicit destination filename
- Continue pipeline even when some exports fail, reporting failures
- Improve error handling and logging throughout export pipeline
2026-02-22 19:55:17 +01:00
Ignacio Ballesteros
c7bd37bb95 fix 2026-02-22 11:55:17 +01:00
Ignacio Ballesteros
38b4e0b341 Fix index.md not being generated
- Generate index even when no .org files are found
- Don't halt CLI early when no org files - let pipeline complete
- Index will be empty but present, allowing Quartz to serve something
2026-02-22 11:45:56 +01:00
Ignacio Ballesteros
11ab8336e4 Fix Quartz port not being passed correctly
When CLI options --port/--ws-port were not provided, nil values were
being explicitly passed to Server.start_link, which caused Keyword.get
to return nil instead of the default. Now we only include port options
in the keyword list if they have actual values.
2026-02-21 21:50:13 +01:00
Ignacio Ballesteros
87fd311005 Add parallel export with configurable concurrency (default: 8)
Use Task.async_stream for parallel org->md export.
Configurable via EXPORT_CONCURRENCY env var or :export_concurrency config.
2026-02-21 21:37:27 +01:00
Ignacio Ballesteros
c54c27f2de Update mix deps hash for new dependencies 2026-02-21 20:39:48 +01:00
Ignacio Ballesteros
01805dbf39 Add service infrastructure for long-running deployment
- Add configuration system (config/*.exs, OrgGarden.Config)
- Refactor supervision tree with DynamicSupervisor and Registry
- Add OrgGarden.Server for serve mode lifecycle management
- Add health check HTTP endpoints (Bandit/Plug on :9090)
- Add telemetry events for export and watcher operations
- Implement graceful shutdown with SIGTERM handling
- Add Mix Release support with overlay scripts
- Add NixOS module for systemd service deployment
- Update documentation with service usage
2026-02-21 20:38:47 +01:00
Ignacio Ballesteros
6476b45f04 initial: org-garden 2026-02-21 15:32:03 +01:00