aboutsummaryrefslogtreecommitdiff
path: root/modules/org-reveal-config.el
Commit message (Collapse)AuthorAgeFilesLines
* feat(reveal): left-align slide content by defaultHEADmainCraig Jennings15 hours1-2/+7
| | | | reveal.js centers every slide, which reads fine for a title and badly for paragraphs and lists. I left-aligned section content in the head preamble and kept the title slide and standalone images centered, where centering still reads right.
* feat(reveal): fit dense slides to the canvas instead of clipping themCraig Jennings16 hours1-7/+136
| | | | | | | | reveal.js lays each slide out on a fixed canvas and clips whatever runs past the bottom. At the stock 42px font a slide held about six lines. Anything past that vanished with no sign it was missing. I made three changes in org-reveal-config.el. The canvas is now 16:9 (1280x720), so lines wrap later. The head preamble sets a 30px base font and smaller headings through the theme's CSS variables, so any reveal 4+ theme picks them up. A script spliced in after Reveal.initialize measures every slide once reveal is ready and shrinks any that still overflows, down to a floor of half size. A slide that overflows even there gets a console warning. A slide that fits stays at full size. The script stays out of overview and print view, where reveal lays slides out differently and a measurement means nothing. The header template now emits the same init options as the global default and turns off ^ markup, so snake_case identifiers in slide text stop exporting as subscripts. A file that already carries its own #+REVEAL_INIT_OPTIONS keeps them. The preamble and the fit script apply to every export.
* fix(org-reveal-config): register presentation keys via prefix mapCraig Jennings2026-07-111-11/+22
| | | | The seven presentation commands were bound with raw global-set-key on "C-; p ..." chains. That only works once keybindings.el has made "C-;" a live prefix. Otherwise each binding errors with "non-prefix key". I replaced them with cj/reveal-map registered under "C-; p" via cj/register-prefix-map, matching every sibling and dropping the load-order dependency.
* fix(org): guard external-tool assumptions in export and publishing commandsCraig Jennings2026-05-251-0/+11
| | | | | | | | | | | 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.
* docs(load-graph): classify Org modulesCraig Jennings2026-05-241-0/+10
| | | | | | 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.
* feat(org): add reveal.js present command and header removalCraig Jennings2026-05-121-5/+81
| | | | | | `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.
* fix(reveal): suppress date/caps on title slide, move transition to init optionsCraig Jennings2026-02-151-5/+7
| | | | | | | | - 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
* feat(reveal): add org-reveal presentation workflow with ERT testsCraig Jennings2026-02-141-0/+162
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.