Commit 1eb6baf34570
Changed files (9)
.gitignore
@@ -25,4 +25,8 @@ projectile-bookmarks.eld
# dap-mode
.dap-breakpoints
-.extension
\ No newline at end of file
+.extension
+
+# publishing
+publish.el
+sitemap.org
\ No newline at end of file
_setup.org
@@ -0,0 +1,14 @@
+#+AUTHOR: Vincent Demeester
+#+EMAIL: vincent@sbr.pm
+#+EXPORT_EXCLUDE_TAGS: noexport
+#+STARTUP: showall
+
+#+OPTIONS: ':t *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline author:t c:nil
+#+OPTIONS: creator:comment d:(not LOGBOOK) date:t e:t email:nil f:t inline:t
+#+OPTIONS: num:t p:nil pri:t stat:t tags:t tasks:t tex:t timestamp:t toc:nil
+#+OPTIONS: todo:t |:t
+#+CREATOR: Emacs 24.3.50.3 (Org mode 8.0.3)
+#+LANGUAGE: en
+
+#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./notes.css"/>
+#+OPTIONS: html-style:nil
emacs.org
@@ -1,3 +1,4 @@
+#+SETUPFILE: ./_setup.org
#+TITLE: Vincent Demeester's .emacs.d
* Overview
index.org
@@ -0,0 +1,34 @@
+#+SETUPFILE: ./_setup.org
+#+TITLE: vdemeester's .emacs.d
+
+#+BEGIN_QUOTE
+My emacs setup is tested to work only with emacs 26.1 and newer versions. If you are on
+older versions, I would recommend that you upgrade to the [[https://www.gnu.org/software/emacs/download.html][latest available stable version]].
+#+END_QUOTE
+
+*Warning: this repository is being /transformed/ a bit: slowly migrating to literate programming ([[./emacs.org][emacs.org]]) and most likely moving into [[https://github.com/vdemeester/home][=home=]] at some point*
+
+* Few notes
+
+- This works best in =NixOS=, coupled with my [[https://github.com/vdemeester/home][=home=]] repository (especially with my
+ [[https://github.com/vdemeester/home/blob/master/modules/profiles/emacs.nix][emacs.nix]] file).
+- Almost all setup files have setup done as per my personal tastes and needs.
+- If you want to change the default theme, font size, etc, you would want to edit
+ =setup-files/setup-style.el=
+
+* Key points
+
+- Use of my minor mode =vde-mode= to enable my custom key-bindings. Doing so allows me to
+ force override my bindings in all major and minor modes. If I ever need to try out the
+ default emacs bindings, I can simply disable =vde-mode= by doing =M-x vde-mode=. /It
+ is enabled globally by default./
+- Use of =use-package= in load all packages for faster load times.
+- Use of =bind-keys= allows me to review my custom bindings in a single buffer by doing
+ =M-x describe-personal-keybindings=.
+- Certain packages will be loaded only if you have the associated applications installed.
+
+* Feedback
+
+Use at your own risk, but I am definitely looking forward to suggestions, corrections.
+
+Thanks!
Makefile
@@ -0,0 +1,7 @@
+all: publish
+
+publish.el: publish.org
+ emacs --batch --eval "(require 'ob-tangle)" --eval '(org-babel-tangle-file "publish.org")'
+
+publish: publish.el
+ emacs -batch --load publish.el --eval '(clean-and-publish)'
notes.css
@@ -0,0 +1,1274 @@
+@font-face {
+ font-family: "GraublauWeb";
+ src: url("/fonts/GraublauWeb.otf") format("opentype");
+}
+@font-face {
+ font-family: "GraublauWeb";
+ font-weight: bold;
+ src: url("/fonts/GraublauWebBold.otf") format("opentype");
+}
+@font-face {
+ font-family: "Merriweather";
+ src: url("/fonts/Merriweather-Regular.otf") format("opentype");
+}
+@font-face {
+ font-family: "Merriweather";
+ font-weight: bold;
+ src: url("/fonts/Merriweather-Bold.otf") format("opentype");
+}
+@font-face {
+ font-family: "Merriweather";
+ font-weight: bold;
+ font-style: italic;
+ src: url("/fonts/Merriweather-BoldItalic.otf") format("opentype");
+}
+@font-face {
+ font-family: "Merriweather";
+ font-style: italic;
+ src: url("/fonts/Merriweather-Italic.otf") format("opentype");
+}
+@font-face {
+ font-family: "Merriweather";
+ font-weight: lighter;
+ font-style: italic;
+ src: url("/fonts/Merriweather-LightItalic.otf") format("opentype");
+}
+@font-face {
+ font-family: "Merriweather";
+ font-weight: lighter;
+ src: url("/fonts/Merriweather-Light.otf") format("opentype");
+}
+
+html {
+ font-family:sans-serif;
+ line-height:1.15;
+ -ms-text-size-adjust:100%;
+ -webkit-text-size-adjust:100%;
+ --font-mono: 'Fira Code','Deja Vu Sans Mono','Bitstream Vera Sans Mono','Source Code Pro','Courier New',monospace;
+ --font-header: 'Merriweather','Linux Libertine','Georgia','Times',serif;
+
+}
+body {
+ margin:0
+}
+article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary {
+ display:block
+}
+audio,canvas,progress,video {
+ display:inline-block
+}
+audio:not([controls]) {
+ display:none;
+ height:0
+}
+progress {
+ vertical-align:baseline
+}
+[hidden],template {
+ display:none
+}
+a {
+ background-color:transparent;
+ -webkit-text-decoration-skip:objects;
+ border-bottom:1px solid;
+}
+a:active,a:hover {
+ outline-width:0
+}
+div#table-of-contents a {
+ border-bottom: 0px solid;
+}
+abbr[title] {
+ border-bottom:none;
+ text-decoration:underline;
+ text-decoration:underline dotted
+}
+b,strong {
+ font-weight:inherit;
+ font-weight:bolder
+}
+dfn {
+ font-style:italic
+}
+h1 {
+ font-size:2em;
+ margin:.67em 0
+}
+mark {
+ background-color:#ff0;
+ color:#000
+}
+small {
+ font-size:80%
+}
+sub,sup {
+ font-size:75%;
+ line-height:0;
+ position:relative;
+ vertical-align:baseline
+}
+sub {
+ bottom:-.25em
+}
+sup {
+ top:-.5em
+}
+img {
+ border-style:none
+}
+svg:not(:root) {
+ overflow:hidden
+}
+code,kbd,pre,samp {
+ font-family:monospace,monospace;
+ font-family: var(--font-mono);
+ font-size:1em
+}
+figure {
+ margin:1em 40px
+}
+hr {
+ box-sizing:content-box;
+ height:0;
+ overflow:visible
+}
+button,input,optgroup,select,textarea {
+ font:inherit;
+ margin:0
+}
+optgroup {
+ font-weight:700
+}
+button,input {
+ overflow:visible
+}
+button,select {
+ text-transform:none
+}
+[type=reset],[type=submit],button,html [type=button] {
+ -webkit-appearance:button
+}
+[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner {
+ border-style:none;
+ padding:0
+}
+[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring {
+ outline:1px dotted ButtonText
+}
+fieldset {
+ border:1px solid silver;
+ margin:0 2px;
+ padding:.35em .625em .75em
+}
+legend {
+ box-sizing:border-box;
+ color:inherit;
+ display:table;
+ max-width:100%;
+ padding:0;
+ white-space:normal
+}
+textarea {
+ overflow:auto
+}
+[type=checkbox],[type=radio] {
+ box-sizing:border-box;
+ padding:0
+}
+[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button {
+ height:auto
+}
+[type=search] {
+ -webkit-appearance:textfield;
+ outline-offset:-2px
+}
+[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration {
+ -webkit-appearance:none
+}
+::-webkit-input-placeholder {
+ color:inherit;
+ opacity:.54
+}
+::-webkit-file-upload-button {
+ -webkit-appearance:button;
+ font:inherit
+}
+.org-bold {
+ font-weight:700
+}
+.org-bold-italic {
+ font-weight:700;
+ font-style:italic
+}
+.org-buffer-menu-buffer {
+ font-weight:700
+}
+.org-builtin {
+ color:#483d8b
+}
+.org-button {
+ color:#3a5fcd;
+ text-decoration:underline
+}
+.org-calendar-month-header {
+ color:#00f
+}
+.org-calendar-today {
+ text-decoration:underline
+}
+.org-calendar-weekday-header {
+ color:#008b8b
+}
+.org-calendar-weekend-header {
+ color:#b22222
+}
+.org-comint-highlight-input {
+ font-weight:700
+}
+.org-comint-highlight-prompt {
+ color:#0000cd
+}
+.org-comment,.org-comment-delimiter {
+ color:#b22222
+}
+.org-constant {
+ color:#008b8b
+}
+.org-diary {
+ color:red
+}
+.org-doc {
+ color:#8b2252
+}
+.org-error {
+ color:red;
+ font-weight:700
+}
+.org-escape-glyph {
+ color:brown
+}
+.org-file-name-shadow {
+ color:#7f7f7f
+}
+.org-fringe {
+ background-color:#f2f2f2
+}
+.org-function-name {
+ color:#00f
+}
+.org-glyphless-char {
+ font-size:60%
+}
+.org-header-line {
+ color:#333;
+ background-color:#e5e5e5
+}
+.org-help-argument-name {
+ font-style:italic
+}
+.org-highlight {
+ background-color:#b4eeb4
+}
+.org-holiday {
+ background-color:pink
+}
+.org-info-header-node {
+ color:brown;
+ font-weight:700;
+ font-style:italic
+}
+.org-info-header-xref {
+ color:#3a5fcd;
+ text-decoration:underline
+}
+.org-info-index-match {
+ background-color:#ff0
+}
+.org-info-menu-header {
+ font-weight:700
+}
+.org-info-menu-star {
+ color:red
+}
+.org-info-node {
+ color:brown;
+ font-weight:700;
+ font-style:italic
+}
+.org-info-title-1 {
+ font-size:172%;
+ font-weight:700
+}
+.org-info-title-2 {
+ font-size:144%;
+ font-weight:700
+}
+.org-info-title-3 {
+ font-size:120%;
+ font-weight:700
+}
+.org-info-title-4 {
+ font-weight:700
+}
+.org-info-xref {
+ color:#3a5fcd;
+ text-decoration:underline
+}
+.org-italic {
+ font-style:italic
+}
+.org-keyword {
+ color:#a020f0
+}
+.org-lazy-highlight {
+ background-color:#afeeee
+}
+.org-link {
+ color:#3a5fcd;
+ text-decoration:underline
+}
+.org-link-visited {
+ color:#8b008b;
+ text-decoration:underline
+}
+.org-makefile-makepp-perl {
+ background-color:#bfefff
+}
+.org-makefile-space {
+ background-color:#ff69b4
+}
+.org-makefile-targets {
+ color:#00f
+}
+.org-match {
+ background-color:#ff0
+}
+.org-next-error {
+ background-color:gtk_selection_bg_color
+}
+.org-nobreak-space {
+ color:brown;
+ text-decoration:underline
+}
+.org-org-agenda-calendar-event,.org-org-agenda-calendar-sexp {
+ color:#000;
+ background-color:#fff
+}
+.org-org-agenda-clocking {
+ background-color:#ff0
+}
+.org-org-agenda-column-dateline {
+ background-color:#e5e5e5
+}
+.org-org-agenda-current-time {
+ color:#b8860b
+}
+.org-org-agenda-date {
+ color:#00f
+}
+.org-org-agenda-date-today {
+ color:#00f;
+ font-weight:700;
+ font-style:italic
+}
+.org-org-agenda-date-weekend {
+ color:#00f;
+ font-weight:700
+}
+.org-org-agenda-diary {
+ color:#000;
+ background-color:#fff
+}
+.org-org-agenda-dimmed-todo {
+ color:#7f7f7f
+}
+.org-org-agenda-done {
+ color:#228b22
+}
+.org-org-agenda-filter-category,.org-org-agenda-filter-effort,.org-org-agenda-filter-regexp,.org-org-agenda-filter-tags {
+ color:#000;
+ background-color:#bfbfbf
+}
+.org-org-agenda-restriction-lock {
+ background-color:#eee
+}
+.org-org-agenda-structure {
+ color:#00f
+}
+.org-org-archived,.org-org-block {
+ color:#7f7f7f
+}
+.org-org-block-begin-line,.org-org-block-end-line {
+ color:#b22222
+}
+.org-org-checkbox {
+ font-weight:700
+}
+.org-org-checkbox-statistics-done {
+ color:#228b22;
+ font-weight:700
+}
+.org-org-checkbox-statistics-todo {
+ color:red;
+ font-weight:700
+}
+.org-org-clock-overlay {
+ color:#000;
+ background-color:#d3d3d3
+}
+.org-org-code {
+ color:#7f7f7f
+}
+.org-org-column,.org-org-column-title {
+ background-color:#e5e5e5
+}
+.org-org-column-title {
+ font-weight:700;
+ text-decoration:underline
+}
+.org-org-date {
+ color:#a020f0;
+ text-decoration:underline
+}
+.org-org-date-selected {
+ color:red
+}
+.org-org-default {
+ color:#000;
+ background-color:#fff
+}
+.org-org-document-info {
+ color:#191970
+}
+.org-org-document-info-keyword {
+ color:#7f7f7f
+}
+.org-org-document-title {
+ color:#191970;
+ font-weight:700
+}
+.org-org-done {
+ color:#228b22;
+ font-weight:700
+}
+.org-org-drawer {
+ color:#00f
+}
+.org-org-ellipsis {
+ color:#b8860b;
+ text-decoration:underline
+}
+.org-org-footnote {
+ color:#a020f0;
+ text-decoration:underline
+}
+.org-org-formula {
+ color:#b22222
+}
+.org-org-headline-done {
+ color:#bc8f8f
+}
+.org-org-hide {
+ color:#fff
+}
+.org-org-latex-and-related {
+ color:#8b4513
+}
+.org-org-level-1 {
+ color:#00f
+}
+.org-org-level-2 {
+ color:sienna
+}
+.org-org-level-3 {
+ color:#a020f0
+}
+.org-org-level-4 {
+ color:#b22222
+}
+.org-org-level-5 {
+ color:#228b22
+}
+.org-org-level-6 {
+ color:#008b8b
+}
+.org-org-level-7 {
+ color:#483d8b
+}
+.org-org-level-8 {
+ color:#8b2252
+}
+.org-org-link {
+ color:#3a5fcd;
+ text-decoration:underline
+}
+.org-org-list-dt {
+ font-weight:700
+}
+.org-org-macro {
+ color:#8b4513
+}
+.org-org-meta-line {
+ color:#b22222
+}
+.org-org-mode-line-clock {
+ color:#000;
+ background-color:#bfbfbf
+}
+.org-org-mode-line-clock-overrun {
+ color:#000;
+ background-color:red
+}
+.org-org-priority {
+ color:#a020f0
+}
+.org-org-quote {
+ color:#7f7f7f
+}
+.org-org-scheduled {
+ color:#006400
+}
+.org-org-scheduled-previously {
+ color:#b22222
+}
+.org-org-scheduled-today {
+ color:#006400
+}
+.org-org-sexp-date,.org-org-special-keyword {
+ color:#a020f0
+}
+.org-org-table {
+ color:#00f
+}
+.org-org-tag,.org-org-tag-group {
+ font-weight:700
+}
+.org-org-target {
+ text-decoration:underline
+}
+.org-org-time-grid {
+ color:#b8860b
+}
+.org-org-todo {
+ color:red;
+ font-weight:700
+}
+.org-org-upcoming-deadline {
+ color:#b22222
+}
+.org-org-verbatim,.org-org-verse {
+ color:#7f7f7f
+}
+.org-org-warning {
+ color:red;
+ font-weight:700
+}
+.org-outline-1 {
+ color:#00f
+}
+.org-outline-2 {
+ color:sienna
+}
+.org-outline-3 {
+ color:#a020f0
+}
+.org-outline-4 {
+ color:#b22222
+}
+.org-outline-5 {
+ color:#228b22
+}
+.org-outline-6 {
+ color:#008b8b
+}
+.org-outline-7 {
+ color:#483d8b
+}
+.org-outline-8 {
+ color:#8b2252
+}
+.org-preprocessor {
+ color:#483d8b
+}
+.org-regexp-grouping-backslash,.org-regexp-grouping-construct {
+ font-weight:700
+}
+.org-region {
+ background-color:gtk_selection_bg_color
+}
+.org-secondary-selection {
+ background-color:#ff0
+}
+.org-shadow {
+ color:#7f7f7f
+}
+.org-show-paren-match {
+ background-color:#40e0d0
+}
+.org-show-paren-mismatch {
+ color:#fff;
+ background-color:#a020f0
+}
+.org-string {
+ color:#8b2252
+}
+.org-success {
+ color:#228b22;
+ font-weight:700
+}
+.org-table-cell {
+ color:#e5e5e5;
+ background-color:#00f
+}
+.org-tooltip {
+ color:#000;
+ background-color:#ffffe0
+}
+.org-trailing-whitespace {
+ background-color:red
+}
+.org-type {
+ color:#228b22
+}
+.org-underline {
+ text-decoration:underline
+}
+.org-variable-name {
+ color:sienna
+}
+.org-warning {
+ color:#ff8c00;
+ font-weight:700
+}
+.org-warning-1 {
+ color:red;
+ font-weight:700
+}
+body {
+ width:85%;
+ margin:2% auto;
+ font-size:14px;
+ line-height:1.4em;
+ font-fannnnnmily:Georgia,serif;
+ color:#333
+}
+@media screen and (min-width:600px) {
+ body {
+ font-size:18px
+ }
+}
+@media screen and (min-width:1270px) {
+ body {
+ width:1200px
+ }
+}
+::-moz-selection {
+ background:#d6edff
+}
+::selection {
+ background:#d6edff
+}
+dl,ol,p,ul {
+ margin:0 auto
+}
+#content p {
+ margin: 1em auto;
+}
+.title {
+ margin:.8em auto;
+ color:gray;
+}
+.subtitle,.title {
+ text-align:center
+}
+.subtitle {
+ font-size:0.7em;
+ line-height:1.4;
+ font-weight:700;
+ margin:1em auto;
+ color: lightgray;
+}
+.abstract {
+ margin:auto;
+ width:80%;
+ font-style:italic
+}
+.abstract p:last-of-type:before {
+ content:" ";
+ white-space:pre
+}
+.status {
+ font-size:90%;
+ margin:2em auto
+}
+[class^=section-number-] {
+ margin-right:.5em
+}
+[id^=orgheadline] {
+ clear:both
+}
+#footnotes {
+ font-size:90%
+}
+.footpara {
+ display:inline;
+ margin:.2em auto
+}
+.footdef {
+ margin-bottom:1em
+}
+.footdef sup {
+ padding-right:.5em
+}
+li.on {
+ list-style: "โ ";
+}
+li.off {
+ list-style: "โ ";
+}
+a {
+ color:#527d9a;
+ text-decoration:none
+}
+a:hover {
+ color:#035;
+ border-bottom:2px solid;
+}
+figure {
+ padding:0;
+ margin:1em auto;
+ text-align:center
+}
+img {
+ max-width:100%;
+ vertical-align:middle
+}
+.MathJax_Display {
+ margin:0!important;
+ width:90%!important
+}
+h1,h2,h3,h4,h5,h6 {
+ font-family: var(--font-header);
+}
+h1 {
+ color: grey;
+}
+h2,h3,h4,h5,h6 {
+ color:#a5573e;
+ line-height:1em;
+ font-family:Helvetica,sans-serif
+}
+h1,h2,h3 {
+ line-height:1.4em
+}
+h4,h5,h6 {
+ font-size:1em
+}
+@media screen and (min-width:600px) {
+ h1 {
+ font-size:2em
+ }
+ h2 {
+ font-size:1.5em
+ }
+ h3 {
+ font-size:1.3em
+ }
+ h1,h2,h3 {
+ line-height:1.4em
+ }
+ h4,h5,h6 {
+ font-size:1.1em
+ }
+}
+dt {
+ font-weight:700
+}
+table {
+ margin:1em auto;
+ border-top:2px solid;
+ border-collapse:collapse
+}
+table,thead {
+ border-bottom:2px solid
+}
+table td+td,table th+th {
+ border-left:1px solid gray
+}
+table tr {
+ border-top:1px solid #d3d3d3
+}
+td,th {
+ padding:.3em .6em;
+ vertical-align:middle
+}
+caption.t-above {
+ caption-side:top
+}
+caption.t-bottom {
+ caption-side:bottom
+}
+caption {
+ margin-bottom:.3em
+}
+figcaption {
+ margin-top:.3em
+}
+th.org-center,th.org-left,th.org-right {
+ text-align:center
+}
+td.org-right {
+ text-align:right
+}
+td.org-left {
+ text-align:left
+}
+td.org-center {
+ text-align:center
+}
+blockquote {
+ margin:1em 2em;
+ padding-left:1em;
+ border-left:3px solid #ccc
+}
+kbd {
+ background-color:#f7f7f7;
+ font-size:80%;
+ margin:0 .1em;
+ padding:.1em .6em
+}
+.todo {
+ background-color:red
+}
+.done,.todo {
+ color:#fff;
+ padding:.1em .3em;
+ border-radius:3px;
+ background-clip:padding-box;
+ font-size:80%;
+ font-family:Lucida Console,monospace;
+ line-height:1
+}
+.done {
+ background-color:green
+}
+.priority {
+ color:orange;
+ font-family:Lucida Console,monospace
+}
+#table-of-contents li {
+ clear:both
+}
+.tag {
+ font-family:Lucida Console,monospace;
+ font-size:.7em;
+ font-weight:400
+}
+.tag span {
+ padding:.3em;
+ float:right;
+ margin-right:.5em;
+ border:1px solid #bbb;
+ border-radius:3px;
+ background-clip:padding-box;
+ color:#333;
+ background-color:#eee;
+ line-height:1
+}
+.timestamp {
+ color:#bebebe;
+ font-size:90%
+}
+.timestamp-kwd {
+ color:#5f9ea0
+}
+.org-right {
+ margin-left:auto;
+ margin-right:0;
+ text-align:right
+}
+.org-left {
+ margin-left:0;
+ 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%
+}
+:not(pre)>code {
+ padding:2px 5px;
+ margin:auto 1px;
+ border:1px solid #ddd;
+ border-radius:3px;
+ background-clip:padding-box;
+ color:#333;
+ font-size:80%
+}
+.org-src-container {
+ background-color: #FDFDFD;
+ border:1px solid #ccc;
+ box-shadow:3px 3px 3px #eee;
+ font-family:Lucida Console,monospace;
+ font-size:80%;
+ margin:1em auto;
+ padding:.1em .5em;
+ position:relative;
+ color: #000;
+}
+.org-src-container>pre {
+ overflow:auto
+}
+.org-src-container>pre:before {
+ display:block;
+ position:absolute;
+ background-color:#b3b3b3;
+ top:0;
+ right:0;
+ padding:0 .5em;
+ border-bottom-left-radius:8px;
+ border:0;
+ color:#fff;
+ font-size:80%
+}
+.org-src-container>pre.src-sh:before {
+ content:"sh"
+}
+.org-src-container>pre.src-bash:before {
+ content:"bash"
+}
+.org-src-container>pre.src-emacs-lisp:before {
+ content:"Emacs Lisp"
+}
+.org-src-container>pre.src-R:before {
+ content:"R"
+}
+.org-src-container>pre.src-cpp:before {
+ content:"C++"
+}
+.org-src-container>pre.src-c:before {
+ content:"C"
+}
+.org-src-container>pre.src-html:before {
+ content:"HTML"
+}
+.org-src-container>pre.src-javascript:before,.org-src-container>pre.src-js:before {
+ content:"Javascript"
+}
+// More languages 0% http://orgmode.org/worg/org-contrib/babel/languages.html .org-src-container>pre.src-abc:before {
+ content:"ABC"
+}
+.org-src-container>pre.src-asymptote:before {
+ content:"Asymptote"
+}
+.org-src-container>pre.src-awk:before {
+ content:"Awk"
+}
+.org-src-container>pre.src-C:before {
+ content:"C"
+}
+.org-src-container>pre.src-calc:before {
+ content:"Calc"
+}
+.org-src-container>pre.src-clojure:before {
+ content:"Clojure"
+}
+.org-src-container>pre.src-comint:before {
+ content:"comint"
+}
+.org-src-container>pre.src-css:before {
+ content:"CSS"
+}
+.org-src-container>pre.src-D:before {
+ content:"D"
+}
+.org-src-container>pre.src-ditaa:before {
+ content:"Ditaa"
+}
+.org-src-container>pre.src-dot:before {
+ content:"Dot"
+}
+.org-src-container>pre.src-ebnf:before {
+ content:"ebnf"
+}
+.org-src-container>pre.src-forth:before {
+ content:"Forth"
+}
+.org-src-container>pre.src-F90:before {
+ content:"Fortran"
+}
+.org-src-container>pre.src-gnuplot:before {
+ content:"Gnuplot"
+}
+.org-src-container>pre.src-haskell:before {
+ content:"Haskell"
+}
+.org-src-container>pre.src-io:before {
+ content:"Io"
+}
+.org-src-container>pre.src-java:before {
+ content:"Java"
+}
+.org-src-container>pre.src-latex:before {
+ content:"LaTeX"
+}
+.org-src-container>pre.src-ledger:before {
+ content:"Ledger"
+}
+.org-src-container>pre.src-ly:before {
+ content:"Lilypond"
+}
+.org-src-container>pre.src-lisp:before {
+ content:"Lisp"
+}
+.org-src-container>pre.src-makefile:before {
+ content:"Make"
+}
+.org-src-container>pre.src-matlab:before {
+ content:"Matlab"
+}
+.org-src-container>pre.src-max:before {
+ content:"Maxima"
+}
+.org-src-container>pre.src-mscgen:before {
+ content:"Mscgen"
+}
+.org-src-container>pre.src-Caml:before {
+ content:"Objective"
+}
+.org-src-container>pre.src-octave:before {
+ content:"Octave"
+}
+.org-src-container>pre.src-org:before {
+ content:"Org"
+}
+.org-src-container>pre.src-perl:before {
+ content:"Perl"
+}
+.org-src-container>pre.src-picolisp:before {
+ content:"Picolisp"
+}
+.org-src-container>pre.src-plantuml:before {
+ content:"PlantUML"
+}
+.org-src-container>pre.src-python:before {
+ content:"Python"
+}
+.org-src-container>pre.src-ruby:before {
+ content:"Ruby"
+}
+.org-src-container>pre.src-sass:before {
+ content:"Sass"
+}
+.org-src-container>pre.src-scala:before {
+ content:"Scala"
+}
+.org-src-container>pre.src-scheme:before {
+ content:"Scheme"
+}
+.org-src-container>pre.src-screen:before {
+ content:"Screen"
+}
+.org-src-container>pre.src-sed:before {
+ content:"Sed"
+}
+.org-src-container>pre.src-shell:before {
+ content:"shell"
+}
+.org-src-container>pre.src-shen:before {
+ content:"Shen"
+}
+.org-src-container>pre.src-sql:before {
+ content:"SQL"
+}
+.org-src-container>pre.src-sqlite:before {
+ content:"SQLite"
+}
+.org-src-container>pre.src-stan:before {
+ content:"Stan"
+}
+.org-src-container>pre.src-vala:before {
+ content:"Vala"
+}
+.org-src-container>pre.src-axiom:before {
+ content:"Axiom"
+}
+.org-src-container>pre.src-browser:before {
+ content:"HTML"
+}
+.org-src-container>pre.src-cypher:before {
+ content:"Neo4j"
+}
+.org-src-container>pre.src-elixir:before {
+ content:"Elixir"
+}
+.org-src-container>pre.src-request:before {
+ content:"http"
+}
+.org-src-container>pre.src-ipython:before {
+ content:"iPython"
+}
+.org-src-container>pre.src-kotlin:before {
+ content:"Kotlin"
+}
+.org-src-container>pre.src-Flavored Erlang lfe:before {
+ content:"Lisp"
+}
+.org-src-container>pre.src-mongo:before {
+ content:"MongoDB"
+}
+.org-src-container>pre.src-prolog:before {
+ content:"Prolog"
+}
+.org-src-container>pre.src-rec:before {
+ content:"rec"
+}
+.org-src-container>pre.src-ML sml:before {
+ content:"Standard"
+}
+.org-src-container>pre.src-Translate translate:before {
+ content:"Google"
+}
+.org-src-container>pre.src-typescript:before {
+ content:"Typescript"
+}
+.org-src-container>pre.src-rust:before {
+ content:"Rust"
+}
+.org-src-container>pre.src-go:before {
+ content:"Go"
+}
+.org-src-container>pre.src-http:before {
+ content:"HTTP"
+}
+.inlinetask {
+ background:#ffc;
+ border:2px solid gray;
+ margin:10px;
+ padding:10px
+}
+#org-div-home-and-up {
+ font-size:70%;
+ text-align:right;
+ white-space:nowrap
+}
+.linenr {
+ font-size:90%
+}
+.code-highlighted {
+ background-color:#ff0
+}
+#bibliography {
+ font-size:90%
+}
+#bibliography table {
+ width:100%
+}
+.creator {
+ display:block
+}
+@media screen and (min-width:600px) {
+ .creator {
+ display:inline;
+ float:right
+ }
+}
+
+div#nav ul li {
+ display: inline;
+}
+
+div.drawer {
+ border:1px solid #ccc;
+ box-shadow:3px 3px 3px #eee;
+ font-size:85%;
+ margin:1em auto;
+ padding:.1em .5em;
+ position:relative
+}
+div.drawer h6 {
+ margin: 0;
+ padding: 0.1em;
+ color: #333;
+}
+
+div.drawer.results {
+ font-family:monospace,monospace;
+ font-family: var(--font-mono);
+ background-color: #333;
+ color: #fff;
+}
+div.drawer p {
+ display: block;
+ unicode-bidi: embed;
+ white-space: pre;
+}
+div.drawer.results h6 {
+ color: #fff;
+}
+
+.info {
+ border: 1px solid;
+ background-color: #BDE5F8;
+ color: #00529B;
+}
+
+.tip {
+ border: 1px solid;
+ background-color: #DFF2BF;
+ color: #4F8A10;
+}
+
+.note {
+ border: 1px solid;
+ background-color: #FFFCCB;
+ color: #9F6000;
+}
+
+.warning {
+ border: 1px solid;
+ background-color: #FFBABA;
+ color: #D8000C;
+}
+
+/* Set the colors in <pre> blocks from the Leuven theme */
+pre span.org-builtin {color:#006FE0;font-weight:bold;}
+pre span.org-string {color:#008000;}
+pre span.org-keyword {color:#0000FF;}
+pre span.org-variable-name {color:#BA36A5;}
+pre span.org-function-name {color:#006699;}
+pre span.org-type {color:#6434A3;}
+pre span.org-preprocessor {color:#808080;font-weight:bold;}
+pre span.org-constant {color:#D0372D;}
+pre span.org-comment-delimiter {color:#8D8D84;}
+pre span.org-comment {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-1 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-2 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-3 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-4 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-5 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-6 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-7 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-8 {color:#8D8D84;font-style:italic}
+pre span.org-outshine-level-9 {color:#8D8D84;font-style:italic}
+pre span.org-rainbow-delimiters-depth-1 {color:#707183;}
+pre span.org-rainbow-delimiters-depth-2 {color:#7388d6;}
+pre span.org-rainbow-delimiters-depth-3 {color:#909183;}
+pre span.org-rainbow-delimiters-depth-4 {color:#709870;}
+pre span.org-rainbow-delimiters-depth-5 {color:#907373;}
+pre span.org-rainbow-delimiters-depth-6 {color:#6276ba;}
+pre span.org-rainbow-delimiters-depth-7 {color:#858580;}
+pre span.org-rainbow-delimiters-depth-8 {color:#80a880;}
+pre span.org-rainbow-delimiters-depth-9 {color:#887070;}
+pre span.org-sh-quoted-exec {color:#FF1493;}
publish.org
@@ -0,0 +1,236 @@
+#+SETUPFILE: ./_setup.org
+#+TITLE: Publish dotemacs notes using Emacs org-mode
+
+This document is a literate version of my publishing /script/ on publishing my dotemacs
+notes (that uses [[https://orgmode.org][=org-mode=]]).
+
+First let's import required libraries, which are =org= related.
+
+#+begin_src emacs-lisp :tangle yes
+ (require 'org)
+ (require 'ox)
+ (require 'ox-publish)
+ (require 'ol-man)
+ (require 'ol-git-link)
+#+end_src
+
+To get syntax coloring on other mode than ~emacs-lisp~, we need to load them too[fn:1].
+
+#+begin_src emacs-lisp :tangle yes
+ (require 'go-mode)
+ (require 'css-mode)
+ (require 'python-mode)
+ (require 'nix-mode)
+ (require 'ob-http)
+ (require 'yaml-mode)
+#+end_src
+
+Now let's define variables to use later on. Those variables are where to find the project
+we want to publish and where to publish theme.
+
+#+begin_src emacs-lisp :tangle yes
+ (setq site-directory "~/desktop/sites/")
+
+ (setq org-default-publish-sbr (expand-file-name "sbr.pm" site-directory))
+ (setq org-default-publish-dotemacs (expand-file-name "dotemacs" org-default-publish-sbr))
+#+end_src
+
+We want to republish everything every time โ mainly to be used on CI. So we're telling
+=org-mode= to disable the timestamp-based cache.
+
+#+begin_src emacs-lisp :tangle yes
+ (setq org-publish-use-timestamps-flag nil)
+#+end_src
+
+Let's also customize a bit the /style/ of what =org-mode= will generate.
+
+- Set the default html coding system ๐ผ
+ #+begin_src emacs-lisp :tangle yes
+ (setq org-html-coding-system 'utf-8-unix)
+ #+end_src
+- Let's disable the default script and style "includes".
+ #+begin_src emacs-lisp :tangle yes
+ (setq org-export-html-style-include-scripts nil
+ org-export-html-style-include-default nil)
+ #+end_src
+- Let's also make sure the =#+begin_src= blocks are colorized, *but* using the css instead
+ of inlude style.
+ #+begin_src emacs-lisp :tangle yes
+ (setq org-src-fontify-natively t)
+ ;; (setq org-html-htmlize-output-type 'inline-css) ;; default
+ (setq org-html-htmlize-output-type 'css)
+ ;; (setq org-html-htmlize-font-prefix "") ;; default
+ (setq org-html-htmlize-font-prefix "org-")
+ #+end_src
+- Customize how we export ~org-mode~ drawers
+ #+begin_src emacs-lisp :tangle yes
+ (defun my-org-export-format-drawer (name content)
+ (concat "<div class=\"drawer " (downcase name) "\">\n"
+ "<h6>" (capitalize name) "</h6>\n"
+ content
+ "\n</div>"))
+ (setq org-html-format-drawer-function 'my-org-export-format-drawer)
+ #+end_src
+- And disable ~org-babel~ from trying to evaluate on export
+ #+begin_src emacs-lisp :tangle yes
+ (setq org-export-use-babel nil)
+ #+end_src
+
+I want [[https://writepermission.com/org-blogging-clickable-headlines.html][clickable headlines]], so let's define a ~html-format-headline-function~ for the
+exporter to use. Not tangle currently as it doesn't work ๐.
+
+#+begin_src emacs-lisp :tangle no
+ (defun my-org-html-format-headline-function (todo todo-type priority text tags info)
+ "Format a headline with a link to itself."
+ (let* ((headline (get-text-property 0 :parent text))
+ (id (or (org-element-property :CUSTOM_ID headline)
+ (org-export-get-reference headline info)
+ (org-element-property :ID headline)))
+ (link (if id
+ (format "<a href=\"#%s\">%s</a>" id text)
+ text)))
+ (org-html-format-headline-default-function todo todo-type priority link tags info)))
+ (setq org-html-format-headline-function 'my-org-html-format-headline-function)
+#+end_src
+
+I also use some custom linksโฆ They are define in my [[https://github.com/vdemeester/emacs-config][emacs configuration]] repository :
+[[https://github.com/vdemeester/emacs-config/blob/master/lisp/setup-org.el][~setup-org.el~]].
+
+#+begin_src emacs-lisp :tangle yes
+ (org-link-set-parameters "tag"
+ :follow #'endless/follow-tag-link)
+ (defun endless/follow-tag-link (tag)
+ "Display a list of TODO headlines with tag TAG.
+ With prefix argument, also display headlines without a TODO keyword."
+ (org-tags-view (null current-prefix-arg) tag))
+
+ (org-link-set-parameters "grep"
+ :follow #'vde/follow-grep-link
+ :face '(:foreground "DarkRed" :underline t))
+ (defun vde/follow-grep-link (regexp)
+ "Run `rgrep' with REGEXP and FOLDER as argument,
+ like this : [[grep:REGEXP:FOLDER]]."
+ (setq expressions (split-string regexp ":"))
+ (setq exp (nth 0 expressions))
+ (grep-compute-defaults)
+ (if (= (length expressions) 1)
+ (progn
+ (rgrep exp "*" (expand-file-name "./")))
+ (progn
+ (setq folder (nth 1 expressions))
+ (rgrep exp "*" (expand-file-name folder))))
+ )
+
+ (org-link-set-parameters "rg"
+ :follow #'vde/follow-rg-link
+ :face '(:foreground "DarkGreen" :underline t))
+ (defun vde/follow-rg-link (regexp)
+ "Run `ripgrep-regexp` with REXEP and FOLDER as argument,
+ like this : [[pt:REGEXP:FOLDER]]"
+ (setq expressions (split-string regexp ":"))
+ (setq exp (nth 0 expressions))
+ (if (= (length expressions) 1)
+ (progn
+ (ripgrep-regexp exp (expand-file-name "./")))
+ (progn
+ (setq folder (nth 1 expressions))
+ (ripgrep-regexp exp (file-name-as-directory (expand-file-name folder)))))
+ )
+
+ (org-link-set-parameters "gh"
+ :follow #'vde/follow-gh-link
+ :export #'vde/org-gh-export
+ :face '(:foreground "DimGrey" :underline t))
+ (defun vde/org-gh-export (link description format)
+ "Export a github page link from Org files."
+ (let ((path (vde/gh-get-url link))
+ (desc (or description link)))
+ (cond
+ ((eq format 'html) (format "<a hrefl=\"_blank\" href=\"%s\">%s</a>" path desc))
+ ((eq format 'latex) (format "\\href{%s}{%s}" path desc))
+ ((eq format 'texinfo) (format "@uref{%s,%s}" path desc))
+ ((eq format 'ascii) (format "%s (%s)" desc path))
+ (t path))))
+ (defun vde/follow-gh-link (issue)
+ "Browse github issue/pr specified"
+ (browse-url (vde/gh-get-url issue)))
+
+ (defun vde/gh-get-url (path)
+ "Translate org-mode link `gh:foo/bar#1' to github url."
+ (setq expressions (split-string path "#"))
+ (setq project (nth 0 expressions))
+ (setq issue (nth 1 expressions))
+ (format "https://github.com/%s/issues/%s" project issue))
+
+ (org-link-set-parameters
+ "org"
+ :complete (lambda () (+org-link-read-file "org" org-directory))
+ :follow (lambda (link) (find-file (expand-file-name link org-directory)))
+ :face (lambda (link)
+ (if (file-exists-p (expand-file-name link org-directory))
+ 'org-link
+ 'error)))
+ (defun +org-link-read-file (key dir)
+ (let ((file (read-file-name (format "%s: " (capitalize key)) dir)))
+ (format "%s:%s"
+ key
+ (file-relative-name file dir))))
+#+end_src
+
+Now, let's define projects.
+
+#+begin_src emacs-lisp :tangle yes
+ (setq org-publish-project-alist
+ `(("dotemacs-org"
+ :base-directory "."
+ :base-extension "org\\|txt"
+ :publishing-directory ,org-default-publish-dotemacs
+ :recursive t
+ :publishing-function org-html-publish-to-html
+ :headline-levels 4
+ :auto-preamble t
+ :auto-sitemap t
+ :with-footnotes t
+ :with-toc nil
+ :with-drawers t
+ :exclude "_setup.org\\|sbr.pm\\|.extension\\|elpa"
+ :html-checkbox-type 'html
+ :html-preamble "<div id=\"nav\">
+ <ul>
+ <li><a href=\"/\" class=\"home\">Home</a></li>
+ <li><a href=\"./\" class=\"index\">Index</a></li>
+ <li><a href=\"../\" class=\"up\">Up</a></li>
+ </ul>
+ </div>"
+ :html-postamble "<p class=\"creator\">%c</p><p class=\"postamble\">%a. Last Updated %C (exported %T).</p>")
+ ("dotemacs-static"
+ :base-directory "."
+ :base-extension "html\\|xml\\|css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|md\\|tar\\|gz\\|xz\\|zip\\|csv"
+ :exclude ".extension\\|elpa"
+ :publishing-directory ,org-default-publish-dotemacs
+ :recursive t
+ :publishing-function org-publish-attachment
+ )
+ ("dotemacs" :components ("dotemacs-org" "dotemacs-static"))
+ ))
+#+end_src
+
+I want the ~sites~ folder to be cleaned too, so let's define a function to be called that
+will clean a folder and publish.
+
+#+begin_src emacs-lisp :tangle yes
+ (defun clean-and-publish ()
+ "Clean the site folder and publish all projects"
+ (delete-directory org-default-publish-dotemacs t)
+ (org-publish-all))
+#+end_src
+
+Let's now create a ~Makefile~ so that I can just run ~make publish~ to automate that.
+
+#+INCLUDE: "Makefile" src makefile
+
+The rest is just /automation/ ๐ผ. The ~~/desktop/sites/~ folder is synced across a bunch
+of my machines, including my servers (using [[https://syncthing.net/][syncthing]]). This means almost as soon as I run
+this publish script, it will be available.
+
+[fn:1] Otherwise, emacs doesn't apply any syntax coloring.
README.org
@@ -1,33 +0,0 @@
-#+TITLE: vdemeester's .emacs.d
-
-#+BEGIN_QUOTE
-My emacs setup is tested to work only with emacs 26.1 and newer versions. If you are on
-older versions, I would recommend that you upgrade to the [[https://www.gnu.org/software/emacs/download.html][latest available stable version]].
-#+END_QUOTE
-
-*Warning: this repository is being /transformed/ a bit: slowly migrating to literate programming ([[./emacs.org][emacs.org]]) and most likely moving into [[https://github.com/vdemeester/home][=home=]] at some point*
-
-* Few notes
-
-- This works best in =NixOS=, coupled with my [[https://github.com/vdemeester/home][=home=]] repository (especially with my
- [[https://github.com/vdemeester/home/blob/master/modules/profiles/emacs.nix][emacs.nix]] file).
-- Almost all setup files have setup done as per my personal tastes and needs.
-- If you want to change the default theme, font size, etc, you would want to edit
- =setup-files/setup-style.el=
-
-* Key points
-
-- Use of my minor mode =vde-mode= to enable my custom key-bindings. Doing so allows me to
- force override my bindings in all major and minor modes. If I ever need to try out the
- default emacs bindings, I can simply disable =vde-mode= by doing =M-x vde-mode=. /It
- is enabled globally by default./
-- Use of =use-package= in load all packages for faster load times.
-- Use of =bind-keys= allows me to review my custom bindings in a single buffer by doing
- =M-x describe-personal-keybindings=.
-- Certain packages will be loaded only if you have the associated applications installed.
-
-* Feedback
-
-Use at your own risk, but I am definitely looking forward to suggestions, corrections.
-
-Thanks!
README.org
@@ -0,0 +1,1 @@
+index.org
\ No newline at end of file