<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/modules/org-reveal-config.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-25T22:51:17+00:00</updated>
<entry>
<title>fix(org): guard external-tool assumptions in export and publishing commands</title>
<updated>2026-05-25T22:51:17+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-25T22:51:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=d665582d6fc19c15a772c6ec24ff822e7e3c37f9'/>
<id>urn:sha1:d665582d6fc19c15a772c6ec24ff822e7e3c37f9</id>
<content type='text'>
Four export/publishing commands shelled out to external tools without checking they exist, so a missing tool surfaced as an opaque process error — or, for reveal.js, a silently broken presentation. I added a command-time guard to each that names the tool and what's needed:

- zathura, in the pandoc PDF export-and-open command
- the hugo binary and the platform file-manager opener, in hugo-config
- the local reveal.js checkout (run scripts/setup-reveal.sh), shared by the reveal export and preview commands
- pandoc, in the web-clip protocol handler

The checks run only when the command runs, so startup stays quiet. Each guard has a test asserting the user-error fires when the tool is absent, and the existing happy-path tests now stub the lookups so they exercise the real path rather than tripping the new guard.
</content>
</entry>
<entry>
<title>docs(load-graph): classify Org modules</title>
<updated>2026-05-24T21:34:16+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-24T21:34:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=02baa68063f02cc571789c03b1101c28d139200d'/>
<id>urn:sha1:02baa68063f02cc571789c03b1101c28d139200d</id>
<content type='text'>
Seventh classification batch: the thirteen Org modules — config, agenda, babel, capture, contacts, drill, export, noter, refile, reveal, roam, webclipper, hugo. I annotated each header, added a Batch 7 table to the inventory, and extended the validation allowlist. 65 of 102 modules are now classified.

The daily workflows (config, agenda, capture, refile, roam) keep their eager reason per the spec's Phase 6 target. Babel and contacts move to after-load; export, reveal, drill, noter, webclipper, and hugo become command-loaded. The agenda and refile idle-timer caches are recorded as the side effects the spec already tracks for cache-lifecycle work. No new hidden dependencies.
</content>
</entry>
<entry>
<title>feat(org): add reveal.js present command and header removal</title>
<updated>2026-05-12T11:07:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-12T11:07:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=7f51842c920f708ec8588ae9a178fdbc28d31f46'/>
<id>urn:sha1:7f51842c920f708ec8588ae9a178fdbc28d31f46</id>
<content type='text'>
`C-; p SPC' (`cj/reveal-present') is the new fast path: it inserts reveal.js headers if the buffer doesn't have them (prompting for a title), saves the buffer, exports to self-contained HTML, and opens it in the browser. It's the export-and-open you'd otherwise reach by doing `C-; p h' then `C-; p e'. `C-; p H' (`cj/reveal-remove-headers') strips the header block this module inserts, and `C-; p h' (`cj/reveal-insert-header') now errors instead of duplicating headers when a reveal block is already present.

The header logic moved into small helpers (`cj/--reveal-has-header-p', `cj/--reveal-remove-headers', `cj/--reveal-ensure-header', `cj/--reveal-keyword-regexp', and the `cj/--reveal-header-keywords' list), and `test-org-reveal-config-headers.el' drives them directly: detection on a reveal vs. a plain Org buffer, removal of the generated block (and only the leading block), body preservation, and the no-duplicate-headers error.
</content>
</entry>
<entry>
<title>fix(reveal): suppress date/caps on title slide, move transition to init options</title>
<updated>2026-02-15T21:21:21+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-15T21:21:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=69805a1c8cfa5fc94c05a6d08f0ed715c6c78da2'/>
<id>urn:sha1:69805a1c8cfa5fc94c05a6d08f0ed715c6c78da2</id>
<content type='text'>
- Add date:nil, timestamp:nil, author:t to template OPTIONS
- Set global CSS override (text-transform:none) via org-reveal-head-preamble
- Move transition from obsolete REVEAL_TRANS to REVEAL_INIT_OPTIONS
- Default transition changed to "none"
- Global init options now reference cj/reveal-default-transition constant
</content>
</entry>
<entry>
<title>feat(reveal): add org-reveal presentation workflow with ERT tests</title>
<updated>2026-02-14T09:21:13+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-14T09:21:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=ad4a5d7ba23a5871b241c4a41b3d1dede036a028'/>
<id>urn:sha1:ad4a5d7ba23a5871b241c4a41b3d1dede036a028</id>
<content type='text'>
Replaced pandoc-based reveal.js export with native ox-reveal integration.
New org-reveal-config.el module provides offline, self-contained HTML export
with keybindings under C-; p. Includes setup script for reveal.js 5.1.0
and 34 ERT tests covering header template and title-to-filename helpers.
</content>
</entry>
</feed>
