Creating a blog
~11787 words. ~58 minutes.
Table of Contents
Introduction
I have been blogging by manually exporting my org-mode files into
HTML with a custom CSS file and then SCP-ing the generated HTML file
into my SDF personal page. While this works fine, The page doesn't
have any SSL certificate, which just makes my website look bad. So I
have recently decided to switch my blog over to Codeberg and utilize
their pages facility.
The implementation
After some research, I've found out that Codeberg pages doesn't have any support for static site generators like Github pages does, But I am not deterred by this. I have devised a plan to use Codeberg effectively.
Firstly, I have created a private repository with all my articles on
it (in org-mode format of course), I also have the scripts
necessary to perform this on there, which are
- An Emacs lisp script, and
- A shell script
Emacs Lisp script
The Emacs lisp script actually exports the Emacs Org-files into a HTML directory.
I will go over each (interesting) part one by one.
Cleaning public
(message "Cleaning public/") (shell-command "rm public/*") (message "Done!")
This block just removes the old public directory, this is done to ensure that no files that were "removed" or "drafted" stay public.
Customizing HTML output
;; Customize the HTML output (setq org-html-postamble t ; use org-html-export-format org-html-head-include-scripts nil ; Use our own scripts org-html-head-include-default-style nil ; Use our own styles org-confirm-babel-evaluate nil ; Don't ask permission for evaluating source blocks org-html-html5-fancy t org-html-htmlize-output-type 'css user-full-name "tusharhero" user-mail-address "tusharhero@sdf.org" org-html-with-latex 'verbatim )
I would say the most interesting part is the line where I disable prompt for asking permission before evaluating the babel source blocks, that is because, I am using emacs-lisp org-babel source blocks to generate text here and there, particularly I am using it right now to copy code from actual files during build time. I won't go over how exactly that is done, because I am still figuring it out.
Add setup.org to every page
;; add setup.org to every page (add-hook 'org-export-before-processing-hook #'(lambda (backend) (insert "#+INCLUDE: \"../setup.org\"\n"))) ;; done
I currently use this to add a tag list to each page.
#+begin_src elisp :results raw :exports results (let* ((word-count (save-excursion (search-forward "#+title:" nil nil 2) (forward-line 3) (count-words (point) (point-max)))) (reading-speed 200) (reading-time (/ word-count reading-speed))) (format "/~%s words. ~%d minutes./" word-count reading-time)) #+end_src #+begin_src elisp :results html :exports results (defun p/get-tags () "Get the tags in buffer." (save-excursion (goto-char (point-min)) (search-forward "#+tags:" nil nil 2) (string-split (string-trim (thing-at-point 'line t) ".*tags:\s*") ":"))) (let ((tags (delete "special" (p/get-tags)))) (if (not (= (length tags) 0)) (format "<div class=\"tagbar\"><span><a href=\"tags.html\">tags:</a></span> %s</div>" (string-join (mapcar (lambda (tag) (format "<span><a href=\"tags.html#%s\">%s</a></span>" tag tag)) tags) " ")) "")) #+end_src
I also have a listing of all pages according to their tags here.
Defining publishing project
;; Define the publishing project
Now, all of this is pretty standard, I think you can just guess what
each part does, but the most interesting part is
:html-home/up-format option, it allows to put the navigation bar in the
general HTML, even though I could have done by defining a completely
new element, but I decided that reusing old functionality is probably
best here.
CSS minifier at home
As you can see in Styling, my CSS is a bit too large (by my standards). So I decided to minify it a bit… and this is what I wrote
(message "Starting the minification of CSS...") (save-excursion (find-file "public/style.css") ;; Remove comments (replace-regexp-buffer (rx "/*" (zero-or-more (or (not (any "*")) (seq "*" (not (any "/"))))) (one-or-more "*") "/") "") ;; Remove new lines (replace-regexp-buffer (rx "\n") "") ;; Replace multple spaces (replace-regexp-buffer (rx (>= 2 "\s")) " ") ;; Remove some useless spaces (dolist (symbol (list ?{ ?} ?\; ?, ?> ?~ ?-)) (replace-regexp-buffer (format "%s " symbol) (format "%s" symbol)) (replace-regexp-buffer (format " %s" symbol) (format "%s" symbol))) (replace-regexp-buffer (rx ": ") ":") (save-buffer))
Here is the definition of replace-regexp-buffer.
(defun replace-regexp-buffer (regexp to-string)
It is a very basic minifer it doesn't really do anything complicated but I have managed to save up to 2.4KB using it, which is pretty good.
Full script
Here is the script, (It's licensed under the GPLv3 Copyright @ tusharhero 2024, although most of it has been taken from this tutorial.)
;;; build-script.el --- Build Script for website -*- lexical-binding: t; after-save-hook: (lambda nil (compile "./build.sh")); -*- ;;; Commentary: ;; Licensed under GPLv3 Copyright @ tusharhero 2024 ;;; Code: (message "Cleaning public/") (shell-command "rm public/*") (message "Done!") (message "Getting dependencies, may take some time...") ;; Add melpa (require 'package) (setq package-user-dir (expand-file-name "./.packages")) ;; Initialize the package system (package-initialize) (unless package-archive-contents (package-refresh-contents)) ;; Install dependencies (dolist (package '(htmlize webfeeder dash)) (unless (package-installed-p package) (package-install package))) ;; From https://github.com/alphapapa/unpackaged.el#export-to-html-with-useful-anchors (require 'dash) (define-minor-mode unpackaged/org-export-html-with-useful-ids-mode "Attempt to export Org as HTML with useful link IDs. Instead of random IDs like \"#orga1b2c3\", use heading titles, made unique when necessary." :global t (if unpackaged/org-export-html-with-useful-ids-mode (advice-add #'org-export-get-reference :override #'unpackaged/org-export-get-reference) (advice-remove #'org-export-get-reference #'unpackaged/org-export-get-reference))) (defun unpackaged/org-export-get-reference (datum info) "Like `org-export-get-reference', except uses heading titles instead of random numbers." (let ((cache (plist-get info :internal-references))) (or (car (rassq datum cache)) (let* ((crossrefs (plist-get info :crossrefs)) (cells (org-export-search-cells datum)) ;; Preserve any pre-existing association between ;; a search cell and a reference, i.e., when some ;; previously published document referenced a location ;; within current file (see ;; `org-publish-resolve-external-link'). ;; ;; However, there is no guarantee that search cells are ;; unique, e.g., there might be duplicate custom ID or ;; two headings with the same title in the file. ;; ;; As a consequence, before re-using any reference to ;; an element or object, we check that it doesn't refer ;; to a previous element or object. (new (or (cl-some (lambda (cell) (let ((stored (cdr (assoc cell crossrefs)))) (when stored (let ((old (org-export-format-reference stored))) (and (not (assoc old cache)) stored))))) cells) (when (org-element-property :raw-value datum) ;; Heading with a title (unpackaged/org-export-new-title-reference datum cache)) ;; NOTE: This probably breaks some Org Export ;; feature, but if it does what I need, fine. (org-export-format-reference (org-export-new-reference cache)))) (reference-string new)) ;; Cache contains both data already associated to ;; a reference and in-use internal references, so as to make ;; unique references. (dolist (cell cells) (push (cons cell new) cache)) ;; Retain a direct association between reference string and ;; DATUM since (1) not every object or element can be given ;; a search cell (2) it permits quick lookup. (push (cons reference-string datum) cache) (plist-put info :internal-references cache) reference-string)))) (defun unpackaged/org-export-new-title-reference (datum cache) "Return new reference for DATUM that is unique in CACHE." (cl-macrolet ((inc-suffixf (place) `(progn (string-match (rx bos (minimal-match (group (1+ anything))) (optional "--" (group (1+ digit))) eos) ,place) ;; HACK: `s1' instead of a gensym. (-let* (((s1 suffix) (list (match-string 1 ,place) (match-string 2 ,place))) (suffix (if suffix (string-to-number suffix) 0))) (setf ,place (format "%s--%s" s1 (cl-incf suffix))))))) (let* ((title (org-element-property :raw-value datum)) (ref (url-hexify-string (substring-no-properties title))) (parent (org-element-property :parent datum))) (while (--any (equal ref (car it)) cache) ;; Title not unique: make it so. (if parent ;; Append ancestor title. (setf title (concat (org-element-property :raw-value parent) "--" title) ref (url-hexify-string (substring-no-properties title)) parent (org-element-property :parent parent)) ;; No more ancestors: add and increment a number. (inc-suffixf ref))) ref))) (unpackaged/org-export-html-with-useful-ids-mode) ;; Load the publishing system (require 'ox-publish) (message "Done!") (message "Setting customizations...") ;; Customize the HTML output (setq org-html-postamble t ; use org-html-export-format org-html-head-include-scripts nil ; Use our own scripts org-html-head-include-default-style nil ; Use our own styles org-confirm-babel-evaluate nil ; Don't ask permission for evaluating source blocks org-html-html5-fancy t org-html-htmlize-output-type 'css user-full-name "tusharhero" user-mail-address "tusharhero@sdf.org" org-html-with-latex 'verbatim ) (setq org-html-postamble-format `(("en" ,(concat "<p class=\"author\">Author: %a" "<details>" ;; Email obfuscation. "<summary>email</summary>" "replace [at] with @, and put the domain for username, and vice versa: " (string-join (reverse (string-split user-mail-address "@")) " [at] ") "</details>" "</p> <p class=\"license\"> © tusharhero 2024-2026, check <a href=\"/licenses.html\">licenses page</a> for details. </p> <p class=\"date\">Date: %d</p> <p class=\"creator\">%c</p>")))) (setq org-html-home/up-format "<div class=\"navbar\" id=\"org-div-home-and-up\"> <a accesskey=\"H\" %s href=\"%s\">tusharhero's pages</a> <span class=\"craftering\"> <a class=\"arrow\" href=\"https://craftering.systemcrafters.net/@tusharhero/previous\">←</a> <a href=\"https://craftering.systemcrafters.net/\">craftering</a> <a class=\"arrow\" href=\"https://craftering.systemcrafters.net/@tusharhero/next\">→</a> </span> </div>" ) (setopt org-export-global-macros (list (cons "video" " #+BEGIN_EXPORT html <div class=\"video-title\">$2</div> <video controls title=\"$2\"> <source src=\"$1\"> <a href=\"$1\">$2</a> </video> #+END_EXPORT ") (cons "screenshot" " #+BEGIN_EXPORT html <div class=\"screenshot-title\">$2</div> <img title=\"$2\" src=\"$1\"> #+END_EXPORT "))) ;; add setup.org to every page (add-hook 'org-export-before-processing-hook #'(lambda (backend) (insert "#+INCLUDE: \"../setup.org\"\n"))) ;; done ;; Define the publishing project (setq org-publish-project-alist (list (list "org-site:main" :recursive t :base-directory "./content" :publishing-function 'org-html-publish-to-html :publishing-directory "./public" :exclude-tags '("draft" "noexport") :exclude "draft*" :with-author t :with-creator t :with-toc t :with-email t :html-link-home "/" :section-numbers nil :time-stamp-file nil))) (message "Complete!") (defun remove-org-element (string) "Delete the first element which contains STRING." (save-excursion (search-backward string nil t 2) (goto-char (match-beginning 0)) (org-mark-element) (delete-region (region-beginning) (region-end)))) (defun replace-org-element (string new-string) "Replace the first element which contains STRING with NEW-STRING." (save-excursion (search-backward string nil t 2) (goto-char (match-beginning 0)) (org-mark-element) (replace-region-contents (region-beginning) (region-end) new-string)) nil) (message "Actually building the files...") (org-publish-all t) (message "Complete!") (message "Copying CSS file over to public directory...") (copy-file "style.css" "public/style.css") (message "Done!") (message "Copying favicon file over to public directory...") (copy-file "favicon.ico" "public/favicon.ico") (message "Done!") (message "Copying domains file over to public directory...") (copy-file ".domains" "public/.domains" t) (message "Done!") (defun replace-regexp-buffer (regexp to-string) "Replace things macthing REGEXP with TO-STRING in all of the buffer." (goto-char (point-min)) (while (re-search-forward regexp nil t) (replace-match to-string nil nil))) (defmacro get-file-size (filename) "Get the size of FILENAME." (file-attribute-size (file-attributes filename))) (message "Starting the minification of CSS...") (save-excursion (find-file "public/style.css") ;; Remove comments (replace-regexp-buffer (rx "/*" (zero-or-more (or (not (any "*")) (seq "*" (not (any "/"))))) (one-or-more "*") "/") "") ;; Remove new lines (replace-regexp-buffer (rx "\n") "") ;; Replace multple spaces (replace-regexp-buffer (rx (>= 2 "\s")) " ") ;; Remove some useless spaces (dolist (symbol (list ?{ ?} ?\; ?, ?> ?~ ?-)) (replace-regexp-buffer (format "%s " symbol) (format "%s" symbol)) (replace-regexp-buffer (format " %s" symbol) (format "%s" symbol))) (replace-regexp-buffer (rx ": ") ":") (save-buffer)) (message "Done, saved %s in the CSS!" (file-size-human-readable (- (get-file-size "style.css") (get-file-size "public/style.css")))) ;; Generate rss feed. (org-babel-load-file (expand-file-name "tags.org" "content")) (webfeeder-build "rss.xml" "./public" "https://tusharhero.codeberg.page/" (let ((filenames (directory-files "./public" t directory-files-no-dot-files-regexp))) (dolist (filename (append (mapcar (lambda (file) (expand-file-name file "public")) (list ".git" "favicon.ico" "style.css" "style.css~" ".domains")) (delq nil (mapcar (lambda (article) (when-let* ((tags (nth 2 article)) ((member "special" tags)) (filename (car article)) (webpage (expand-file-name (file-name-with-extension (file-name-nondirectory filename) "html") "public"))) webpage)) (p/tags-table))))) (setq filenames (delete filename filenames))) (mapcar (lambda (filename) (file-name-nondirectory filename)) filenames)) :title "tusharhero's pages" :description "Articles written by tusharhero (and some other stuff)!" :builder 'webfeeder-make-rss) (webfeeder-build "emacs.xml" "./public" "https://tusharhero.codeberg.page/" (delq nil (mapcar (lambda (article) (when-let* ((tags (nth 2 article)) ((member "emacs" tags)) (filename (car article)) (webpage (file-name-with-extension (file-name-nondirectory filename) "html"))) webpage)) (p/tags-table))) :title "tusharhero's pages about Emacs" :description "Emacs related articles" :builder 'webfeeder-make-rss) (provide 'build-site) ;;; build-site.el ends here
The shell script
But commit-pushing twice is a bit repetitive, and things that are repetitive should be scripted away. So here is the script, It's licensed under the GPLv3 Copyright @ tusharhero 2024
This script checks if there are any new changes in the remote (in this case my private repository containing the sources of all the articles in org format), if there are it runs the build.sh script after which it makes a commit in the pages repository and pushes it.
#!/bin/sh git fetch DIFFNUMBER=$(git diff origin/master | wc -l | sed -e 's/ .*//') echo $DIFFNUMBER if [ $DIFFNUMBER = 0 ] then echo "Nope! Nothing on the remote!" exit fi echo "We seem to have new content!" git pull ./build.sh cd public git add . git commit -am "Automated Content Update" git push
Web hook
I run this web hook script every time there is a push to my repository.
#!/bin/bash http_response="HTTP/1.1 202 Accepted\nContent-Type: text/plain\nContent-Length: 4\r\n\nOkay" while true; do nc -l -p $WEBHOOK_PORT -c "echo \"$http_response\"" ./buildauto.sh done
Styling
For styling I have this custom CSS file, its not really anything super interesting so I won't bother explaining anything.
body { color: #232323; background-color: #fcffff; margin: auto; width: 60em; max-width: 98%; } .tagbar { color: #7a5f2f; padding: 0.2em; } pre, code, .status, .tagbar, .navbar, hr { border-style: dashed; border-width: 0.1em; border-color: #b0b7c0; border-radius: 0.1em; } :is(h1, h2, h3, h4, h5, h6, h7, h8, h9) { font-weight: bold; } h1 { color: #007a85; } h2 { color: #004fc0; } h3 { color: #00845f; } h4 { color: #7f5ae0; } h5 { color: #1f6fbf; } h6 { color: #4244ef; } h7 { color: #468400; } h8 { color: #aa44c5; } h9 { color: #3a6dd2; } ::selection { background-color: #d4eaf3; } p.verse { font-size: 1em; font-style: italic; margin-bottom: 10px; } img, video { overflow-x: scroll; scrollbar-width: none; max-width: 100%; height: auto; margin: 0.2em 0; } .video-title, .screenshot-title { position: relative; overflow: auto; padding: 1pt; font-family: monospace; margin-left: 3%; font-size: 0.8em; } .navbar { border-color: #cceff5; border-top: 0; border-width: 0.12em; padding: 0.1em; display: flex; flex-direction: row; justify-content: space-between; } a { color: #1f6fbf; text-decoration: none; } a:hover { color: #aa44c5; text-decoration: underline; } code { background: #eaefef; } /* Org-mode stuff (Copied and modified from org output)*/ #content { max-width: 60em; margin: auto; } .title { text-align: center; margin-bottom: .2em; } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top:0; } .todo { font-family: monospace; color: #f00; } .done { font-family: monospace; color: #008000; } .priority { font-family: monospace; color: #ffa500; } .tag { background-color: #eee; font-family: monospace; padding: 2px; font-size: 80%; font-weight: normal; } .timestamp { color: #bebebe; } .timestamp-kwd { color: #5f9ea0; } .org-right { margin-left: auto; margin-right: 0px; text-align: right; } .org-left { margin-left: 0px; margin-right: auto; text-align: left; } .org-center { margin-left: auto; margin-right: auto; text-align: center; } .underline { text-decoration: underline; } #postamble p, #preamble p { font-size: 90%; margin: .2em; } p.verse { margin-left: 3%; } pre { padding: 8pt; font-family: monospace; overflow: auto; margin: 1.2em; } pre.src { position: relative; overflow: auto; } .org-src-container:before { position: relative; overflow: auto; padding: 1pt; font-family: monospace; margin-left: 3%; font-size: 0.8em; opacity: 50%; } /* Not really a language, but I added it anyway.*/ .org-src-container:has(pre.src-diff):before { content: 'diff'; } /* Languages per Org manual */ .org-src-container:has(pre.src-asymptote):before { content: 'Asymptote'; } .org-src-container:has(pre.src-awk):before { content: 'Awk'; } .org-src-container:has(pre.src-authinfo)::before { content: 'Authinfo'; } .org-src-container:has(pre.src-C):before { content: 'C'; } /* pre.src-C++ doesn't work in CSS */ .org-src-container:has(pre.src-clojure):before { content: 'Clojure'; } .org-src-container:has(pre.src-css):before { content: 'CSS'; } .org-src-container:has(pre.src-D):before { content: 'D'; } .org-src-container:has(pre.src-ditaa):before { content: 'ditaa'; } .org-src-container:has(pre.src-dot):before { content: 'Graphviz'; } .org-src-container:has(pre.src-calc):before { content: 'Emacs Calc'; } .org-src-container:has(pre.src-emacs-lisp):before { content: 'Emacs Lisp'; } .org-src-container:has(pre.src-elisp):before { content: 'Emacs Lisp'; } .org-src-container:has(pre.src-fortran):before { content: 'Fortran'; } .org-src-container:has(pre.src-gnuplot):before { content: 'gnuplot'; } .org-src-container:has(pre.src-haskell):before { content: 'Haskell'; } .org-src-container:has(pre.src-hledger):before { content: 'hledger'; } .org-src-container:has(pre.src-java):before { content: 'Java'; } .org-src-container:has(pre.src-js):before { content: 'Javascript'; } .org-src-container:has(pre.src-latex):before { content: 'LaTeX'; } .org-src-container:has(pre.src-ledger):before { content: 'Ledger'; } .org-src-container:has(pre.src-lisp):before { content: 'Lisp'; } .org-src-container:has(pre.src-lilypond):before { content: 'Lilypond'; } .org-src-container:has(pre.src-lua):before { content: 'Lua'; } .org-src-container:has(pre.src-matlab):before { content: 'MATLAB'; } .org-src-container:has(pre.src-mscgen):before { content: 'Mscgen'; } .org-src-container:has(pre.src-ocaml):before { content: 'Objective Caml'; } .org-src-container:has(pre.src-octave):before { content: 'Octave'; } .org-src-container:has(pre.src-org):before { content: 'Org mode'; } .org-src-container:has(pre.src-oz):before { content: 'OZ'; } .org-src-container:has(pre.src-plantuml):before { content: 'Plantuml'; } .org-src-container:has(pre.src-processing):before { content: 'Processing.js'; } .org-src-container:has(pre.src-python):before { content: 'Python'; } .org-src-container:has(pre.src-R):before { content: 'R'; } .org-src-container:has(pre.src-ruby):before { content: 'Ruby'; } .org-src-container:has(pre.src-sass):before { content: 'Sass'; } .org-src-container:has(pre.src-scheme):before { content: 'Scheme'; } .org-src-container:has(pre.src-screen):before { content: 'Gnu Screen'; } .org-src-container:has(pre.src-sed):before { content: 'Sed'; } .org-src-container:has(pre.src-sh):before { content: 'shell'; } .org-src-container:has(pre.src-sql):before { content: 'SQL'; } .org-src-container:has(pre.src-sqlite):before { content: 'SQLite'; } /* additional languages in org.el's org-babel-load-languages alist */ .org-src-container:has(pre.src-forth):before { content: 'Forth'; } .org-src-container:has(pre.src-io):before { content: 'IO'; } .org-src-container:has(pre.src-J):before { content: 'J'; } .org-src-container:has(pre.src-makefile):before { content: 'Makefile'; } .org-src-container:has(pre.src-maxima):before { content: 'Maxima'; } .org-src-container:has(pre.src-perl):before { content: 'Perl'; } .org-src-container:has(pre.src-picolisp):before { content: 'Pico Lisp'; } .org-src-container:has(pre.src-scala):before { content: 'Scala'; } .org-src-container:has(pre.src-shell):before { content: 'Shell Script'; } .org-src-container:has(pre.src-ebnf2ps):before { content: 'ebfn2ps'; } /* additional language identifiers per "defun org-babel-execute" in ob-*.el */ .org-src-container:has(pre.src-cpp):before { content: 'C++'; } .org-src-container:has(pre.src-abc):before { content: 'ABC'; } .org-src-container:has(pre.src-coq):before { content: 'Coq'; } .org-src-container:has(pre.src-groovy):before { content: 'Groovy'; } /* additional language identifiers from org-babel-shell-names in ob-shell.el: ob-shell is the only babel language using a lambda to put the execution function name together. */ .org-src-container:has(pre.src-bash):before { content: 'bash'; } .org-src-container:has(pre.src-csh):before { content: 'csh'; } .org-src-container:has(pre.src-ash):before { content: 'ash'; } .org-src-container:has(pre.src-dash):before { content: 'dash'; } .org-src-container:has(pre.src-ksh):before { content: 'ksh'; } .org-src-container:has(pre.src-mksh):before { content: 'mksh'; } .org-src-container:has(pre.src-posh):before { content: 'posh'; } /* Additional Emacs modes also supported by the LaTeX listings package */ .org-src-container:has(pre.src-ada):before { content: 'Ada'; } .org-src-container:has(pre.src-asm):before { content: 'Assembler'; } .org-src-container:has(pre.src-caml):before { content: 'Caml'; } .org-src-container:has(pre.src-delphi):before { content: 'Delphi'; } .org-src-container:has(pre.src-html):before { content: 'HTML'; } .org-src-container:has(pre.src-idl):before { content: 'IDL'; } .org-src-container:has(pre.src-mercury):before { content: 'Mercury'; } .org-src-container:has(pre.src-metapost):before { content: 'MetaPost'; } .org-src-container:has(pre.src-modula-2):before { content: 'Modula-2'; } .org-src-container:has(pre.src-pascal):before { content: 'Pascal'; } .org-src-container:has(pre.src-ps):before { content: 'PostScript'; } .org-src-container:has(pre.src-prolog):before { content: 'Prolog'; } .org-src-container:has(pre.src-simula):before { content: 'Simula'; } .org-src-container:has(pre.src-tcl):before { content: 'tcl'; } .org-src-container:has(pre.src-tex):before { content: 'TeX'; } .org-src-container:has(pre.src-plain-tex):before { content: 'Plain TeX'; } .org-src-container:has(pre.src-verilog):before { content: 'Verilog'; } .org-src-container:has(pre.src-vhdl):before { content: 'VHDL'; } .org-src-container:has(pre.src-xml):before { content: 'XML'; } .org-src-container:has(pre.src-nxml):before { content: 'XML'; } /* add a generic configuration mode; LaTeX export needs an additional (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */ .org-src-container:has(pre.src-conf):before { content: 'Configuration File'; } .org-src-container:has(pre.src-conf-toml):before { content: 'TOML Configuration File'; } table { border-collapse:collapse; } caption.t-above { caption-side: top; } caption.t-bottom { caption-side: bottom; } td, th { vertical-align:top; } th.org-right { text-align: center; } th.org-left { text-align: center; } th.org-center { text-align: center; } td.org-right { text-align: right; } td.org-left { text-align: left; } td.org-center { text-align: center; } dt { font-weight: bold; } .footpara { display: inline; } .footdef { margin-bottom: 1em; } .figure { padding: 1em; } .figure p { text-align: center; } .equation-container { display: table; text-align: center; width: 100%; } .equation { vertical-align: middle; } .equation-label { display: table-cell; text-align: right; vertical-align: middle; } .inlinetask { padding: 10px; border: 2px outset #808080; margin: 10px; background: #ffffcc; } textarea { overflow-x: auto; } .linenr { font-size: smaller } .code-highlighted { background-color: #ffff00; } .org-info-js_info-navigation { border-style: none; } #org-info-js_console-label { font-size: 10px; font-weight: bold; white-space: nowrap; } .org-info-js_search-highlight { background-color: #ffff00; color: #000000; font-weight: bold; } .org-svg { } /* I extracted these from `org-html-htmlize-generate-css' */ .org-abbrev-table-name { /* abbrev-table-name */ color: #004fc0; font-weight: bold; } .org-ansi-color-black { /* ansi-color-black */ color: #000000; background-color: #000000; } .org-ansi-color-blue { /* ansi-color-blue */ color: #004fc0; background-color: #004fc0; } .org-ansi-color-bold { /* ansi-color-bold */ font-weight: bold; } .org-ansi-color-bright-black { /* ansi-color-bright-black */ color: #595959; background-color: #595959; } .org-ansi-color-bright-blue { /* ansi-color-bright-blue */ color: #4244ef; background-color: #4244ef; } .org-ansi-color-bright-cyan { /* ansi-color-bright-cyan */ color: #007a85; background-color: #007a85; } .org-ansi-color-bright-green { /* ansi-color-bright-green */ color: #00845f; background-color: #00845f; } .org-ansi-color-bright-magenta { /* ansi-color-bright-magenta */ color: #7f5ae0; background-color: #7f5ae0; } .org-ansi-color-bright-red { /* ansi-color-bright-red */ color: #d03003; background-color: #d03003; } .org-ansi-color-bright-white { /* ansi-color-bright-white */ color: #ffffff; background-color: #ffffff; } .org-ansi-color-bright-yellow { /* ansi-color-bright-yellow */ color: #b6532f; background-color: #b6532f; } .org-ansi-color-cyan { /* ansi-color-cyan */ color: #1f6fbf; background-color: #1f6fbf; } .org-ansi-color-faint { } .org-ansi-color-fast-blink { } .org-ansi-color-green { /* ansi-color-green */ color: #008a00; background-color: #008a00; } .org-ansi-color-inverse { } .org-ansi-color-italic { /* ansi-color-italic */ font-style: italic; } .org-ansi-color-magenta { /* ansi-color-magenta */ color: #aa44c5; background-color: #aa44c5; } .org-ansi-color-red { /* ansi-color-red */ color: #c42d2f; background-color: #c42d2f; } .org-ansi-color-slow-blink { } .org-ansi-color-underline { /* ansi-color-underline */ text-decoration: underline; } .org-ansi-color-white { /* ansi-color-white */ color: #a6a6a6; background-color: #a6a6a6; } .org-ansi-color-yellow { /* ansi-color-yellow */ color: #aa6100; background-color: #aa6100; } .org-blink-matching-paren-offscreen { /* blink-matching-paren-offscreen */ background-color: #cab0ef; } .org-bold { /* bold */ font-weight: bold; } .org-bookmark { /* bookmark-face */ color: #008a00; } .org-bookmark-menu-bookmark { /* bookmark-menu-bookmark */ color: #3a6dd2; } .org-border { } .org-bracket { /* font-lock-bracket-face */ color: #232323; } .org-breadcrumb { /* breadcrumb-face */ color: #204f9a; } .org-breadcrumb-imenu-crumbs { /* breadcrumb-imenu-crumbs-face */ color: #204f9a; } .org-breadcrumb-imenu-leaf { /* breadcrumb-imenu-leaf-face */ color: #002580; } .org-breadcrumb-project-base { /* breadcrumb-project-base-face */ color: #204f9a; } .org-breadcrumb-project-crumbs { /* breadcrumb-project-crumbs-face */ color: #204f9a; } .org-breadcrumb-project-leaf { } .org-browse-url-button { /* browse-url-button */ color: #1f6fbf; text-decoration: underline; } .org-buffer-menu-buffer { /* buffer-menu-buffer */ color: #3a6dd2; } .org-bui-action-button { /* bui-action-button */ color: #232323; background-color: #b5b8b8; } .org-bui-action-button-mouse { /* bui-action-button-mouse */ color: #232323; background-color: #eab5ff; } .org-bui-file-name { /* bui-file-name */ color: #1f6fbf; text-decoration: underline; } .org-bui-hint-key { /* bui-hint-key */ color: #996c4f; } .org-bui-history-button { /* bui-history-button */ color: #1f6fbf; text-decoration: underline; } .org-bui-info-heading { /* bui-info-heading */ font-size: 120%; font-weight: bold; } .org-bui-info-param-title { /* bui-info-param-title */ color: #7f5ae0; } .org-bui-time { /* bui-time */ color: #065fff; } .org-bui-url { /* bui-url */ color: #1f6fbf; text-decoration: underline; } .org-builtin { /* font-lock-builtin-face */ color: #1f6fbf; } .org-button { /* button */ color: #1f6fbf; text-decoration: underline; } .org-c-annotation { /* c-annotation-face */ color: #065fff; } .org-calc-nonselected { /* calc-nonselected-face */ color: #66657f; font-style: italic; } .org-calc-selected { /* calc-selected-face */ font-weight: bold; } .org-calendar-month-header { } .org-calendar-today { /* calendar-today */ color: #232323; } .org-calendar-weekday-header { /* calendar-weekday-header */ color: #1f6fbf; } .org-calendar-weekend-header { /* calendar-weekend-header */ color: #9a4366; } .org-change-log-acknowledgment { /* change-log-acknowledgment */ color: #605f9f; } .org-change-log-conditionals { /* change-log-conditionals */ color: #c42d2f; } .org-change-log-date { /* change-log-date */ color: #007a85; } .org-change-log-email { /* change-log-email */ color: #204f9a; } .org-change-log-file { } .org-change-log-function { /* change-log-function */ color: #996c4f; } .org-change-log-list { } .org-change-log-name { /* change-log-name */ color: #3a6dd2; } .org-child-frame-border { /* child-frame-border */ background-color: #b0b7c0; } .org-comint-highlight-input { } .org-comint-highlight-prompt { /* comint-highlight-prompt */ color: #1f6fbf; } .org-comment { /* font-lock-comment-face */ color: #7a5f2f; } .org-comment-delimiter { /* font-lock-comment-delimiter-face */ color: #7a5f2f; } .org-compilation-column-number { /* compilation-column-number */ color: #66657f; } .org-compilation-error { /* compilation-error */ color: #c42d2f; } .org-compilation-info { /* compilation-info */ color: #008a00; } .org-compilation-line-number { /* compilation-line-number */ color: #66657f; } .org-compilation-mode-line-exit { } .org-compilation-mode-line-fail { /* compilation-mode-line-fail */ color: #7f0000; } .org-compilation-mode-line-run { /* compilation-mode-line-run */ color: #5f0070; } .org-compilation-warning { /* compilation-warning */ color: #996c4f; } .org-completion-preview { /* completion-preview */ color: #66657f; } .org-completion-preview-common { /* completion-preview-common */ color: #66657f; text-decoration: underline; } .org-completion-preview-highlight { /* completion-preview-highlight */ color: #232323; background-color: #eab5ff; } .org-completions-annotations { /* completions-annotations */ color: #605f9f; } .org-completions-common-part { /* completions-common-part */ color: #4244ef; font-weight: bold; } .org-completions-first-difference { /* completions-first-difference */ color: #00845f; font-weight: bold; } .org-completions-group-separator { /* completions-group-separator */ color: #66657f; text-decoration: line-through; } .org-completions-group-title { /* completions-group-title */ color: #66657f; font-style: italic; } .org-completions-highlight { /* completions-highlight */ background-color: #cceff5; font-weight: bold; } .org-confusingly-reordered { /* confusingly-reordered */ text-decoration: underline; } .org-constant { /* font-lock-constant-face */ color: #065fff; } .org-consult-async-failed { /* consult-async-failed */ color: #c42d2f; } .org-consult-async-finished { /* consult-async-finished */ color: #008a00; } .org-consult-async-option { /* consult-async-option */ color: #996c4f; } .org-consult-async-running { /* consult-async-running */ color: #996c4f; } .org-consult-async-split { /* consult-async-split */ color: #c42d2f; } .org-consult-bookmark { /* consult-bookmark */ color: #065fff; } .org-consult-buffer { } .org-consult-file { /* consult-file */ color: #008a00; } .org-consult-grep-context { /* consult-grep-context */ color: #66657f; } .org-consult-help { /* consult-help */ color: #66657f; } .org-consult-highlight-mark { /* consult-highlight-mark */ color: #232323; background-color: #ffe9bf; } .org-consult-highlight-match { /* consult-highlight-match */ color: #232323; background-color: #ffe9bf; } .org-consult-line-number { /* consult-line-number */ color: #66657f; } .org-consult-line-number-prefix { /* consult-line-number-prefix */ color: #66657f; } .org-consult-line-number-wrapped { /* consult-line-number-wrapped */ color: #996c4f; } .org-consult-narrow-indicator { /* consult-narrow-indicator */ color: #996c4f; } .org-consult-preview-insertion { /* consult-preview-insertion */ background-color: #eaefef; } .org-consult-preview-line { /* consult-preview-line */ background-color: #eaefef; } .org-consult-preview-match { /* consult-preview-match */ color: #232323; background-color: #fac200; } .org-consult-separator { /* consult-separator */ color: #ccc; } .org-css-property { /* css-property */ color: #004fc0; } .org-css-selector { /* css-selector */ color: #00845f; } .org-cursor { /* cursor */ background-color: #0055bb; } .org-custom-button { /* custom-button */ color: #232323; background-color: #b5b8b8; } .org-custom-button-mouse { /* custom-button-mouse */ color: #232323; background-color: #eab5ff; } .org-custom-button-pressed { /* custom-button-pressed */ color: #232323; background-color: #fcffff; } .org-custom-button-pressed-unraised { /* custom-button-pressed-unraised */ color: #8b008b; text-decoration: underline; } .org-custom-button-unraised { /* custom-button-unraised */ text-decoration: underline; } .org-custom-changed { /* custom-changed */ background-color: #f4e8bd; } .org-custom-comment { /* custom-comment */ color: #7a5f2f; } .org-custom-comment-tag { /* custom-comment-tag */ color: #7a5f2f; } .org-custom-documentation { } .org-custom-face-tag { /* custom-face-tag */ color: #7f5ae0; } .org-custom-group-subtitle { /* custom-group-subtitle */ font-weight: bold; } .org-custom-group-tag { /* custom-group-tag */ color: #1f6fbf; } .org-custom-group-tag-1 { /* custom-group-tag-1 */ color: #065fff; } .org-custom-invalid { /* custom-invalid */ color: #c42d2f; text-decoration: line-through; } .org-custom-link { /* custom-link */ color: #1f6fbf; text-decoration: underline; } .org-custom-modified { /* custom-modified */ background-color: #f4e8bd; } .org-custom-rogue { /* custom-rogue */ color: #c42d2f; text-decoration: line-through; } .org-custom-saved { /* custom-saved */ text-decoration: underline; } .org-custom-set { /* custom-set */ color: #008a00; } .org-custom-state { /* custom-state */ color: #996c4f; } .org-custom-themed { /* custom-themed */ background-color: #f4e8bd; } .org-custom-variable-button { /* custom-variable-button */ font-weight: bold; text-decoration: underline; } .org-custom-variable-obsolete { /* custom-variable-obsolete */ color: #66657f; } .org-custom-variable-tag { /* custom-variable-tag */ color: #3a6dd2; } .org-custom-visibility { /* custom-visibility */ color: #1f6fbf; font-size: 80%; text-decoration: underline; } .org-default { /* default */ color: #232323; background-color: #fcffff; } .org-delimiter { /* font-lock-delimiter-face */ color: #232323; } .org-diary { /* diary */ color: #007a85; } .org-diary-anniversary { /* diary-anniversary */ color: #c0469a; } .org-diary-button { } .org-diary-time { /* diary-time */ color: #007a85; } .org-diff-added { /* diff-added */ color: #004840; background-color: #c9ffea; } .org-diff-changed { /* diff-changed */ color: #553d00; background-color: #f4e8bd; } .org-diff-changed-unspecified { /* diff-changed-unspecified */ color: #553d00; background-color: #f4e8bd; } .org-diff-context { } .org-diff-error { /* diff-error */ color: #c42d2f; } .org-diff-file-header { } .org-diff-function { /* diff-function */ background-color: #f7f9f9; } .org-diff-header { } .org-diff-hunk-header { /* diff-hunk-header */ background-color: #f7f9f9; } .org-diff-index { } .org-diff-indicator-added { /* diff-indicator-added */ color: #006700; background-color: #c9ffea; } .org-diff-indicator-changed { /* diff-indicator-changed */ color: #655000; background-color: #f4e8bd; } .org-diff-indicator-removed { /* diff-indicator-removed */ color: #aa2222; background-color: #ffd6e0; } .org-diff-nonexistent { } .org-diff-refine-added { /* diff-refine-added */ color: #004840; background-color: #b3efdf; } .org-diff-refine-changed { /* diff-refine-changed */ color: #553d00; background-color: #efd299; } .org-diff-refine-removed { /* diff-refine-removed */ color: #8f1313; background-color: #f5bfc8; } .org-diff-removed { /* diff-removed */ color: #8f1313; background-color: #ffd6e0; } .org-dired-broken-symlink { /* dired-broken-symlink */ color: #c42d2f; text-decoration: underline; } .org-dired-directory { /* dired-directory */ color: #4244ef; } .org-dired-flagged { /* dired-flagged */ color: #c42d2f; background-color: #ffdfda; font-weight: bold; } .org-dired-header { } .org-dired-ignored { /* dired-ignored */ color: #66657f; } .org-dired-mark { } .org-dired-marked { /* dired-marked */ color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-dired-perm-write { /* dired-perm-write */ color: #66657f; } .org-dired-set-id { /* dired-set-id */ color: #996c4f; } .org-dired-special { /* dired-special */ color: #3a6dd2; } .org-dired-symlink { /* dired-symlink */ color: #204f9a; text-decoration: underline; } .org-dired-warning { /* dired-warning */ color: #996c4f; } .org-display-time-date-and-time { } .org-doc { /* font-lock-doc-face */ color: #605f9f; } .org-doc-markup { /* font-lock-doc-markup-face */ color: #605f9f; } .org-doc-view-svg { /* doc-view-svg-face */ color: #000000; background-color: #ffffff; } .org-ecfpawXscratch-buffer-subtitle { } .org-ecfpawXscratch-buffer-title { /* ECFPAW/scratch-buffer-title */ font-size: 200%; font-style: italic; } .org-edebug-disabled-breakpoint { /* edebug-disabled-breakpoint */ background-color: #ddffdd; } .org-edebug-enabled-breakpoint { /* edebug-enabled-breakpoint */ color: #232323; background-color: #eab5ff; } .org-ediff-current-diff-a { /* ediff-current-diff-A */ color: #8f1313; background-color: #ffd6e0; } .org-ediff-current-diff-ancestor { /* ediff-current-diff-Ancestor */ background-color: #d4eaf3; } .org-ediff-current-diff-b { /* ediff-current-diff-B */ color: #004840; background-color: #c9ffea; } .org-ediff-current-diff-c { /* ediff-current-diff-C */ color: #553d00; background-color: #f4e8bd; } .org-ediff-even-diff-a { /* ediff-even-diff-A */ background-color: #eaefef; } .org-ediff-even-diff-ancestor { /* ediff-even-diff-Ancestor */ background-color: #eaefef; } .org-ediff-even-diff-b { /* ediff-even-diff-B */ background-color: #eaefef; } .org-ediff-even-diff-c { /* ediff-even-diff-C */ background-color: #eaefef; } .org-ediff-fine-diff-a { /* ediff-fine-diff-A */ color: #8f1313; background-color: #f5bfc8; } .org-ediff-fine-diff-ancestor { /* ediff-fine-diff-Ancestor */ color: #232323; background-color: #b5b8b8; } .org-ediff-fine-diff-b { /* ediff-fine-diff-B */ color: #004840; background-color: #b3efdf; } .org-ediff-fine-diff-c { /* ediff-fine-diff-C */ color: #553d00; background-color: #efd299; } .org-ediff-odd-diff-a { /* ediff-odd-diff-A */ background-color: #eaefef; } .org-ediff-odd-diff-ancestor { /* ediff-odd-diff-Ancestor */ background-color: #eaefef; } .org-ediff-odd-diff-b { /* ediff-odd-diff-B */ background-color: #eaefef; } .org-ediff-odd-diff-c { /* ediff-odd-diff-C */ background-color: #eaefef; } .org-edit-indirect-edited-region { /* edit-indirect-edited-region */ color: #232323; background-color: #aae0bf; } .org-edmacro-label { /* edmacro-label */ color: #4244ef; } .org-eldoc-highlight-function-argument { /* eldoc-highlight-function-argument */ color: #996c4f; background-color: #ffe9bf; } .org-elisp-shorthand-font-lock { /* elisp-shorthand-font-lock-face */ color: #aa44c5; } .org-error { /* error */ color: #c42d2f; } .org-ert-test-result-expected { /* ert-test-result-expected */ color: #008a00; background-color: #ccefcf; } .org-ert-test-result-unexpected { /* ert-test-result-unexpected */ color: #c42d2f; background-color: #ffdfda; } .org-escape { /* font-lock-escape-face */ color: #aa44c5; } .org-escape-glyph { /* escape-glyph */ color: #065fff; } .org-eww-form-checkbox { /* eww-form-checkbox */ color: #232323; background-color: #eaefef; } .org-eww-form-file { /* eww-form-file */ color: #232323; background-color: #b5b8b8; } .org-eww-form-select { /* eww-form-select */ color: #232323; background-color: #b5b8b8; } .org-eww-form-submit { /* eww-form-submit */ color: #232323; background-color: #b5b8b8; } .org-eww-form-text { /* eww-form-text */ color: #232323; background-color: #eaefef; text-decoration: underline; } .org-eww-form-textarea { /* eww-form-textarea */ color: #232323; background-color: #eaefef; text-decoration: underline; } .org-eww-invalid-certificate { /* eww-invalid-certificate */ color: #c42d2f; } .org-eww-valid-certificate { /* eww-valid-certificate */ color: #008a00; } .org-ffap { /* ffap */ color: #232323; background-color: #eab5ff; } .org-file-name-shadow { /* file-name-shadow */ color: #66657f; } .org-fill-column-indicator { /* fill-column-indicator */ color: #b5b8b8; background-color: #b5b8b8; } .org-fixed-pitch { } .org-fixed-pitch-serif { } .org-flyspell-duplicate { /* flyspell-duplicate */ text-decoration: underline; } .org-flyspell-incorrect { /* flyspell-incorrect */ text-decoration: underline; } .org-fringe { /* fringe */ color: #232323; } .org-function-call { /* font-lock-function-call-face */ color: #517f3c; } .org-function-name { /* font-lock-function-name-face */ color: #00845f; } .org-geiser-font-lock-autodoc-current-arg { /* geiser-font-lock-autodoc-current-arg */ color: #996c4f; background-color: #ffe9bf; } .org-geiser-font-lock-autodoc-identifier { /* geiser-font-lock-autodoc-identifier */ color: #605f9f; } .org-geiser-font-lock-doc-button { /* geiser-font-lock-doc-button */ color: #1f6fbf; text-decoration: underline; } .org-geiser-font-lock-doc-link { /* geiser-font-lock-doc-link */ color: #1f6fbf; text-decoration: underline; } .org-geiser-font-lock-doc-title { /* geiser-font-lock-doc-title */ font-weight: bold; } .org-geiser-font-lock-error-link { /* geiser-font-lock-error-link */ color: #c42d2f; text-decoration: underline; } .org-geiser-font-lock-image-button { /* geiser-font-lock-image-button */ color: #008a00; text-decoration: underline; } .org-geiser-font-lock-repl-input { } .org-geiser-font-lock-repl-output { /* geiser-font-lock-repl-output */ color: #004fc0; } .org-geiser-font-lock-repl-prompt { /* geiser-font-lock-repl-prompt */ color: #1f6fbf; } .org-geiser-font-lock-xref-header { } .org-geiser-font-lock-xref-link { /* geiser-font-lock-xref-link */ color: #1f6fbf; text-decoration: underline; } .org-git-commit-comment-action { /* git-commit-comment-action */ color: #7a5f2f; } .org-git-commit-comment-branch-local { /* git-commit-comment-branch-local */ color: #4244ef; } .org-git-commit-comment-branch-remote { /* git-commit-comment-branch-remote */ color: #00845f; } .org-git-commit-comment-detached { /* git-commit-comment-detached */ color: #4244ef; } .org-git-commit-comment-file { /* git-commit-comment-file */ color: #c0469a; } .org-git-commit-keyword { /* git-commit-keyword */ color: #004fc0; } .org-git-commit-nonempty-second-line { /* git-commit-nonempty-second-line */ color: #c42d2f; } .org-git-commit-overlong-summary { /* git-commit-overlong-summary */ color: #996c4f; } .org-git-commit-summary { /* git-commit-summary */ color: #204f9a; } .org-git-commit-trailer-token { /* git-commit-trailer-token */ color: #004fc0; } .org-git-commit-trailer-value { /* git-commit-trailer-value */ color: #4244ef; } .org-glyphless-char { /* glyphless-char */ font-size: 60%; } .org-grep-heading { /* grep-heading */ color: #008a00; } .org-hbut { /* hbut-face */ color: #232323; background-color: #b5b8b8; } .org-hbut-flash { /* hbut-flash */ color: #232323; background-color: #ff8f88; } .org-hbut-item { /* hbut-item-face */ color: #008a00; } .org-header-line { /* header-line */ background-color: #eaefef; } .org-header-line-active { /* header-line-active */ background-color: #eaefef; } .org-header-line-highlight { /* header-line-highlight */ color: #232323; background-color: #eab5ff; } .org-header-line-inactive { /* header-line-inactive */ color: #66657f; background-color: #eaefef; } .org-help-argument-name { /* help-argument-name */ color: #3a6dd2; } .org-help-for-help-header { /* help-for-help-header */ font-size: 126%; } .org-hi-aquamarine { /* hi-aquamarine */ color: #232323; background-color: #88c8ff; } .org-hi-black-b { /* hi-black-b */ color: #fcffff; background-color: #232323; } .org-hi-black-hb { /* hi-black-hb */ color: #fcffff; background-color: #204f9a; } .org-hi-blue { /* hi-blue */ color: #232323; background-color: #baeeff; } .org-hi-blue-b { /* hi-blue-b */ color: #232323; background-color: #cbcfff; } .org-hi-green { /* hi-green */ color: #232323; background-color: #b3f6d0; } .org-hi-green-b { /* hi-green-b */ color: #232323; background-color: #8adf90; } .org-hi-pink { /* hi-pink */ color: #232323; background-color: #df8fff; } .org-hi-red-b { /* hi-red-b */ color: #232323; background-color: #ff8f88; } .org-hi-salmon { /* hi-salmon */ color: #63192a; background-color: #f1c8b5; } .org-hi-yellow { /* hi-yellow */ color: #232323; background-color: #fac200; } .org-highlight { /* highlight */ color: #232323; background-color: #eab5ff; } .org-hl-line { /* hl-line */ background-color: #dff6e4; } .org-holiday { /* holiday */ color: #c0469a; } .org-homoglyph { /* homoglyph */ color: #996c4f; } .org-ibut { /* ibut-face */ color: #204f9a; text-decoration: underline; } .org-icomplete-first-match { /* icomplete-first-match */ color: #4244ef; font-weight: bold; } .org-icomplete-section { /* icomplete-section */ color: #66657f; font-style: italic; } .org-icomplete-selected-match { /* icomplete-selected-match */ background-color: #cceff5; font-weight: bold; } .org-icomplete-vertical-selected-prefix-indicator { /* icomplete-vertical-selected-prefix-indicator-face */ color: #065fff; } .org-icomplete-vertical-unselected-prefix-indicator { /* icomplete-vertical-unselected-prefix-indicator-face */ color: #66657f; } .org-icon { } .org-icon-button { /* icon-button */ color: #232323; background-color: #b5b8b8; } .org-info-header-node { /* info-header-node */ color: #66657f; } .org-info-header-xref { /* info-header-xref */ color: #1f6fbf; } .org-info-index-match { /* info-index-match */ color: #232323; background-color: #ffe9bf; } .org-info-menu-header { /* info-menu-header */ color: #4244ef; font-weight: bold; } .org-info-menu-star { /* info-menu-star */ color: #c42d2f; } .org-info-node { } .org-info-quoted { /* Info-quoted */ color: #c0469a; } .org-info-title-1 { /* info-title-1 */ color: #004fc0; font-weight: bold; } .org-info-title-2 { /* info-title-2 */ color: #00845f; font-weight: bold; } .org-info-title-3 { /* info-title-3 */ color: #7f5ae0; font-weight: bold; } .org-info-title-4 { /* info-title-4 */ color: #1f6fbf; font-weight: bold; } .org-info-xref { /* info-xref */ color: #1f6fbf; text-decoration: underline; } .org-internal-border { } .org-isearch { /* isearch */ color: #232323; background-color: #fac200; } .org-isearch-fail { /* isearch-fail */ color: #c42d2f; background-color: #ffdfda; } .org-isearch-group-1 { /* isearch-group-1 */ color: #232323; background-color: #df8fff; } .org-isearch-group-2 { /* isearch-group-2 */ color: #232323; background-color: #8adf90; } .org-italic { /* italic */ font-style: italic; } .org-keyword { /* font-lock-keyword-face */ color: #004fc0; } .org-kmacro-menu-flagged { /* kmacro-menu-flagged */ color: #c42d2f; background-color: #ffdfda; font-weight: bold; } .org-kmacro-menu-mark { } .org-kmacro-menu-marked { /* kmacro-menu-marked */ color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-lazy-highlight { /* lazy-highlight */ color: #232323; background-color: #cbcfff; } .org-link { /* link */ color: #1f6fbf; text-decoration: underline; } .org-link-visited { /* link-visited */ color: #aa44c5; text-decoration: underline; } .org-llama-XX-macro { /* llama-\#\#-macro */ color: #517f3c; } .org-llama-deleted-argument { } .org-llama-llama-macro { /* llama-llama-macro */ color: #004fc0; } .org-llama-mandatory-argument { /* llama-mandatory-argument */ color: #305f9f; } .org-llama-optional-argument { /* llama-optional-argument */ color: #7f5ae0; } .org-log-edit-header { } .org-log-edit-headers-separator { /* log-edit-headers-separator */ background-color: #b0b7c0; } .org-log-edit-summary { /* log-edit-summary */ color: #204f9a; } .org-log-edit-unknown-header { /* log-edit-unknown-header */ color: #66657f; } .org-log-view-commit-body { } .org-log-view-file { } .org-log-view-message { /* log-view-message */ color: #605f9f; } .org-magit-bisect-bad { /* magit-bisect-bad */ color: #c42d2f; } .org-magit-bisect-good { /* magit-bisect-good */ color: #008a00; } .org-magit-bisect-skip { /* magit-bisect-skip */ color: #996c4f; } .org-magit-blame-date { } .org-magit-blame-dimmed { /* magit-blame-dimmed */ color: #66657f; } .org-magit-blame-hash { } .org-magit-blame-heading { /* magit-blame-heading */ color: #232323; background-color: #b5b8b8; } .org-magit-blame-highlight { /* magit-blame-highlight */ color: #232323; background-color: #b5b8b8; } .org-magit-blame-margin { /* magit-blame-margin */ color: #232323; background-color: #b5b8b8; } .org-magit-blame-name { } .org-magit-blame-summary { } .org-magit-branch-current { /* magit-branch-current */ color: #4244ef; } .org-magit-branch-local { /* magit-branch-local */ color: #4244ef; } .org-magit-branch-remote { /* magit-branch-remote */ color: #00845f; } .org-magit-branch-remote-head { /* magit-branch-remote-head */ color: #00845f; } .org-magit-branch-upstream { } .org-magit-branch-warning { /* magit-branch-warning */ color: #996c4f; } .org-magit-cherry-equivalent { } .org-magit-cherry-unmatched { /* magit-cherry-unmatched */ color: #c42d2f; } .org-magit-diff-added { /* magit-diff-added */ color: #004840; background-color: #d7fff5; } .org-magit-diff-added-highlight { /* magit-diff-added-highlight */ color: #004840; background-color: #c9ffea; } .org-magit-diff-base { /* magit-diff-base */ color: #553d00; background-color: #f9efcb; } .org-magit-diff-base-highlight { /* magit-diff-base-highlight */ color: #553d00; background-color: #f4e8bd; } .org-magit-diff-conflict-heading { /* magit-diff-conflict-heading */ background-color: #f7f9f9; } .org-magit-diff-conflict-heading-highlight { /* magit-diff-conflict-heading-highlight */ background-color: #b5b8b8; } .org-magit-diff-context { /* magit-diff-context */ color: #66657f; } .org-magit-diff-context-highlight { /* magit-diff-context-highlight */ background-color: #eaefef; } .org-magit-diff-file-heading { /* magit-diff-file-heading */ color: #4244ef; } .org-magit-diff-file-heading-highlight { /* magit-diff-file-heading-highlight */ color: #4244ef; background-color: #d7dbdb; } .org-magit-diff-file-heading-selection { /* magit-diff-file-heading-selection */ background-color: #aae0bf; } .org-magit-diff-hunk-heading { /* magit-diff-hunk-heading */ background-color: #f7f9f9; } .org-magit-diff-hunk-heading-highlight { /* magit-diff-hunk-heading-highlight */ background-color: #b5b8b8; } .org-magit-diff-hunk-heading-selection { /* magit-diff-hunk-heading-selection */ background-color: #aae0bf; } .org-magit-diff-hunk-region { } .org-magit-diff-lines-boundary { /* magit-diff-lines-boundary */ background-color: #232323; } .org-magit-diff-lines-heading { /* magit-diff-lines-heading */ color: #fcffff; background-color: #66657f; } .org-magit-diff-our { /* magit-diff-our */ color: #8f1313; background-color: #ffe9e6; } .org-magit-diff-our-highlight { /* magit-diff-our-highlight */ color: #8f1313; background-color: #ffd6e0; } .org-magit-diff-removed { /* magit-diff-removed */ color: #8f1313; background-color: #ffe9e6; } .org-magit-diff-removed-highlight { /* magit-diff-removed-highlight */ color: #8f1313; background-color: #ffd6e0; } .org-magit-diff-revision-summary { /* magit-diff-revision-summary */ background-color: #f7f9f9; } .org-magit-diff-revision-summary-highlight { /* magit-diff-revision-summary-highlight */ background-color: #b5b8b8; } .org-magit-diff-their { /* magit-diff-their */ color: #004840; background-color: #d7fff5; } .org-magit-diff-their-highlight { /* magit-diff-their-highlight */ color: #004840; background-color: #c9ffea; } .org-magit-diff-whitespace-warning { /* magit-diff-whitespace-warning */ background-color: #fac200; } .org-magit-diffstat-added { /* magit-diffstat-added */ color: #006700; } .org-magit-diffstat-removed { /* magit-diffstat-removed */ color: #aa2222; } .org-magit-dimmed { /* magit-dimmed */ color: #66657f; } .org-magit-filename { /* magit-filename */ color: #c0469a; } .org-magit-hash { /* magit-hash */ color: #605f9f; } .org-magit-head { /* magit-head */ color: #4244ef; } .org-magit-header-line { } .org-magit-header-line-log-select { } .org-magit-keyword { /* magit-keyword */ color: #004fc0; } .org-magit-keyword-squash { /* magit-keyword-squash */ color: #996c4f; } .org-magit-left-margin { /* magit-left-margin */ color: #232323; background-color: #fcffff; } .org-magit-log-author { /* magit-log-author */ color: #3a6dd2; } .org-magit-log-date { /* magit-log-date */ color: #007a85; } .org-magit-log-graph { /* magit-log-graph */ color: #66657f; } .org-magit-mode-line-process { /* magit-mode-line-process */ color: #002580; } .org-magit-mode-line-process-error { /* magit-mode-line-process-error */ color: #7f0000; } .org-magit-popup-argument { /* magit-popup-argument */ color: #996c4f; } .org-magit-popup-disabled-argument { /* magit-popup-disabled-argument */ color: #66657f; } .org-magit-popup-heading { /* magit-popup-heading */ color: #004fc0; } .org-magit-popup-key { /* magit-popup-key */ color: #1f6fbf; } .org-magit-popup-option-value { /* magit-popup-option-value */ color: #4244ef; } .org-magit-process-ng { /* magit-process-ng */ color: #c42d2f; } .org-magit-process-ok { /* magit-process-ok */ color: #008a00; } .org-magit-reflog-amend { /* magit-reflog-amend */ color: #996c4f; } .org-magit-reflog-checkout { } .org-magit-reflog-cherry-pick { /* magit-reflog-cherry-pick */ color: #008a00; } .org-magit-reflog-commit { } .org-magit-reflog-merge { /* magit-reflog-merge */ color: #008a00; } .org-magit-reflog-other { /* magit-reflog-other */ color: #065fff; } .org-magit-reflog-rebase { /* magit-reflog-rebase */ color: #c0469a; } .org-magit-reflog-remote { /* magit-reflog-remote */ color: #00845f; } .org-magit-reflog-reset { /* magit-reflog-reset */ color: #c42d2f; } .org-magit-refname { /* magit-refname */ color: #66657f; } .org-magit-refname-pullreq { /* magit-refname-pullreq */ color: #66657f; } .org-magit-refname-stash { /* magit-refname-stash */ color: #66657f; } .org-magit-refname-wip { /* magit-refname-wip */ color: #66657f; } .org-magit-section-child-count { } .org-magit-section-heading { /* magit-section-heading */ color: #204f9a; } .org-magit-section-heading-selection { /* magit-section-heading-selection */ background-color: #aae0bf; } .org-magit-section-highlight { /* magit-section-highlight */ background-color: #d7dbdb; } .org-magit-section-secondary-heading { } .org-magit-sequence-done { /* magit-sequence-done */ color: #008a00; } .org-magit-sequence-drop { /* magit-sequence-drop */ color: #c42d2f; } .org-magit-sequence-exec { } .org-magit-sequence-head { /* magit-sequence-head */ color: #4244ef; } .org-magit-sequence-onto { /* magit-sequence-onto */ color: #66657f; } .org-magit-sequence-part { /* magit-sequence-part */ color: #996c4f; } .org-magit-sequence-pick { } .org-magit-sequence-stop { /* magit-sequence-stop */ color: #c42d2f; } .org-magit-signature-bad { /* magit-signature-bad */ color: #c42d2f; } .org-magit-signature-error { /* magit-signature-error */ color: #c42d2f; } .org-magit-signature-expired { /* magit-signature-expired */ color: #996c4f; } .org-magit-signature-expired-key { /* magit-signature-expired-key */ color: #996c4f; } .org-magit-signature-good { /* magit-signature-good */ color: #008a00; } .org-magit-signature-revoked { /* magit-signature-revoked */ color: #996c4f; } .org-magit-signature-untrusted { /* magit-signature-untrusted */ color: #66657f; } .org-magit-tag { /* magit-tag */ color: #065fff; } .org-makefile-makepp-perl { /* makefile-makepp-perl */ background-color: #eaefef; } .org-makefile-shell { /* makefile-shell */ color: #232323; background-color: #fcffff; } .org-makefile-space { /* makefile-space */ background-color: #f7f9f9; } .org-makefile-targets { /* makefile-targets */ color: #00845f; } .org-man-overstrike { /* Man-overstrike */ color: #4244ef; font-weight: bold; } .org-man-reverse { /* Man-reverse */ color: #232323; background-color: #eab5ff; } .org-man-underline { /* Man-underline */ color: #00845f; text-decoration: underline; } .org-marginalia-archive { /* marginalia-archive */ color: #4244ef; } .org-marginalia-char { /* marginalia-char */ color: #c0469a; } .org-marginalia-date { /* marginalia-date */ color: #007a85; } .org-marginalia-documentation { /* marginalia-documentation */ color: #605f9f; } .org-marginalia-file-name { /* marginalia-file-name */ color: #66657f; } .org-marginalia-file-owner { /* marginalia-file-owner */ color: #66657f; } .org-marginalia-file-priv-dir { /* marginalia-file-priv-dir */ color: #4244ef; } .org-marginalia-file-priv-exec { /* marginalia-file-priv-exec */ color: #00845f; } .org-marginalia-file-priv-link { /* marginalia-file-priv-link */ color: #1f6fbf; } .org-marginalia-file-priv-no { /* marginalia-file-priv-no */ color: #66657f; } .org-marginalia-file-priv-other { /* marginalia-file-priv-other */ color: #c0469a; } .org-marginalia-file-priv-rare { /* marginalia-file-priv-rare */ color: #065fff; } .org-marginalia-file-priv-read { /* marginalia-file-priv-read */ color: #232323; } .org-marginalia-file-priv-write { /* marginalia-file-priv-write */ color: #4244ef; } .org-marginalia-function { /* marginalia-function */ color: #00845f; } .org-marginalia-installed { /* marginalia-installed */ color: #008a00; } .org-marginalia-lighter { /* marginalia-lighter */ color: #66657f; } .org-marginalia-list { /* marginalia-list */ color: #065fff; } .org-marginalia-mode { /* marginalia-mode */ color: #065fff; } .org-marginalia-modified { /* marginalia-modified */ color: #996c4f; } .org-marginalia-null { /* marginalia-null */ color: #66657f; } .org-marginalia-number { /* marginalia-number */ color: #065fff; } .org-marginalia-off { /* marginalia-off */ color: #c42d2f; } .org-marginalia-on { /* marginalia-on */ color: #008a00; } .org-marginalia-size { /* marginalia-size */ color: #3a6dd2; } .org-marginalia-string { /* marginalia-string */ color: #4244ef; } .org-marginalia-symbol { /* marginalia-symbol */ color: #1f6fbf; } .org-marginalia-true { } .org-marginalia-type { /* marginalia-type */ color: #7f5ae0; } .org-marginalia-value { /* marginalia-value */ color: #66657f; } .org-marginalia-version { /* marginalia-version */ color: #007a85; } .org-markdown-blockquote { /* markdown-blockquote-face */ color: #605f9f; } .org-markdown-bold { /* markdown-bold-face */ font-weight: bold; } .org-markdown-code { /* markdown-code-face */ background-color: #eaefef; } .org-markdown-comment { /* markdown-comment-face */ color: #7a5f2f; } .org-markdown-footnote-marker { /* markdown-footnote-marker-face */ color: #66657f; } .org-markdown-footnote-text { /* markdown-footnote-text-face */ color: #7a5f2f; } .org-markdown-gfm-checkbox { /* markdown-gfm-checkbox-face */ color: #996c4f; } .org-markdown-header { } .org-markdown-header-delimiter { /* markdown-header-delimiter-face */ color: #66657f; } .org-markdown-header-face-1 { /* markdown-header-face-1 */ color: #004fc0; font-weight: bold; } .org-markdown-header-face-2 { /* markdown-header-face-2 */ color: #00845f; font-weight: bold; } .org-markdown-header-face-3 { /* markdown-header-face-3 */ color: #7f5ae0; font-weight: bold; } .org-markdown-header-face-4 { /* markdown-header-face-4 */ color: #1f6fbf; font-weight: bold; } .org-markdown-header-face-5 { /* markdown-header-face-5 */ color: #4244ef; font-weight: bold; } .org-markdown-header-face-6 { /* markdown-header-face-6 */ color: #468400; font-weight: bold; } .org-markdown-header-rule { /* markdown-header-rule-face */ color: #66657f; } .org-markdown-highlight { /* markdown-highlight-face */ color: #232323; background-color: #eab5ff; } .org-markdown-highlighting { /* markdown-highlighting-face */ color: #232323; background-color: #aae0bf; } .org-markdown-hr { /* markdown-hr-face */ color: #66657f; } .org-markdown-html-attr-name { /* markdown-html-attr-name-face */ color: #3a6dd2; } .org-markdown-html-attr-value { /* markdown-html-attr-value-face */ color: #4244ef; } .org-markdown-html-entity { /* markdown-html-entity-face */ color: #3a6dd2; } .org-markdown-html-tag-delimiter { /* markdown-html-tag-delimiter-face */ color: #66657f; } .org-markdown-html-tag-name { /* markdown-html-tag-name-face */ color: #7f5ae0; } .org-markdown-inline-code { /* markdown-inline-code-face */ color: #007a85; } .org-markdown-italic { /* markdown-italic-face */ font-style: italic; } .org-markdown-language-info { /* markdown-language-info-face */ color: #4244ef; } .org-markdown-language-keyword { /* markdown-language-keyword-face */ color: #66657f; background-color: #eaefef; } .org-markdown-line-break { /* markdown-line-break-face */ color: #c42d2f; text-decoration: underline; } .org-markdown-link { /* markdown-link-face */ color: #1f6fbf; text-decoration: underline; } .org-markdown-link-title { /* markdown-link-title-face */ color: #7a5f2f; } .org-markdown-list { /* markdown-list-face */ color: #66657f; } .org-markdown-markup { /* markdown-markup-face */ color: #66657f; } .org-markdown-math { /* markdown-math-face */ color: #4244ef; } .org-markdown-metadata-key { } .org-markdown-metadata-value { /* markdown-metadata-value-face */ color: #4244ef; } .org-markdown-missing-link { /* markdown-missing-link-face */ color: #996c4f; } .org-markdown-plain-url { /* markdown-plain-url-face */ color: #1f6fbf; text-decoration: underline; } .org-markdown-pre { /* markdown-pre-face */ background-color: #eaefef; } .org-markdown-reference { /* markdown-reference-face */ color: #66657f; } .org-markdown-strike-through { /* markdown-strike-through-face */ text-decoration: line-through; } .org-markdown-table { /* markdown-table-face */ color: #204f9a; } .org-markdown-url { /* markdown-url-face */ color: #204f9a; } .org-match { /* match */ color: #232323; background-color: #ffe9bf; } .org-menu { /* menu */ color: #232323; background-color: #b5b8b8; } .org-message-cited-text-1 { /* message-cited-text-1 */ color: #004fc0; } .org-message-cited-text-2 { /* message-cited-text-2 */ color: #007a85; } .org-message-cited-text-3 { /* message-cited-text-3 */ color: #996c4f; } .org-message-cited-text-4 { /* message-cited-text-4 */ color: #7f5ae0; } .org-message-header-cc { /* message-header-cc */ color: #3a6dd2; } .org-message-header-name { } .org-message-header-newsgroups { /* message-header-newsgroups */ color: #1f6fbf; } .org-message-header-other { /* message-header-other */ color: #1f6fbf; } .org-message-header-subject { /* message-header-subject */ color: #065fff; } .org-message-header-to { /* message-header-to */ color: #3a6dd2; } .org-message-header-xheader { /* message-header-xheader */ color: #1f6fbf; } .org-message-mml { /* message-mml */ color: #1f6fbf; } .org-message-separator { /* message-separator */ color: #232323; background-color: #f7f9f9; } .org-message-signature-separator { /* message-signature-separator */ font-weight: bold; } .org-mh-folder-address { /* mh-folder-address */ color: #00008b; } .org-mh-folder-allowlisted { /* mh-folder-allowlisted */ color: #b8860b; } .org-mh-folder-blocklisted { /* mh-folder-blocklisted */ color: #8b8989; } .org-mh-folder-body { /* mh-folder-body */ color: #8b8989; } .org-mh-folder-cur-msg-number { /* mh-folder-cur-msg-number */ color: #8b8989; font-weight: bold; } .org-mh-folder-date { /* mh-folder-date */ color: #8b8989; } .org-mh-folder-deleted { /* mh-folder-deleted */ color: #8b8989; } .org-mh-folder-followup { /* mh-folder-followup */ color: #0000cd; } .org-mh-folder-msg-number { /* mh-folder-msg-number */ color: #8b8989; } .org-mh-folder-refiled { /* mh-folder-refiled */ color: #b8860b; } .org-mh-folder-sent-to-me-hint { /* mh-folder-sent-to-me-hint */ color: #8b8989; } .org-mh-folder-sent-to-me-sender { /* mh-folder-sent-to-me-sender */ color: #0000cd; } .org-mh-folder-subject { /* mh-folder-subject */ color: #00008b; } .org-mh-folder-tick { /* mh-folder-tick */ background-color: #dddf7e; } .org-mh-folder-to { /* mh-folder-to */ color: #bc8f8f; } .org-mh-letter-header-field { /* mh-letter-header-field */ background-color: #e5e5e5; } .org-mh-search-folder { /* mh-search-folder */ color: #006400; font-weight: bold; } .org-mh-show-cc { /* mh-show-cc */ color: #b8860b; } .org-mh-show-date { /* mh-show-date */ color: #228b22; } .org-mh-show-from { /* mh-show-from */ color: #cd0000; } .org-mh-show-header { /* mh-show-header */ color: #bc8f8f; } .org-mh-show-pgg-bad { /* mh-show-pgg-bad */ color: #ff1493; font-weight: bold; } .org-mh-show-pgg-good { /* mh-show-pgg-good */ color: #32cd32; font-weight: bold; } .org-mh-show-pgg-unknown { /* mh-show-pgg-unknown */ color: #eead0e; font-weight: bold; } .org-mh-show-signature { /* mh-show-signature */ font-style: italic; } .org-mh-show-subject { /* mh-show-subject */ color: #00008b; } .org-mh-show-to { /* mh-show-to */ color: #8b4513; } .org-mh-speedbar-folder { /* mh-speedbar-folder */ color: #00008b; } .org-mh-speedbar-folder-with-unseen-messages { /* mh-speedbar-folder-with-unseen-messages */ color: #00008b; font-weight: bold; } .org-mh-speedbar-selected-folder { /* mh-speedbar-selected-folder */ color: #ff0000; text-decoration: underline; } .org-mh-speedbar-selected-folder-with-unseen-messages { /* mh-speedbar-selected-folder-with-unseen-messages */ color: #ff0000; font-weight: bold; text-decoration: underline; } .org-minibuffer-prompt { /* minibuffer-prompt */ color: #1f6fbf; } .org-misc-punctuation { /* font-lock-misc-punctuation-face */ color: #232323; } .org-mm-command-output { /* mm-command-output */ color: #1f6fbf; } .org-mm-uu-extract { /* mm-uu-extract */ color: #1f6fbf; } .org-mode-line { /* mode-line */ color: #051524; background-color: #9ad0ff; } .org-mode-line-active { /* mode-line-active */ color: #051524; background-color: #9ad0ff; } .org-mode-line-buffer-id { /* mode-line-buffer-id */ font-weight: bold; } .org-mode-line-emphasis { /* mode-line-emphasis */ color: #002580; font-style: italic; } .org-mode-line-highlight { /* mode-line-highlight */ color: #232323; background-color: #eab5ff; } .org-mode-line-inactive { /* mode-line-inactive */ color: #66657f; background-color: #d7dbdb; } .org-modus-themes-bold { } .org-modus-themes-button { /* modus-themes-button */ color: #232323; background-color: #b5b8b8; } .org-modus-themes-completion-match-0 { /* modus-themes-completion-match-0 */ color: #4244ef; font-weight: bold; } .org-modus-themes-completion-match-1 { /* modus-themes-completion-match-1 */ color: #00845f; font-weight: bold; } .org-modus-themes-completion-match-2 { /* modus-themes-completion-match-2 */ color: #c0469a; font-weight: bold; } .org-modus-themes-completion-match-3 { /* modus-themes-completion-match-3 */ color: #065fff; font-weight: bold; } .org-modus-themes-completion-selected { /* modus-themes-completion-selected */ background-color: #cceff5; font-weight: bold; } .org-modus-themes-fixed-pitch { } .org-modus-themes-heading-0 { /* modus-themes-heading-0 */ color: #007a85; font-weight: bold; } .org-modus-themes-heading-1 { /* modus-themes-heading-1 */ color: #004fc0; font-weight: bold; } .org-modus-themes-heading-2 { /* modus-themes-heading-2 */ color: #00845f; font-weight: bold; } .org-modus-themes-heading-3 { /* modus-themes-heading-3 */ color: #7f5ae0; font-weight: bold; } .org-modus-themes-heading-4 { /* modus-themes-heading-4 */ color: #1f6fbf; font-weight: bold; } .org-modus-themes-heading-5 { /* modus-themes-heading-5 */ color: #4244ef; font-weight: bold; } .org-modus-themes-heading-6 { /* modus-themes-heading-6 */ color: #468400; font-weight: bold; } .org-modus-themes-heading-7 { /* modus-themes-heading-7 */ color: #aa44c5; font-weight: bold; } .org-modus-themes-heading-8 { /* modus-themes-heading-8 */ color: #3a6dd2; font-weight: bold; } .org-modus-themes-prompt { /* modus-themes-prompt */ color: #1f6fbf; } .org-modus-themes-reset-soft { /* modus-themes-reset-soft */ color: #232323; background-color: #fcffff; } .org-modus-themes-slant { } .org-modus-themes-ui-variable-pitch { } .org-mouse { } .org-mouse-drag-and-drop-region { /* mouse-drag-and-drop-region */ background-color: #d4eaf3; } .org-negation-char { /* font-lock-negation-char-face */ color: #c42d2f; } .org-next-error { /* next-error */ color: #c42d2f; background-color: #ffdfda; } .org-next-error-message { /* next-error-message */ color: #232323; background-color: #eab5ff; } .org-nobreak-hyphen { /* nobreak-hyphen */ color: #c42d2f; } .org-nobreak-space { /* nobreak-space */ color: #c42d2f; text-decoration: underline; } .org-number { /* font-lock-number-face */ color: #232323; } .org-olivetti-fringe { } .org-operator { /* font-lock-operator-face */ color: #232323; } .org-org-agenda-calendar-daterange { /* org-agenda-calendar-daterange */ color: #204f9a; } .org-org-agenda-calendar-event { /* org-agenda-calendar-event */ color: #204f9a; } .org-org-agenda-calendar-sexp { /* org-agenda-calendar-sexp */ color: #204f9a; } .org-org-agenda-clocking { /* org-agenda-clocking */ color: #996c4f; background-color: #ffe9bf; } .org-org-agenda-column-dateline { /* org-agenda-column-dateline */ background-color: #f7f9f9; } .org-org-agenda-current-time { /* org-agenda-current-time */ color: #232323; } .org-org-agenda-date { /* org-agenda-date */ color: #1f6fbf; font-weight: bold; } .org-org-agenda-date-today { /* org-agenda-date-today */ color: #1f6fbf; font-weight: bold; text-decoration: underline; } .org-org-agenda-date-weekend { /* org-agenda-date-weekend */ color: #9a4366; font-weight: bold; } .org-org-agenda-date-weekend-today { /* org-agenda-date-weekend-today */ color: #9a4366; font-weight: bold; text-decoration: underline; } .org-org-agenda-diary { /* org-agenda-diary */ color: #204f9a; } .org-org-agenda-dimmed-todo { /* org-agenda-dimmed-todo-face */ color: #66657f; } .org-org-agenda-done { /* org-agenda-done */ color: #008a00; } .org-org-agenda-filter-category { /* org-agenda-filter-category */ color: #7f0000; } .org-org-agenda-filter-effort { /* org-agenda-filter-effort */ color: #7f0000; } .org-org-agenda-filter-regexp { /* org-agenda-filter-regexp */ color: #7f0000; } .org-org-agenda-filter-tags { /* org-agenda-filter-tags */ color: #7f0000; } .org-org-agenda-restriction-lock { /* org-agenda-restriction-lock */ color: #66657f; background-color: #eaefef; } .org-org-agenda-structure { /* org-agenda-structure */ color: #204f9a; font-weight: bold; } .org-org-agenda-structure-filter { /* org-agenda-structure-filter */ color: #996c4f; font-weight: bold; } .org-org-agenda-structure-secondary { /* org-agenda-structure-secondary */ color: #605f9f; } .org-org-archived { /* org-archived */ color: #232323; background-color: #f7f9f9; } .org-org-block { /* org-block */ background-color: #eaefef; } .org-org-block-begin-line { /* org-block-begin-line */ color: #66657f; background-color: #eaefef; } .org-org-block-end-line { /* org-block-end-line */ color: #66657f; background-color: #eaefef; } .org-org-checkbox { /* org-checkbox */ color: #996c4f; } .org-org-checkbox-statistics-done { /* org-checkbox-statistics-done */ color: #008a00; } .org-org-checkbox-statistics-todo { /* org-checkbox-statistics-todo */ color: #c42d2f; } .org-org-cite { /* org-cite */ color: #1f6fbf; text-decoration: underline; } .org-org-cite-key { /* org-cite-key */ color: #1f6fbf; text-decoration: underline; } .org-org-clock-overlay { /* org-clock-overlay */ color: #232323; background-color: #aae0bf; } .org-org-code { /* org-code */ color: #007a85; } .org-org-column { /* org-column */ color: #232323; background-color: #eaefef; } .org-org-date { /* org-date */ color: #007a85; } .org-org-date-selected { /* org-date-selected */ color: #007a85; } .org-org-default { /* org-default */ color: #232323; background-color: #fcffff; } .org-org-dispatcher-highlight { /* org-dispatcher-highlight */ color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-org-document-info { /* org-document-info */ color: #204f9a; } .org-org-document-info-keyword { /* org-document-info-keyword */ color: #66657f; } .org-org-document-title { /* org-document-title */ color: #007a85; font-weight: bold; } .org-org-done { /* org-done */ color: #008a00; } .org-org-drawer { /* org-drawer */ color: #66657f; } .org-org-ellipsis { } .org-org-footnote { /* org-footnote */ color: #1f6fbf; text-decoration: underline; } .org-org-formula { /* org-formula */ color: #996c4f; } .org-org-habit-alert { /* org-habit-alert-face */ background-color: #ffcf00; } .org-org-habit-alert-future { /* org-habit-alert-future-face */ background-color: #f9ff00; } .org-org-habit-clear { /* org-habit-clear-face */ background-color: #7f90ff; } .org-org-habit-clear-future { /* org-habit-clear-future-face */ background-color: #a6c0ff; } .org-org-habit-overdue { /* org-habit-overdue-face */ background-color: #ef7969; } .org-org-habit-overdue-future { /* org-habit-overdue-future-face */ background-color: #ffaab4; } .org-org-habit-ready { /* org-habit-ready-face */ background-color: #45c050; } .org-org-habit-ready-future { /* org-habit-ready-future-face */ background-color: #75ef30; } .org-org-headline-done { /* org-headline-done */ color: #008a00; } .org-org-headline-todo { /* org-headline-todo */ color: #c42d2f; } .org-org-hide { /* org-hide */ color: #fcffff; } .org-org-imminent-deadline { /* org-imminent-deadline */ color: #c42d2f; } .org-org-indent { /* org-indent */ color: #fcffff; } .org-org-inline-src-block { /* org-inline-src-block */ background-color: #eaefef; } .org-org-latex-and-related { /* org-latex-and-related */ color: #7f5ae0; } .org-org-level-1 { /* org-level-1 */ color: #004fc0; font-weight: bold; } .org-org-level-2 { /* org-level-2 */ color: #00845f; font-weight: bold; } .org-org-level-3 { /* org-level-3 */ color: #7f5ae0; font-weight: bold; } .org-org-level-4 { /* org-level-4 */ color: #1f6fbf; font-weight: bold; } .org-org-level-5 { /* org-level-5 */ color: #4244ef; font-weight: bold; } .org-org-level-6 { /* org-level-6 */ color: #468400; font-weight: bold; } .org-org-level-7 { /* org-level-7 */ color: #aa44c5; font-weight: bold; } .org-org-level-8 { /* org-level-8 */ color: #3a6dd2; font-weight: bold; } .org-org-link { /* org-link */ color: #1f6fbf; text-decoration: underline; } .org-org-list-dt { /* org-list-dt */ color: #204f9a; } .org-org-macro { /* org-macro */ color: #7f5ae0; } .org-org-meta-line { /* org-meta-line */ color: #66657f; } .org-org-mode-line-clock { } .org-org-mode-line-clock-overrun { /* org-mode-line-clock-overrun */ color: #7f0000; } .org-org-priority { /* org-priority */ color: #7a5f2f; } .org-org-property-value { /* org-property-value */ color: #204f9a; } .org-org-quote { /* org-quote */ background-color: #eaefef; } .org-org-scheduled { /* org-scheduled */ color: #7a5f2f; } .org-org-scheduled-today { /* org-scheduled-today */ color: #996c4f; } .org-org-sexp-date { /* org-sexp-date */ color: #007a85; } .org-org-special-keyword { /* org-special-keyword */ color: #66657f; } .org-org-table { /* org-table */ color: #204f9a; } .org-org-table-row { /* org-table-row */ color: #204f9a; } .org-org-tag { /* org-tag */ color: #7a5f2f; } .org-org-tag-group { /* org-tag-group */ color: #7a5f2f; } .org-org-target { /* org-target */ text-decoration: underline; } .org-org-time-grid { /* org-time-grid */ color: #66657f; } .org-org-todo { /* org-todo */ color: #c42d2f; } .org-org-upcoming-deadline { /* org-upcoming-deadline */ color: #9a4366; } .org-org-upcoming-distant-deadline { /* org-upcoming-distant-deadline */ color: #232323; } .org-org-verbatim { /* org-verbatim */ color: #c0469a; } .org-org-verse { /* org-verse */ background-color: #eaefef; } .org-org-warning { /* org-warning */ color: #996c4f; } .org-outline-1 { /* outline-1 */ color: #004fc0; font-weight: bold; } .org-outline-2 { /* outline-2 */ color: #00845f; font-weight: bold; } .org-outline-3 { /* outline-3 */ color: #7f5ae0; font-weight: bold; } .org-outline-4 { /* outline-4 */ color: #1f6fbf; font-weight: bold; } .org-outline-5 { /* outline-5 */ color: #4244ef; font-weight: bold; } .org-outline-6 { /* outline-6 */ color: #468400; font-weight: bold; } .org-outline-7 { /* outline-7 */ color: #aa44c5; font-weight: bold; } .org-outline-8 { /* outline-8 */ color: #3a6dd2; font-weight: bold; } .org-preprocessor { /* font-lock-preprocessor-face */ color: #aa44c5; } .org-property-name { /* font-lock-property-name-face */ color: #1f6fbf; } .org-property-use { /* font-lock-property-use-face */ color: #1f6fbf; } .org-pulse-highlight { /* pulse-highlight-face */ background-color: #1640b0; } .org-pulse-highlight-start { /* pulse-highlight-start-face */ background-color: #cbcfff; } .org-punctuation { /* font-lock-punctuation-face */ color: #232323; } .org-query-replace { /* query-replace */ color: #232323; background-color: #ff8f88; } .org-rainbow-delimiters-base { /* rainbow-delimiters-base-face */ color: #232323; } .org-rainbow-delimiters-base-error { /* rainbow-delimiters-base-error-face */ color: #c42d2f; background-color: #ffdfda; } .org-rainbow-delimiters-depth-1 { /* rainbow-delimiters-depth-1-face */ color: #007a85; } .org-rainbow-delimiters-depth-2 { /* rainbow-delimiters-depth-2-face */ color: #004fc0; } .org-rainbow-delimiters-depth-3 { /* rainbow-delimiters-depth-3-face */ color: #00845f; } .org-rainbow-delimiters-depth-4 { /* rainbow-delimiters-depth-4-face */ color: #7f5ae0; } .org-rainbow-delimiters-depth-5 { /* rainbow-delimiters-depth-5-face */ color: #1f6fbf; } .org-rainbow-delimiters-depth-6 { /* rainbow-delimiters-depth-6-face */ color: #4244ef; } .org-rainbow-delimiters-depth-7 { /* rainbow-delimiters-depth-7-face */ color: #468400; } .org-rainbow-delimiters-depth-8 { /* rainbow-delimiters-depth-8-face */ color: #aa44c5; } .org-rainbow-delimiters-depth-9 { /* rainbow-delimiters-depth-9-face */ color: #3a6dd2; } .org-rainbow-delimiters-mismatched { /* rainbow-delimiters-mismatched-face */ color: #996c4f; background-color: #ffe9bf; } .org-rainbow-delimiters-unmatched { /* rainbow-delimiters-unmatched-face */ color: #c42d2f; background-color: #ffdfda; } .org-read-multiple-choice { /* read-multiple-choice-face */ color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-rectangle-preview { /* rectangle-preview */ color: #232323; background-color: #b5b8b8; } .org-regexp { /* font-lock-regexp-face */ color: #4244ef; } .org-regexp-grouping-backslash { /* font-lock-regexp-grouping-backslash */ color: #aa44c5; } .org-regexp-grouping-construct { /* font-lock-regexp-grouping-construct */ color: #cf2f4f; } .org-region { /* region */ background-color: #d4eaf3; } .org-rmail-header-name { /* rmail-header-name */ font-weight: bold; } .org-rmail-highlight { /* rmail-highlight */ color: #1f6fbf; font-weight: bold; } .org-scroll-bar { /* scroll-bar */ color: #b0b7c0; } .org-secondary-selection { /* secondary-selection */ color: #232323; background-color: #aae0bf; } .org-separator-line { /* separator-line */ text-decoration: underline; } .org-sgml-namespace { /* sgml-namespace */ color: #1f6fbf; } .org-sh-escaped-newline { /* sh-escaped-newline */ color: #4244ef; } .org-sh-heredoc { /* sh-heredoc */ color: #4244ef; } .org-sh-quoted-exec { /* sh-quoted-exec */ color: #1f6fbf; } .org-shadow { /* shadow */ color: #66657f; } .org-shell-highlight-undef-alias { /* shell-highlight-undef-alias-face */ color: #3a6dd2; } .org-shell-highlight-undef-defined { /* shell-highlight-undef-defined-face */ color: #00845f; } .org-shell-highlight-undef-undefined { /* shell-highlight-undef-undefined-face */ color: #996c4f; } .org-shortdoc-heading { /* shortdoc-heading */ color: #004fc0; font-weight: bold; } .org-shortdoc-section { } .org-show-paren-match { /* show-paren-match */ color: #232323; background-color: #cab0ef; } .org-show-paren-match-expression { /* show-paren-match-expression */ background-color: #efd3f5; } .org-show-paren-mismatch { /* show-paren-mismatch */ color: #c42d2f; background-color: #ffdfda; } .org-shr-abbreviation { /* shr-abbreviation */ text-decoration: underline; } .org-shr-code { /* shr-code */ color: #c0469a; } .org-shr-h1 { /* shr-h1 */ color: #004fc0; font-weight: bold; } .org-shr-h2 { /* shr-h2 */ color: #00845f; font-weight: bold; } .org-shr-h3 { /* shr-h3 */ color: #7f5ae0; font-weight: bold; } .org-shr-h4 { /* shr-h4 */ color: #1f6fbf; font-weight: bold; } .org-shr-h5 { /* shr-h5 */ color: #4244ef; font-weight: bold; } .org-shr-h6 { /* shr-h6 */ color: #468400; font-weight: bold; } .org-shr-link { /* shr-link */ color: #1f6fbf; text-decoration: underline; } .org-shr-mark { /* shr-mark */ color: #232323; background-color: #ffe9bf; } .org-shr-selected-link { /* shr-selected-link */ color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-shr-sliced-image { } .org-shr-strike-through { /* shr-strike-through */ text-decoration: line-through; } .org-shr-sup { /* shr-sup */ font-size: 80%; } .org-shr-text { /* shr-text */ font-size: 110%; } .org-string { /* font-lock-string-face */ color: #4244ef; } .org-success { /* success */ color: #008a00; } .org-tab-bar { /* tab-bar */ background-color: #d7dbdb; } .org-tab-bar-tab { /* tab-bar-tab */ background-color: #fcffff; } .org-tab-bar-tab-group-current { /* tab-bar-tab-group-current */ color: #204f9a; background-color: #fcffff; } .org-tab-bar-tab-group-inactive { /* tab-bar-tab-group-inactive */ color: #204f9a; background-color: #d7dbdb; } .org-tab-bar-tab-highlight { /* tab-bar-tab-highlight */ color: #232323; background-color: #eab5ff; } .org-tab-bar-tab-inactive { /* tab-bar-tab-inactive */ background-color: #b5b8b8; } .org-tab-bar-tab-ungrouped { /* tab-bar-tab-ungrouped */ background-color: #b5b8b8; } .org-tab-line { /* tab-line */ background-color: #d7dbdb; font-size: 95%; } .org-table-cell { /* table-cell */ background-color: #eaefef; } .org-tabulated-list-fake-header { /* tabulated-list-fake-header */ font-weight: bold; text-decoration: underline; text-decoration: overline; } .org-texinfo-heading { /* texinfo-heading */ color: #00845f; } .org-textsec-suspicious { } .org-trailing-whitespace { /* trailing-whitespace */ background-color: #fac200; } .org-treesit-explorer-anonymous-node { /* treesit-explorer-anonymous-node */ color: #66657f; } .org-treesit-explorer-field-name { } .org-tty-menu-disabled { /* tty-menu-disabled-face */ color: #66657f; background-color: #f7f9f9; } .org-tty-menu-enabled { /* tty-menu-enabled-face */ color: #232323; background-color: #f7f9f9; font-weight: bold; } .org-tty-menu-selected { /* tty-menu-selected-face */ color: #232323; background-color: #cbcfff; } .org-tutorial-warning { /* tutorial-warning-face */ color: #996c4f; } .org-type { /* font-lock-type-face */ color: #7f5ae0; } .org-underline { /* underline */ text-decoration: underline; } .org-variable-name { /* font-lock-variable-name-face */ color: #3a6dd2; } .org-variable-pitch { } .org-variable-pitch-text { /* variable-pitch-text */ font-size: 110%; } .org-variable-use { /* font-lock-variable-use-face */ color: #305f9f; } .org-warning { /* warning */ color: #996c4f; } .org-warning-1 { /* font-lock-warning-face */ color: #996c4f; } /* Local Variables: */ /* after-save-hook: (lambda () (copy-file "style.css" "public/style.css" t)) */ /* End: */
Future plans
These are the future plans:
[X]Rewrite the style sheet[ ]Make the index "interesting"[ ]Tag based searching[X]Show tags on each page[X]RSS feeds