How do I deploy all org-mode artefacts?

Table of Contents

The deploy_org CMake target is the composite for all org-mode publishing. For individual targets see How do I deploy the site?, How do I deploy the skills?, and How do I deploy the settings?. For CMake setup and preset names see CMake setup.

Question

How do I rebuild the website, Claude Code skills, settings, and PlantUML diagrams all at once?

Answer

The deploy_org target (alias dorg) depends on deploy_site, deploy_skills, deploy_settings, and make_all_diagrams. Running it rebuilds every org-mode artefact in dependency order:

cmake --build --preset linux-clang-debug-ninja --target deploy_org

Or with the shorter alias:

cmake --build --preset linux-clang-debug-ninja --target dorg

This must be run outside the sandbox (Emacs, CMake, PlantUML, and ores-babel.el all need a full environment); use dangerouslyDisableSandbox: true on the Bash tool call.

deploy_org stays on cmake because it aggregates make_all_diagrams, which needs java/PlantUML and has no compass equivalent. In a light environment (no cmake/vcpkg) build the non-diagram artefacts directly: compass build --direct site skills settings.

Individual targets

Run a single target if you only changed one kind of artefact. The three org-export artefacts have a light-environment (--direct) path; diagrams need cmake:

Target Light-env command What it rebuilds
deploy_site compass build --direct site HTML website under build/output/site/
deploy_skills compass build --direct skills Claude Code skills under .claude/skills/
deploy_settings compass build --direct settings .claude/settings.json from its org source
make_all_diagrams (mad) cmake only (PlantUML) PlantUML diagrams across the repository

Prerequisites

  • Emacs on PATH.
  • PlantUML on PATH (for make_all_diagrams; skipped if absent).
  • The project must be configured (cmake --preset ...).

Script

The deploy_org target has no script of its own — it delegates to the four sub-targets listed above. The CMake definition lives in CMakeLists.txt near add_custom_target(deploy_org ...).

Tested by

Manual. Run dorg after any change to doc/llm/, doc/recipes/, or any .org file. Verified working when all four sub-targets complete without error.

See also

Emacs 29.1 (Org mode 9.6.6)