* Author Guidelines
* Under the Hood
#+BEGIN_SRC emacs-lisp :tangle scripts/packages.el
(use-package lua-mode :ensure t :defer t)
(use-package rust-mode :ensure t :defer t)
(use-package sass-mode :ensure t :defer t)
(use-package haskell-mode :ensure t :defer t)
(use-package toml-mode :ensure t :defer t)
(use-package json-mode :ensure t :defer t)
(use-package github-modern-theme :ensure t :defer t
:init
(load-theme 'github-modern t))
#+END_SRC
#+BEGIN_SRC emacs-lisp :tangle scripts/export-org.el
(cleopatra:configure)
(org-babel-do-load-languages
'org-babel-load-languages
'((shell . t)))
(setq org-export-with-toc nil)
(add-to-list 'org-entities-user
'("im" "\\(" nil "" "" "" ""))
(add-to-list 'org-entities-user
'("mi" "\\)" nil "" "" "" ""))
(setq org-babel-exp-code-template
(concat "#+BEGIN_SRC %lang%switches%flags "
":tangle %tangle :name %name\n"
"%body\n"
"#+END_SRC"))
(defun cleopatra-html-src-block (oldfun src-block contents info)
(let*
((old-ret (funcall oldfun src-block contents info))
(pars (org-babel-parse-header-arguments
(org-element-property :parameters src-block)))
(tangle (cdr (assoc :tangle pars)))
(name (cdr (assoc :name pars))))
(cond
(name
(concat
"
"
(format "
<<%s>> :=
" name)
old-ret
"
"))
((not (string= tangle "no"))
(concat
""
old-ret
(format "
%s
" tangle)
"
"))
(t old-ret))))
(advice-add 'org-html-src-block
:around #'cleopatra-html-src-block)
(org-html-export-to-html nil nil nil t)
#+END_SRC
#+BEGIN_SRC makefile :tangle org.mk
EMACS := cleopatra-emacs
ORG_POSTS := $(shell find site/ -name "*.org")
ORG_HTML := $(ORG_POSTS:.org=.html)
org-prebuild : .emacs
org-build : ${ORG_HTML}
theme-build : site/style/org.sass
soupault-build : org-build
ARTIFACTS += ${ORG_HTML}
CONFIGURE += .emacs
EXPORT := --batch \
--load="${ROOT}/scripts/packages.el" \
--load="${ROOT}/scripts/export-org.el" \
2>> build.log
INIT := --batch --load="${ROOT}/scripts/packages.el" \
2>> build.log
.emacs : scripts/packages.el
@cleopatra echo Initiating "Emacs configuration"
@${EMACS} ${INIT}
@touch .emacs
%.html : %.org scripts/packages.el scripts/export-org.el \
.emacs org.mk
@cleopatra echo Exporting "$*.org"
@${EMACS} $< ${EXPORT}
#+END_SRC
#+BEGIN_SRC sass :tangle site/style/org.sass
#text-footnotes
max-width : 35rem
.footpara
display: inline
margin-left: .2em
.section-number-2:after,
.section-number-3:after
content: ". "
.section-number-4,
.section-number-5,
.section-number-6
display: none
dl
dt
font-weight: bold
dd p
margin-top: 0
.footnotes
font-size : 1rem
.org-literate-programming
.org-src-tangled-to:before
content: "\f054"
font : normal normal normal 11px/1 ForkAwesome
.org-src-tangled-to,
padding-left : 2rem
.org-src-tangled-to,
.org-src-name
font-family : 'Fira Code', monospace
font-size : 70%
font-weight: bold
color : #444
#+END_SRC