~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
(setq org-html-postamble t org-html-head-include-scripts nil org-html-head-include-default-style nil org-confirm-babel-evaluate nil 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-hook 'org-export-before-processing-hook
#'(lambda (backend)
(insert "#+INCLUDE: \"../setup.org\"\n")))
I currently use this to add a tag list to each page.
#+HTML_HEAD: <meta name="darkreader-lock"> #+HTML_HEAD: <link rel="stylesheet" href="style.css"> #+HTML_HEAD: <link rel="alternate" type="application/rss+xml" href="rss.xml" title="RSS 2.0"> #+HTML_HEAD: <meta name="fediverse:creator" content="@tusharhero@mathstodon.xyz"> #+name: word-count #+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 #+name: tagging #+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 #+OPTIONS: toc:nil #+TOC: headlines 5
I also have a listing of all pages according to their tags here.
Defining 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") (replace-regexp-buffer (rx "/*" (zero-or-more (or (not (any "*")) (seq "*" (not (any "/"))))) (one-or-more "*") "/") "") (replace-regexp-buffer (rx "\n") "") (replace-regexp-buffer (rx (>= 2 "\s")) " ") (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.)
(message "Cleaning public/") (shell-command "rm public/*") (message "Done!") (message "Getting dependencies, may take some time...") (require 'package) (setq package-user-dir (expand-file-name "./.packages")) (package-initialize) (unless package-archive-contents (package-refresh-contents)) (dolist (package '(htmlize webfeeder dash)) (unless (package-installed-p package) (package-install package))) (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)) (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) (unpackaged/org-export-new-title-reference datum cache)) (org-export-format-reference (org-export-new-reference cache)))) (reference-string new)) (dolist (cell cells) (push (cons cell new) cache)) (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) (-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) (if parent (setf title (concat (org-element-property :raw-value parent) "--" title) ref (url-hexify-string (substring-no-properties title)) parent (org-element-property :parent parent)) (inc-suffixf ref))) ref))) (unpackaged/org-export-html-with-useful-ids-mode) (require 'ox-publish) (message "Done!") (message "Setting customizations...") (setq org-html-postamble t org-html-head-include-scripts nil org-html-head-include-default-style nil org-confirm-babel-evaluate nil 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>" "<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-hook 'org-export-before-processing-hook #'(lambda (backend) (insert "#+INCLUDE: \"../setup.org\"\n"))) (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") (replace-regexp-buffer (rx "/*" (zero-or-more (or (not (any "*")) (seq "*" (not (any "/"))))) (one-or-more "*") "/") "") (replace-regexp-buffer (rx "\n") "") (replace-regexp-buffer (rx (>= 2 "\s")) " ") (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")))) (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)
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.
shgit 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.
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; } #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%; } .org-src-container:has(pre.src-diff):before { content: 'diff'; } .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'; } .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'; } .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'; } .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'; } .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'; } .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'; } .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 { } .org-abbrev-table-name { color: #004fc0; font-weight: bold; } .org-ansi-color-black { color: #000000; background-color: #000000; } .org-ansi-color-blue { color: #004fc0; background-color: #004fc0; } .org-ansi-color-bold { font-weight: bold; } .org-ansi-color-bright-black { color: #595959; background-color: #595959; } .org-ansi-color-bright-blue { color: #4244ef; background-color: #4244ef; } .org-ansi-color-bright-cyan { color: #007a85; background-color: #007a85; } .org-ansi-color-bright-green { color: #00845f; background-color: #00845f; } .org-ansi-color-bright-magenta { color: #7f5ae0; background-color: #7f5ae0; } .org-ansi-color-bright-red { color: #d03003; background-color: #d03003; } .org-ansi-color-bright-white { color: #ffffff; background-color: #ffffff; } .org-ansi-color-bright-yellow { color: #b6532f; background-color: #b6532f; } .org-ansi-color-cyan { color: #1f6fbf; background-color: #1f6fbf; } .org-ansi-color-faint { } .org-ansi-color-fast-blink { } .org-ansi-color-green { color: #008a00; background-color: #008a00; } .org-ansi-color-inverse { } .org-ansi-color-italic { font-style: italic; } .org-ansi-color-magenta { color: #aa44c5; background-color: #aa44c5; } .org-ansi-color-red { color: #c42d2f; background-color: #c42d2f; } .org-ansi-color-slow-blink { } .org-ansi-color-underline { text-decoration: underline; } .org-ansi-color-white { color: #a6a6a6; background-color: #a6a6a6; } .org-ansi-color-yellow { color: #aa6100; background-color: #aa6100; } .org-blink-matching-paren-offscreen { background-color: #cab0ef; } .org-bold { font-weight: bold; } .org-bookmark { color: #008a00; } .org-bookmark-menu-bookmark { color: #3a6dd2; } .org-border { } .org-bracket { color: #232323; } .org-breadcrumb { color: #204f9a; } .org-breadcrumb-imenu-crumbs { color: #204f9a; } .org-breadcrumb-imenu-leaf { color: #002580; } .org-breadcrumb-project-base { color: #204f9a; } .org-breadcrumb-project-crumbs { color: #204f9a; } .org-breadcrumb-project-leaf { } .org-browse-url-button { color: #1f6fbf; text-decoration: underline; } .org-buffer-menu-buffer { color: #3a6dd2; } .org-bui-action-button { color: #232323; background-color: #b5b8b8; } .org-bui-action-button-mouse { color: #232323; background-color: #eab5ff; } .org-bui-file-name { color: #1f6fbf; text-decoration: underline; } .org-bui-hint-key { color: #996c4f; } .org-bui-history-button { color: #1f6fbf; text-decoration: underline; } .org-bui-info-heading { font-size: 120%; font-weight: bold; } .org-bui-info-param-title { color: #7f5ae0; } .org-bui-time { color: #065fff; } .org-bui-url { color: #1f6fbf; text-decoration: underline; } .org-builtin { color: #1f6fbf; } .org-button { color: #1f6fbf; text-decoration: underline; } .org-c-annotation { color: #065fff; } .org-calc-nonselected { color: #66657f; font-style: italic; } .org-calc-selected { font-weight: bold; } .org-calendar-month-header { } .org-calendar-today { color: #232323; } .org-calendar-weekday-header { color: #1f6fbf; } .org-calendar-weekend-header { color: #9a4366; } .org-change-log-acknowledgment { color: #605f9f; } .org-change-log-conditionals { color: #c42d2f; } .org-change-log-date { color: #007a85; } .org-change-log-email { color: #204f9a; } .org-change-log-file { } .org-change-log-function { color: #996c4f; } .org-change-log-list { } .org-change-log-name { color: #3a6dd2; } .org-child-frame-border { background-color: #b0b7c0; } .org-comint-highlight-input { } .org-comint-highlight-prompt { color: #1f6fbf; } .org-comment { color: #7a5f2f; } .org-comment-delimiter { color: #7a5f2f; } .org-compilation-column-number { color: #66657f; } .org-compilation-error { color: #c42d2f; } .org-compilation-info { color: #008a00; } .org-compilation-line-number { color: #66657f; } .org-compilation-mode-line-exit { } .org-compilation-mode-line-fail { color: #7f0000; } .org-compilation-mode-line-run { color: #5f0070; } .org-compilation-warning { color: #996c4f; } .org-completion-preview { color: #66657f; } .org-completion-preview-common { color: #66657f; text-decoration: underline; } .org-completion-preview-highlight { color: #232323; background-color: #eab5ff; } .org-completions-annotations { color: #605f9f; } .org-completions-common-part { color: #4244ef; font-weight: bold; } .org-completions-first-difference { color: #00845f; font-weight: bold; } .org-completions-group-separator { color: #66657f; text-decoration: line-through; } .org-completions-group-title { color: #66657f; font-style: italic; } .org-completions-highlight { background-color: #cceff5; font-weight: bold; } .org-confusingly-reordered { text-decoration: underline; } .org-constant { color: #065fff; } .org-consult-async-failed { color: #c42d2f; } .org-consult-async-finished { color: #008a00; } .org-consult-async-option { color: #996c4f; } .org-consult-async-running { color: #996c4f; } .org-consult-async-split { color: #c42d2f; } .org-consult-bookmark { color: #065fff; } .org-consult-buffer { } .org-consult-file { color: #008a00; } .org-consult-grep-context { color: #66657f; } .org-consult-help { color: #66657f; } .org-consult-highlight-mark { color: #232323; background-color: #ffe9bf; } .org-consult-highlight-match { color: #232323; background-color: #ffe9bf; } .org-consult-line-number { color: #66657f; } .org-consult-line-number-prefix { color: #66657f; } .org-consult-line-number-wrapped { color: #996c4f; } .org-consult-narrow-indicator { color: #996c4f; } .org-consult-preview-insertion { background-color: #eaefef; } .org-consult-preview-line { background-color: #eaefef; } .org-consult-preview-match { color: #232323; background-color: #fac200; } .org-consult-separator { color: #ccc; } .org-css-property { color: #004fc0; } .org-css-selector { color: #00845f; } .org-cursor { background-color: #0055bb; } .org-custom-button { color: #232323; background-color: #b5b8b8; } .org-custom-button-mouse { color: #232323; background-color: #eab5ff; } .org-custom-button-pressed { color: #232323; background-color: #fcffff; } .org-custom-button-pressed-unraised { color: #8b008b; text-decoration: underline; } .org-custom-button-unraised { text-decoration: underline; } .org-custom-changed { background-color: #f4e8bd; } .org-custom-comment { color: #7a5f2f; } .org-custom-comment-tag { color: #7a5f2f; } .org-custom-documentation { } .org-custom-face-tag { color: #7f5ae0; } .org-custom-group-subtitle { font-weight: bold; } .org-custom-group-tag { color: #1f6fbf; } .org-custom-group-tag-1 { color: #065fff; } .org-custom-invalid { color: #c42d2f; text-decoration: line-through; } .org-custom-link { color: #1f6fbf; text-decoration: underline; } .org-custom-modified { background-color: #f4e8bd; } .org-custom-rogue { color: #c42d2f; text-decoration: line-through; } .org-custom-saved { text-decoration: underline; } .org-custom-set { color: #008a00; } .org-custom-state { color: #996c4f; } .org-custom-themed { background-color: #f4e8bd; } .org-custom-variable-button { font-weight: bold; text-decoration: underline; } .org-custom-variable-obsolete { color: #66657f; } .org-custom-variable-tag { color: #3a6dd2; } .org-custom-visibility { color: #1f6fbf; font-size: 80%; text-decoration: underline; } .org-default { color: #232323; background-color: #fcffff; } .org-delimiter { color: #232323; } .org-diary { color: #007a85; } .org-diary-anniversary { color: #c0469a; } .org-diary-button { } .org-diary-time { color: #007a85; } .org-diff-added { color: #004840; background-color: #c9ffea; } .org-diff-changed { color: #553d00; background-color: #f4e8bd; } .org-diff-changed-unspecified { color: #553d00; background-color: #f4e8bd; } .org-diff-context { } .org-diff-error { color: #c42d2f; } .org-diff-file-header { } .org-diff-function { background-color: #f7f9f9; } .org-diff-header { } .org-diff-hunk-header { background-color: #f7f9f9; } .org-diff-index { } .org-diff-indicator-added { color: #006700; background-color: #c9ffea; } .org-diff-indicator-changed { color: #655000; background-color: #f4e8bd; } .org-diff-indicator-removed { color: #aa2222; background-color: #ffd6e0; } .org-diff-nonexistent { } .org-diff-refine-added { color: #004840; background-color: #b3efdf; } .org-diff-refine-changed { color: #553d00; background-color: #efd299; } .org-diff-refine-removed { color: #8f1313; background-color: #f5bfc8; } .org-diff-removed { color: #8f1313; background-color: #ffd6e0; } .org-dired-broken-symlink { color: #c42d2f; text-decoration: underline; } .org-dired-directory { color: #4244ef; } .org-dired-flagged { color: #c42d2f; background-color: #ffdfda; font-weight: bold; } .org-dired-header { } .org-dired-ignored { color: #66657f; } .org-dired-mark { } .org-dired-marked { color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-dired-perm-write { color: #66657f; } .org-dired-set-id { color: #996c4f; } .org-dired-special { color: #3a6dd2; } .org-dired-symlink { color: #204f9a; text-decoration: underline; } .org-dired-warning { color: #996c4f; } .org-display-time-date-and-time { } .org-doc { color: #605f9f; } .org-doc-markup { color: #605f9f; } .org-doc-view-svg { color: #000000; background-color: #ffffff; } .org-ecfpawXscratch-buffer-subtitle { } .org-ecfpawXscratch-buffer-title { font-size: 200%; font-style: italic; } .org-edebug-disabled-breakpoint { background-color: #ddffdd; } .org-edebug-enabled-breakpoint { color: #232323; background-color: #eab5ff; } .org-ediff-current-diff-a { color: #8f1313; background-color: #ffd6e0; } .org-ediff-current-diff-ancestor { background-color: #d4eaf3; } .org-ediff-current-diff-b { color: #004840; background-color: #c9ffea; } .org-ediff-current-diff-c { color: #553d00; background-color: #f4e8bd; } .org-ediff-even-diff-a { background-color: #eaefef; } .org-ediff-even-diff-ancestor { background-color: #eaefef; } .org-ediff-even-diff-b { background-color: #eaefef; } .org-ediff-even-diff-c { background-color: #eaefef; } .org-ediff-fine-diff-a { color: #8f1313; background-color: #f5bfc8; } .org-ediff-fine-diff-ancestor { color: #232323; background-color: #b5b8b8; } .org-ediff-fine-diff-b { color: #004840; background-color: #b3efdf; } .org-ediff-fine-diff-c { color: #553d00; background-color: #efd299; } .org-ediff-odd-diff-a { background-color: #eaefef; } .org-ediff-odd-diff-ancestor { background-color: #eaefef; } .org-ediff-odd-diff-b { background-color: #eaefef; } .org-ediff-odd-diff-c { background-color: #eaefef; } .org-edit-indirect-edited-region { color: #232323; background-color: #aae0bf; } .org-edmacro-label { color: #4244ef; } .org-eldoc-highlight-function-argument { color: #996c4f; background-color: #ffe9bf; } .org-elisp-shorthand-font-lock { color: #aa44c5; } .org-error { color: #c42d2f; } .org-ert-test-result-expected { color: #008a00; background-color: #ccefcf; } .org-ert-test-result-unexpected { color: #c42d2f; background-color: #ffdfda; } .org-escape { color: #aa44c5; } .org-escape-glyph { color: #065fff; } .org-eww-form-checkbox { color: #232323; background-color: #eaefef; } .org-eww-form-file { color: #232323; background-color: #b5b8b8; } .org-eww-form-select { color: #232323; background-color: #b5b8b8; } .org-eww-form-submit { color: #232323; background-color: #b5b8b8; } .org-eww-form-text { color: #232323; background-color: #eaefef; text-decoration: underline; } .org-eww-form-textarea { color: #232323; background-color: #eaefef; text-decoration: underline; } .org-eww-invalid-certificate { color: #c42d2f; } .org-eww-valid-certificate { color: #008a00; } .org-ffap { color: #232323; background-color: #eab5ff; } .org-file-name-shadow { color: #66657f; } .org-fill-column-indicator { color: #b5b8b8; background-color: #b5b8b8; } .org-fixed-pitch { } .org-fixed-pitch-serif { } .org-flyspell-duplicate { text-decoration: underline; } .org-flyspell-incorrect { text-decoration: underline; } .org-fringe { color: #232323; } .org-function-call { color: #517f3c; } .org-function-name { color: #00845f; } .org-geiser-font-lock-autodoc-current-arg { color: #996c4f; background-color: #ffe9bf; } .org-geiser-font-lock-autodoc-identifier { color: #605f9f; } .org-geiser-font-lock-doc-button { color: #1f6fbf; text-decoration: underline; } .org-geiser-font-lock-doc-link { color: #1f6fbf; text-decoration: underline; } .org-geiser-font-lock-doc-title { font-weight: bold; } .org-geiser-font-lock-error-link { color: #c42d2f; text-decoration: underline; } .org-geiser-font-lock-image-button { color: #008a00; text-decoration: underline; } .org-geiser-font-lock-repl-input { } .org-geiser-font-lock-repl-output { color: #004fc0; } .org-geiser-font-lock-repl-prompt { color: #1f6fbf; } .org-geiser-font-lock-xref-header { } .org-geiser-font-lock-xref-link { color: #1f6fbf; text-decoration: underline; } .org-git-commit-comment-action { color: #7a5f2f; } .org-git-commit-comment-branch-local { color: #4244ef; } .org-git-commit-comment-branch-remote { color: #00845f; } .org-git-commit-comment-detached { color: #4244ef; } .org-git-commit-comment-file { color: #c0469a; } .org-git-commit-keyword { color: #004fc0; } .org-git-commit-nonempty-second-line { color: #c42d2f; } .org-git-commit-overlong-summary { color: #996c4f; } .org-git-commit-summary { color: #204f9a; } .org-git-commit-trailer-token { color: #004fc0; } .org-git-commit-trailer-value { color: #4244ef; } .org-glyphless-char { font-size: 60%; } .org-grep-heading { color: #008a00; } .org-hbut { color: #232323; background-color: #b5b8b8; } .org-hbut-flash { color: #232323; background-color: #ff8f88; } .org-hbut-item { color: #008a00; } .org-header-line { background-color: #eaefef; } .org-header-line-active { background-color: #eaefef; } .org-header-line-highlight { color: #232323; background-color: #eab5ff; } .org-header-line-inactive { color: #66657f; background-color: #eaefef; } .org-help-argument-name { color: #3a6dd2; } .org-help-for-help-header { font-size: 126%; } .org-hi-aquamarine { color: #232323; background-color: #88c8ff; } .org-hi-black-b { color: #fcffff; background-color: #232323; } .org-hi-black-hb { color: #fcffff; background-color: #204f9a; } .org-hi-blue { color: #232323; background-color: #baeeff; } .org-hi-blue-b { color: #232323; background-color: #cbcfff; } .org-hi-green { color: #232323; background-color: #b3f6d0; } .org-hi-green-b { color: #232323; background-color: #8adf90; } .org-hi-pink { color: #232323; background-color: #df8fff; } .org-hi-red-b { color: #232323; background-color: #ff8f88; } .org-hi-salmon { color: #63192a; background-color: #f1c8b5; } .org-hi-yellow { color: #232323; background-color: #fac200; } .org-highlight { color: #232323; background-color: #eab5ff; } .org-hl-line { background-color: #dff6e4; } .org-holiday { color: #c0469a; } .org-homoglyph { color: #996c4f; } .org-ibut { color: #204f9a; text-decoration: underline; } .org-icomplete-first-match { color: #4244ef; font-weight: bold; } .org-icomplete-section { color: #66657f; font-style: italic; } .org-icomplete-selected-match { background-color: #cceff5; font-weight: bold; } .org-icomplete-vertical-selected-prefix-indicator { color: #065fff; } .org-icomplete-vertical-unselected-prefix-indicator { color: #66657f; } .org-icon { } .org-icon-button { color: #232323; background-color: #b5b8b8; } .org-info-header-node { color: #66657f; } .org-info-header-xref { color: #1f6fbf; } .org-info-index-match { color: #232323; background-color: #ffe9bf; } .org-info-menu-header { color: #4244ef; font-weight: bold; } .org-info-menu-star { color: #c42d2f; } .org-info-node { } .org-info-quoted { color: #c0469a; } .org-info-title-1 { color: #004fc0; font-weight: bold; } .org-info-title-2 { color: #00845f; font-weight: bold; } .org-info-title-3 { color: #7f5ae0; font-weight: bold; } .org-info-title-4 { color: #1f6fbf; font-weight: bold; } .org-info-xref { color: #1f6fbf; text-decoration: underline; } .org-internal-border { } .org-isearch { color: #232323; background-color: #fac200; } .org-isearch-fail { color: #c42d2f; background-color: #ffdfda; } .org-isearch-group-1 { color: #232323; background-color: #df8fff; } .org-isearch-group-2 { color: #232323; background-color: #8adf90; } .org-italic { font-style: italic; } .org-keyword { color: #004fc0; } .org-kmacro-menu-flagged { color: #c42d2f; background-color: #ffdfda; font-weight: bold; } .org-kmacro-menu-mark { } .org-kmacro-menu-marked { color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-lazy-highlight { color: #232323; background-color: #cbcfff; } .org-link { color: #1f6fbf; text-decoration: underline; } .org-link-visited { color: #aa44c5; text-decoration: underline; } .org-llama-XX-macro { color: #517f3c; } .org-llama-deleted-argument { } .org-llama-llama-macro { color: #004fc0; } .org-llama-mandatory-argument { color: #305f9f; } .org-llama-optional-argument { color: #7f5ae0; } .org-log-edit-header { } .org-log-edit-headers-separator { background-color: #b0b7c0; } .org-log-edit-summary { color: #204f9a; } .org-log-edit-unknown-header { color: #66657f; } .org-log-view-commit-body { } .org-log-view-file { } .org-log-view-message { color: #605f9f; } .org-magit-bisect-bad { color: #c42d2f; } .org-magit-bisect-good { color: #008a00; } .org-magit-bisect-skip { color: #996c4f; } .org-magit-blame-date { } .org-magit-blame-dimmed { color: #66657f; } .org-magit-blame-hash { } .org-magit-blame-heading { color: #232323; background-color: #b5b8b8; } .org-magit-blame-highlight { color: #232323; background-color: #b5b8b8; } .org-magit-blame-margin { color: #232323; background-color: #b5b8b8; } .org-magit-blame-name { } .org-magit-blame-summary { } .org-magit-branch-current { color: #4244ef; } .org-magit-branch-local { color: #4244ef; } .org-magit-branch-remote { color: #00845f; } .org-magit-branch-remote-head { color: #00845f; } .org-magit-branch-upstream { } .org-magit-branch-warning { color: #996c4f; } .org-magit-cherry-equivalent { } .org-magit-cherry-unmatched { color: #c42d2f; } .org-magit-diff-added { color: #004840; background-color: #d7fff5; } .org-magit-diff-added-highlight { color: #004840; background-color: #c9ffea; } .org-magit-diff-base { color: #553d00; background-color: #f9efcb; } .org-magit-diff-base-highlight { color: #553d00; background-color: #f4e8bd; } .org-magit-diff-conflict-heading { background-color: #f7f9f9; } .org-magit-diff-conflict-heading-highlight { background-color: #b5b8b8; } .org-magit-diff-context { color: #66657f; } .org-magit-diff-context-highlight { background-color: #eaefef; } .org-magit-diff-file-heading { color: #4244ef; } .org-magit-diff-file-heading-highlight { color: #4244ef; background-color: #d7dbdb; } .org-magit-diff-file-heading-selection { background-color: #aae0bf; } .org-magit-diff-hunk-heading { background-color: #f7f9f9; } .org-magit-diff-hunk-heading-highlight { background-color: #b5b8b8; } .org-magit-diff-hunk-heading-selection { background-color: #aae0bf; } .org-magit-diff-hunk-region { } .org-magit-diff-lines-boundary { background-color: #232323; } .org-magit-diff-lines-heading { color: #fcffff; background-color: #66657f; } .org-magit-diff-our { color: #8f1313; background-color: #ffe9e6; } .org-magit-diff-our-highlight { color: #8f1313; background-color: #ffd6e0; } .org-magit-diff-removed { color: #8f1313; background-color: #ffe9e6; } .org-magit-diff-removed-highlight { color: #8f1313; background-color: #ffd6e0; } .org-magit-diff-revision-summary { background-color: #f7f9f9; } .org-magit-diff-revision-summary-highlight { background-color: #b5b8b8; } .org-magit-diff-their { color: #004840; background-color: #d7fff5; } .org-magit-diff-their-highlight { color: #004840; background-color: #c9ffea; } .org-magit-diff-whitespace-warning { background-color: #fac200; } .org-magit-diffstat-added { color: #006700; } .org-magit-diffstat-removed { color: #aa2222; } .org-magit-dimmed { color: #66657f; } .org-magit-filename { color: #c0469a; } .org-magit-hash { color: #605f9f; } .org-magit-head { color: #4244ef; } .org-magit-header-line { } .org-magit-header-line-log-select { } .org-magit-keyword { color: #004fc0; } .org-magit-keyword-squash { color: #996c4f; } .org-magit-left-margin { color: #232323; background-color: #fcffff; } .org-magit-log-author { color: #3a6dd2; } .org-magit-log-date { color: #007a85; } .org-magit-log-graph { color: #66657f; } .org-magit-mode-line-process { color: #002580; } .org-magit-mode-line-process-error { color: #7f0000; } .org-magit-popup-argument { color: #996c4f; } .org-magit-popup-disabled-argument { color: #66657f; } .org-magit-popup-heading { color: #004fc0; } .org-magit-popup-key { color: #1f6fbf; } .org-magit-popup-option-value { color: #4244ef; } .org-magit-process-ng { color: #c42d2f; } .org-magit-process-ok { color: #008a00; } .org-magit-reflog-amend { color: #996c4f; } .org-magit-reflog-checkout { } .org-magit-reflog-cherry-pick { color: #008a00; } .org-magit-reflog-commit { } .org-magit-reflog-merge { color: #008a00; } .org-magit-reflog-other { color: #065fff; } .org-magit-reflog-rebase { color: #c0469a; } .org-magit-reflog-remote { color: #00845f; } .org-magit-reflog-reset { color: #c42d2f; } .org-magit-refname { color: #66657f; } .org-magit-refname-pullreq { color: #66657f; } .org-magit-refname-stash { color: #66657f; } .org-magit-refname-wip { color: #66657f; } .org-magit-section-child-count { } .org-magit-section-heading { color: #204f9a; } .org-magit-section-heading-selection { background-color: #aae0bf; } .org-magit-section-highlight { background-color: #d7dbdb; } .org-magit-section-secondary-heading { } .org-magit-sequence-done { color: #008a00; } .org-magit-sequence-drop { color: #c42d2f; } .org-magit-sequence-exec { } .org-magit-sequence-head { color: #4244ef; } .org-magit-sequence-onto { color: #66657f; } .org-magit-sequence-part { color: #996c4f; } .org-magit-sequence-pick { } .org-magit-sequence-stop { color: #c42d2f; } .org-magit-signature-bad { color: #c42d2f; } .org-magit-signature-error { color: #c42d2f; } .org-magit-signature-expired { color: #996c4f; } .org-magit-signature-expired-key { color: #996c4f; } .org-magit-signature-good { color: #008a00; } .org-magit-signature-revoked { color: #996c4f; } .org-magit-signature-untrusted { color: #66657f; } .org-magit-tag { color: #065fff; } .org-makefile-makepp-perl { background-color: #eaefef; } .org-makefile-shell { color: #232323; background-color: #fcffff; } .org-makefile-space { background-color: #f7f9f9; } .org-makefile-targets { color: #00845f; } .org-man-overstrike { color: #4244ef; font-weight: bold; } .org-man-reverse { color: #232323; background-color: #eab5ff; } .org-man-underline { color: #00845f; text-decoration: underline; } .org-marginalia-archive { color: #4244ef; } .org-marginalia-char { color: #c0469a; } .org-marginalia-date { color: #007a85; } .org-marginalia-documentation { color: #605f9f; } .org-marginalia-file-name { color: #66657f; } .org-marginalia-file-owner { color: #66657f; } .org-marginalia-file-priv-dir { color: #4244ef; } .org-marginalia-file-priv-exec { color: #00845f; } .org-marginalia-file-priv-link { color: #1f6fbf; } .org-marginalia-file-priv-no { color: #66657f; } .org-marginalia-file-priv-other { color: #c0469a; } .org-marginalia-file-priv-rare { color: #065fff; } .org-marginalia-file-priv-read { color: #232323; } .org-marginalia-file-priv-write { color: #4244ef; } .org-marginalia-function { color: #00845f; } .org-marginalia-installed { color: #008a00; } .org-marginalia-lighter { color: #66657f; } .org-marginalia-list { color: #065fff; } .org-marginalia-mode { color: #065fff; } .org-marginalia-modified { color: #996c4f; } .org-marginalia-null { color: #66657f; } .org-marginalia-number { color: #065fff; } .org-marginalia-off { color: #c42d2f; } .org-marginalia-on { color: #008a00; } .org-marginalia-size { color: #3a6dd2; } .org-marginalia-string { color: #4244ef; } .org-marginalia-symbol { color: #1f6fbf; } .org-marginalia-true { } .org-marginalia-type { color: #7f5ae0; } .org-marginalia-value { color: #66657f; } .org-marginalia-version { color: #007a85; } .org-markdown-blockquote { color: #605f9f; } .org-markdown-bold { font-weight: bold; } .org-markdown-code { background-color: #eaefef; } .org-markdown-comment { color: #7a5f2f; } .org-markdown-footnote-marker { color: #66657f; } .org-markdown-footnote-text { color: #7a5f2f; } .org-markdown-gfm-checkbox { color: #996c4f; } .org-markdown-header { } .org-markdown-header-delimiter { color: #66657f; } .org-markdown-header-face-1 { color: #004fc0; font-weight: bold; } .org-markdown-header-face-2 { color: #00845f; font-weight: bold; } .org-markdown-header-face-3 { color: #7f5ae0; font-weight: bold; } .org-markdown-header-face-4 { color: #1f6fbf; font-weight: bold; } .org-markdown-header-face-5 { color: #4244ef; font-weight: bold; } .org-markdown-header-face-6 { color: #468400; font-weight: bold; } .org-markdown-header-rule { color: #66657f; } .org-markdown-highlight { color: #232323; background-color: #eab5ff; } .org-markdown-highlighting { color: #232323; background-color: #aae0bf; } .org-markdown-hr { color: #66657f; } .org-markdown-html-attr-name { color: #3a6dd2; } .org-markdown-html-attr-value { color: #4244ef; } .org-markdown-html-entity { color: #3a6dd2; } .org-markdown-html-tag-delimiter { color: #66657f; } .org-markdown-html-tag-name { color: #7f5ae0; } .org-markdown-inline-code { color: #007a85; } .org-markdown-italic { font-style: italic; } .org-markdown-language-info { color: #4244ef; } .org-markdown-language-keyword { color: #66657f; background-color: #eaefef; } .org-markdown-line-break { color: #c42d2f; text-decoration: underline; } .org-markdown-link { color: #1f6fbf; text-decoration: underline; } .org-markdown-link-title { color: #7a5f2f; } .org-markdown-list { color: #66657f; } .org-markdown-markup { color: #66657f; } .org-markdown-math { color: #4244ef; } .org-markdown-metadata-key { } .org-markdown-metadata-value { color: #4244ef; } .org-markdown-missing-link { color: #996c4f; } .org-markdown-plain-url { color: #1f6fbf; text-decoration: underline; } .org-markdown-pre { background-color: #eaefef; } .org-markdown-reference { color: #66657f; } .org-markdown-strike-through { text-decoration: line-through; } .org-markdown-table { color: #204f9a; } .org-markdown-url { color: #204f9a; } .org-match { color: #232323; background-color: #ffe9bf; } .org-menu { color: #232323; background-color: #b5b8b8; } .org-message-cited-text-1 { color: #004fc0; } .org-message-cited-text-2 { color: #007a85; } .org-message-cited-text-3 { color: #996c4f; } .org-message-cited-text-4 { color: #7f5ae0; } .org-message-header-cc { color: #3a6dd2; } .org-message-header-name { } .org-message-header-newsgroups { color: #1f6fbf; } .org-message-header-other { color: #1f6fbf; } .org-message-header-subject { color: #065fff; } .org-message-header-to { color: #3a6dd2; } .org-message-header-xheader { color: #1f6fbf; } .org-message-mml { color: #1f6fbf; } .org-message-separator { color: #232323; background-color: #f7f9f9; } .org-message-signature-separator { font-weight: bold; } .org-mh-folder-address { color: #00008b; } .org-mh-folder-allowlisted { color: #b8860b; } .org-mh-folder-blocklisted { color: #8b8989; } .org-mh-folder-body { color: #8b8989; } .org-mh-folder-cur-msg-number { color: #8b8989; font-weight: bold; } .org-mh-folder-date { color: #8b8989; } .org-mh-folder-deleted { color: #8b8989; } .org-mh-folder-followup { color: #0000cd; } .org-mh-folder-msg-number { color: #8b8989; } .org-mh-folder-refiled { color: #b8860b; } .org-mh-folder-sent-to-me-hint { color: #8b8989; } .org-mh-folder-sent-to-me-sender { color: #0000cd; } .org-mh-folder-subject { color: #00008b; } .org-mh-folder-tick { background-color: #dddf7e; } .org-mh-folder-to { color: #bc8f8f; } .org-mh-letter-header-field { background-color: #e5e5e5; } .org-mh-search-folder { color: #006400; font-weight: bold; } .org-mh-show-cc { color: #b8860b; } .org-mh-show-date { color: #228b22; } .org-mh-show-from { color: #cd0000; } .org-mh-show-header { color: #bc8f8f; } .org-mh-show-pgg-bad { color: #ff1493; font-weight: bold; } .org-mh-show-pgg-good { color: #32cd32; font-weight: bold; } .org-mh-show-pgg-unknown { color: #eead0e; font-weight: bold; } .org-mh-show-signature { font-style: italic; } .org-mh-show-subject { color: #00008b; } .org-mh-show-to { color: #8b4513; } .org-mh-speedbar-folder { color: #00008b; } .org-mh-speedbar-folder-with-unseen-messages { color: #00008b; font-weight: bold; } .org-mh-speedbar-selected-folder { color: #ff0000; text-decoration: underline; } .org-mh-speedbar-selected-folder-with-unseen-messages { color: #ff0000; font-weight: bold; text-decoration: underline; } .org-minibuffer-prompt { color: #1f6fbf; } .org-misc-punctuation { color: #232323; } .org-mm-command-output { color: #1f6fbf; } .org-mm-uu-extract { color: #1f6fbf; } .org-mode-line { color: #051524; background-color: #9ad0ff; } .org-mode-line-active { color: #051524; background-color: #9ad0ff; } .org-mode-line-buffer-id { font-weight: bold; } .org-mode-line-emphasis { color: #002580; font-style: italic; } .org-mode-line-highlight { color: #232323; background-color: #eab5ff; } .org-mode-line-inactive { color: #66657f; background-color: #d7dbdb; } .org-modus-themes-bold { } .org-modus-themes-button { color: #232323; background-color: #b5b8b8; } .org-modus-themes-completion-match-0 { color: #4244ef; font-weight: bold; } .org-modus-themes-completion-match-1 { color: #00845f; font-weight: bold; } .org-modus-themes-completion-match-2 { color: #c0469a; font-weight: bold; } .org-modus-themes-completion-match-3 { color: #065fff; font-weight: bold; } .org-modus-themes-completion-selected { background-color: #cceff5; font-weight: bold; } .org-modus-themes-fixed-pitch { } .org-modus-themes-heading-0 { color: #007a85; font-weight: bold; } .org-modus-themes-heading-1 { color: #004fc0; font-weight: bold; } .org-modus-themes-heading-2 { color: #00845f; font-weight: bold; } .org-modus-themes-heading-3 { color: #7f5ae0; font-weight: bold; } .org-modus-themes-heading-4 { color: #1f6fbf; font-weight: bold; } .org-modus-themes-heading-5 { color: #4244ef; font-weight: bold; } .org-modus-themes-heading-6 { color: #468400; font-weight: bold; } .org-modus-themes-heading-7 { color: #aa44c5; font-weight: bold; } .org-modus-themes-heading-8 { color: #3a6dd2; font-weight: bold; } .org-modus-themes-prompt { color: #1f6fbf; } .org-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 { background-color: #d4eaf3; } .org-negation-char { color: #c42d2f; } .org-next-error { color: #c42d2f; background-color: #ffdfda; } .org-next-error-message { color: #232323; background-color: #eab5ff; } .org-nobreak-hyphen { color: #c42d2f; } .org-nobreak-space { color: #c42d2f; text-decoration: underline; } .org-number { color: #232323; } .org-olivetti-fringe { } .org-operator { color: #232323; } .org-org-agenda-calendar-daterange { color: #204f9a; } .org-org-agenda-calendar-event { color: #204f9a; } .org-org-agenda-calendar-sexp { color: #204f9a; } .org-org-agenda-clocking { color: #996c4f; background-color: #ffe9bf; } .org-org-agenda-column-dateline { background-color: #f7f9f9; } .org-org-agenda-current-time { color: #232323; } .org-org-agenda-date { color: #1f6fbf; font-weight: bold; } .org-org-agenda-date-today { color: #1f6fbf; font-weight: bold; text-decoration: underline; } .org-org-agenda-date-weekend { color: #9a4366; font-weight: bold; } .org-org-agenda-date-weekend-today { color: #9a4366; font-weight: bold; text-decoration: underline; } .org-org-agenda-diary { color: #204f9a; } .org-org-agenda-dimmed-todo { color: #66657f; } .org-org-agenda-done { color: #008a00; } .org-org-agenda-filter-category { color: #7f0000; } .org-org-agenda-filter-effort { color: #7f0000; } .org-org-agenda-filter-regexp { color: #7f0000; } .org-org-agenda-filter-tags { color: #7f0000; } .org-org-agenda-restriction-lock { color: #66657f; background-color: #eaefef; } .org-org-agenda-structure { color: #204f9a; font-weight: bold; } .org-org-agenda-structure-filter { color: #996c4f; font-weight: bold; } .org-org-agenda-structure-secondary { color: #605f9f; } .org-org-archived { color: #232323; background-color: #f7f9f9; } .org-org-block { background-color: #eaefef; } .org-org-block-begin-line { color: #66657f; background-color: #eaefef; } .org-org-block-end-line { color: #66657f; background-color: #eaefef; } .org-org-checkbox { color: #996c4f; } .org-org-checkbox-statistics-done { color: #008a00; } .org-org-checkbox-statistics-todo { color: #c42d2f; } .org-org-cite { color: #1f6fbf; text-decoration: underline; } .org-org-cite-key { color: #1f6fbf; text-decoration: underline; } .org-org-clock-overlay { color: #232323; background-color: #aae0bf; } .org-org-code { color: #007a85; } .org-org-column { color: #232323; background-color: #eaefef; } .org-org-date { color: #007a85; } .org-org-date-selected { color: #007a85; } .org-org-default { color: #232323; background-color: #fcffff; } .org-org-dispatcher-highlight { color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-org-document-info { color: #204f9a; } .org-org-document-info-keyword { color: #66657f; } .org-org-document-title { color: #007a85; font-weight: bold; } .org-org-done { color: #008a00; } .org-org-drawer { color: #66657f; } .org-org-ellipsis { } .org-org-footnote { color: #1f6fbf; text-decoration: underline; } .org-org-formula { color: #996c4f; } .org-org-habit-alert { background-color: #ffcf00; } .org-org-habit-alert-future { background-color: #f9ff00; } .org-org-habit-clear { background-color: #7f90ff; } .org-org-habit-clear-future { background-color: #a6c0ff; } .org-org-habit-overdue { background-color: #ef7969; } .org-org-habit-overdue-future { background-color: #ffaab4; } .org-org-habit-ready { background-color: #45c050; } .org-org-habit-ready-future { background-color: #75ef30; } .org-org-headline-done { color: #008a00; } .org-org-headline-todo { color: #c42d2f; } .org-org-hide { color: #fcffff; } .org-org-imminent-deadline { color: #c42d2f; } .org-org-indent { color: #fcffff; } .org-org-inline-src-block { background-color: #eaefef; } .org-org-latex-and-related { color: #7f5ae0; } .org-org-level-1 { color: #004fc0; font-weight: bold; } .org-org-level-2 { color: #00845f; font-weight: bold; } .org-org-level-3 { color: #7f5ae0; font-weight: bold; } .org-org-level-4 { color: #1f6fbf; font-weight: bold; } .org-org-level-5 { color: #4244ef; font-weight: bold; } .org-org-level-6 { color: #468400; font-weight: bold; } .org-org-level-7 { color: #aa44c5; font-weight: bold; } .org-org-level-8 { color: #3a6dd2; font-weight: bold; } .org-org-link { color: #1f6fbf; text-decoration: underline; } .org-org-list-dt { color: #204f9a; } .org-org-macro { color: #7f5ae0; } .org-org-meta-line { color: #66657f; } .org-org-mode-line-clock { } .org-org-mode-line-clock-overrun { color: #7f0000; } .org-org-priority { color: #7a5f2f; } .org-org-property-value { color: #204f9a; } .org-org-quote { background-color: #eaefef; } .org-org-scheduled { color: #7a5f2f; } .org-org-scheduled-today { color: #996c4f; } .org-org-sexp-date { color: #007a85; } .org-org-special-keyword { color: #66657f; } .org-org-table { color: #204f9a; } .org-org-table-row { color: #204f9a; } .org-org-tag { color: #7a5f2f; } .org-org-tag-group { color: #7a5f2f; } .org-org-target { text-decoration: underline; } .org-org-time-grid { color: #66657f; } .org-org-todo { color: #c42d2f; } .org-org-upcoming-deadline { color: #9a4366; } .org-org-upcoming-distant-deadline { color: #232323; } .org-org-verbatim { color: #c0469a; } .org-org-verse { background-color: #eaefef; } .org-org-warning { color: #996c4f; } .org-outline-1 { color: #004fc0; font-weight: bold; } .org-outline-2 { color: #00845f; font-weight: bold; } .org-outline-3 { color: #7f5ae0; font-weight: bold; } .org-outline-4 { color: #1f6fbf; font-weight: bold; } .org-outline-5 { color: #4244ef; font-weight: bold; } .org-outline-6 { color: #468400; font-weight: bold; } .org-outline-7 { color: #aa44c5; font-weight: bold; } .org-outline-8 { color: #3a6dd2; font-weight: bold; } .org-preprocessor { color: #aa44c5; } .org-property-name { color: #1f6fbf; } .org-property-use { color: #1f6fbf; } .org-pulse-highlight { background-color: #1640b0; } .org-pulse-highlight-start { background-color: #cbcfff; } .org-punctuation { color: #232323; } .org-query-replace { color: #232323; background-color: #ff8f88; } .org-rainbow-delimiters-base { color: #232323; } .org-rainbow-delimiters-base-error { color: #c42d2f; background-color: #ffdfda; } .org-rainbow-delimiters-depth-1 { color: #007a85; } .org-rainbow-delimiters-depth-2 { color: #004fc0; } .org-rainbow-delimiters-depth-3 { color: #00845f; } .org-rainbow-delimiters-depth-4 { color: #7f5ae0; } .org-rainbow-delimiters-depth-5 { color: #1f6fbf; } .org-rainbow-delimiters-depth-6 { color: #4244ef; } .org-rainbow-delimiters-depth-7 { color: #468400; } .org-rainbow-delimiters-depth-8 { color: #aa44c5; } .org-rainbow-delimiters-depth-9 { color: #3a6dd2; } .org-rainbow-delimiters-mismatched { color: #996c4f; background-color: #ffe9bf; } .org-rainbow-delimiters-unmatched { color: #c42d2f; background-color: #ffdfda; } .org-read-multiple-choice { color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-rectangle-preview { color: #232323; background-color: #b5b8b8; } .org-regexp { color: #4244ef; } .org-regexp-grouping-backslash { color: #aa44c5; } .org-regexp-grouping-construct { color: #cf2f4f; } .org-region { background-color: #d4eaf3; } .org-rmail-header-name { font-weight: bold; } .org-rmail-highlight { color: #1f6fbf; font-weight: bold; } .org-scroll-bar { color: #b0b7c0; } .org-secondary-selection { color: #232323; background-color: #aae0bf; } .org-separator-line { text-decoration: underline; } .org-sgml-namespace { color: #1f6fbf; } .org-sh-escaped-newline { color: #4244ef; } .org-sh-heredoc { color: #4244ef; } .org-sh-quoted-exec { color: #1f6fbf; } .org-shadow { color: #66657f; } .org-shell-highlight-undef-alias { color: #3a6dd2; } .org-shell-highlight-undef-defined { color: #00845f; } .org-shell-highlight-undef-undefined { color: #996c4f; } .org-shortdoc-heading { color: #004fc0; font-weight: bold; } .org-shortdoc-section { } .org-show-paren-match { color: #232323; background-color: #cab0ef; } .org-show-paren-match-expression { background-color: #efd3f5; } .org-show-paren-mismatch { color: #c42d2f; background-color: #ffdfda; } .org-shr-abbreviation { text-decoration: underline; } .org-shr-code { color: #c0469a; } .org-shr-h1 { color: #004fc0; font-weight: bold; } .org-shr-h2 { color: #00845f; font-weight: bold; } .org-shr-h3 { color: #7f5ae0; font-weight: bold; } .org-shr-h4 { color: #1f6fbf; font-weight: bold; } .org-shr-h5 { color: #4244ef; font-weight: bold; } .org-shr-h6 { color: #468400; font-weight: bold; } .org-shr-link { color: #1f6fbf; text-decoration: underline; } .org-shr-mark { color: #232323; background-color: #ffe9bf; } .org-shr-selected-link { color: #008a00; background-color: #ccefcf; font-weight: bold; } .org-shr-sliced-image { } .org-shr-strike-through { text-decoration: line-through; } .org-shr-sup { font-size: 80%; } .org-shr-text { font-size: 110%; } .org-string { color: #4244ef; } .org-success { color: #008a00; } .org-tab-bar { background-color: #d7dbdb; } .org-tab-bar-tab { background-color: #fcffff; } .org-tab-bar-tab-group-current { color: #204f9a; background-color: #fcffff; } .org-tab-bar-tab-group-inactive { color: #204f9a; background-color: #d7dbdb; } .org-tab-bar-tab-highlight { color: #232323; background-color: #eab5ff; } .org-tab-bar-tab-inactive { background-color: #b5b8b8; } .org-tab-bar-tab-ungrouped { background-color: #b5b8b8; } .org-tab-line { background-color: #d7dbdb; font-size: 95%; } .org-table-cell { background-color: #eaefef; } .org-tabulated-list-fake-header { font-weight: bold; text-decoration: underline; text-decoration: overline; } .org-texinfo-heading { color: #00845f; } .org-textsec-suspicious { } .org-trailing-whitespace { background-color: #fac200; } .org-treesit-explorer-anonymous-node { color: #66657f; } .org-treesit-explorer-field-name { } .org-tty-menu-disabled { color: #66657f; background-color: #f7f9f9; } .org-tty-menu-enabled { color: #232323; background-color: #f7f9f9; font-weight: bold; } .org-tty-menu-selected { color: #232323; background-color: #cbcfff; } .org-tutorial-warning { color: #996c4f; } .org-type { color: #7f5ae0; } .org-underline { text-decoration: underline; } .org-variable-name { color: #3a6dd2; } .org-variable-pitch { } .org-variable-pitch-text { font-size: 110%; } .org-variable-use { color: #305f9f; } .org-warning { color: #996c4f; } .org-warning-1 { color: #996c4f; }
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
© tusharhero 2024-2026, check licenses page for details.
Date: 2025-04-25 Fri 00:00