diff --git a/checks.nix b/checks.nix index a1661ba..6e680f8 100644 --- a/checks.nix +++ b/checks.nix @@ -75,6 +75,8 @@ in { interactive = doomTest "minimal" { config = [ "default" ]; } { }; interactive-without-loader = doomTest "minimal" { config = [ "default" ]; } { profileName = ""; }; + org-re-reveal = doomTest "org-re-reveal" { lang = [ [ "org" "+present" ] ]; } { }; + # Various tests of module combinations. unpinned-org = doomTest "external-org" { app = [ [ "rss" "+org" ] ]; } { }; } diff --git a/elisp-packages.nix b/elisp-packages.nix index 4ace7cb..794e5fa 100644 --- a/elisp-packages.nix +++ b/elisp-packages.nix @@ -18,6 +18,7 @@ esuper, git, makeWrapper, + stdenvNoCC, writeText, }: { @@ -185,6 +186,17 @@ ./elisp-patches/helm-taskrunner-version.patch ]; }; + # reveal.js is not actually an ELisp package. Doom gets straight.el to install it, + # then makes org-re-reveal use it as data. + revealjs = stdenvNoCC.mkDerivation { + pname = "revealjs"; + version = "9999snapshot"; + buildPhase = '' + siteDir=$out/share/emacs/site-lisp/revealjs + mkdir -p $siteDir + cp -r css dist js plugin $siteDir/ + ''; + }; # Make it byte-compile properly. code-review = esuper.code-review.overrideAttrs (attrs: { nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ [ git ]; diff --git a/tests.el b/tests.el index 78c79a8..6f22de6 100644 --- a/tests.el +++ b/tests.el @@ -30,6 +30,13 @@ (unless (string-search "/site-lisp/" path) (error "org-mode probably built-in: %s" path)))) +(defun test-org-re-reveal () + "Test org-re-reveal can find reveal.js." + (require 'ox) + (require 'org-re-reveal) + (unless (string-search "/site-lisp/revealjs" org-re-reveal-root) + (error "org-re-reveal does not find our revealjs: %s" org-re-reveal-root))) + (defun test-doom () (let* ((out (getenv "out")) (test (intern-soft (format "test-%s" (getenv "testName"))))