HOME

ADOPTED Org

You're looking at it.

Agenda Commands

Global commands for interacting with org-mode and org-agenda.

(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-cb" 'org-iswitchb)
Key Command Action
C-c l org-store-link Store an org-link to the current location.
C-c a org-agenda Open an Org Agenda View
C-c b org-iswitchb Switch directly to an org-mode buffer

Org-Babel

Fontify code blocks in an Org file:

(setq org-src-fontify-natively t)
(require 'ob)

(add-to-list 'org-babel-tangle-lang-exts '("clojure" . "clj"))
(add-to-list 'org-babel-tangle-lang-exts '("haskell" . "hs"))

(defun toby/babel-hook ()
            (condition-case nil
                (org-display-inline-images)
              (error nil)))

(add-hook 'org-babel-after-execute-hook
          'toby/babel-hook
          'append)

(require 'ob-shell)
(require 'ob-ruby)
(require 'ob-sql)
(require 'ob-clojure)
(org-babel-do-load-languages
 'org-babel-load-languages
 '((sh . t)
   (ruby . t)
   (sql . t)))

(add-to-list 'org-structure-template-alist
             '("el"  "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC" "<src lang=\"?\">\n\n</src>"))
(add-to-list 'org-structure-template-alist
             '("pg"  "#+BEGIN_SRC sql :engine postgresql\n?\n#+END_SRC" "<src lang=\"?\">\n\n</src>"))
(add-to-list 'org-structure-template-alist
             '("hs"  "#+BEGIN_SRC haskell\n?\n#+END_SRC" "<src lang=\"?\">\n\n</src>"))

This adds syntax highlighting to org-babel html exports.

(require-package 'htmlize)
(setq org-export-htmlize-output-type 'css)

To regenerate syntax highlighting CSS (for the active theme):

(org-export-htmlize-generate-css)

Org Publish

Org Publish

(setq org-publish-project-alist
      `(("Github Site"
         :base-directory       ,(expand-file-name "~/Code/tobytripp.github.com/org")
         :base-extension       "org"
         :recursive            t
         :publishing-function  org-html-publish-to-html
         :html-preamble ,(concat "<p><a accesskey=\"H\" href=\"index.html\">HOME</a></p>")
         :publishing-directory ,(expand-file-name "~/Code/tobytripp.github.com/"))
        ("notes"
         :base-directory       ,(expand-file-name "~/Code/Notes/")
         :base-extension       "org"
         :recursive            t
         :publishing-function  org-html-publish-to-html
         :publishing-directory ,(expand-file-name "~/Code/Notes/"))
        ("emacs-config"
         :base-directory       ,org-lib-dir
         :base-extension       "org"
         :recursive            t
         :publishing-function  org-html-publish-to-html
         :htmlized-source      t
         :html-preamble ,(concat "<p><a accesskey=\"H\" href=\"index.html\">HOME</a></p>")
         :publishing-directory ,(concat dotfiles-dir "html"))))

Publish with: org-publish-project.

Literate Haskell

Automatically load and run Haskell code after it's been “tangeled” (had the source code parsed out into source files).

Tangle with: C-c C-v t (org-babel-tangle)

(defun toby/tangle-and-run ()
  (cond
   ((eq 'haskell-mode major-mode)
    (message "Loading tangled buffer in haskell mode!")
    (inferior-haskell-load-file)
    (switch-to-haskell))
   ((eq 'clojure-mode major-mode)
    (message "Loading tangled buffer in cider mode!")
    (cider-load-buffer)
    (cider-switch-to-relevant-repl-buffer))))

(add-hook 'org-babel-post-tangle-hook 'toby/tangle-and-run)
(define-key org-mode-map (kbd "<f6>") 'org-babel-tangle)

Org-Mode Presentations

REJECTED Security Vulerabilities in js Dependencies

  • State "REJECTED" from [2018-02-05 Mon 11:21]

Org-Reveal is an org-mode export extension for creating presentations with reveal.js.

(require-package 'ox-reveal)
(require 'ox-reveal)

(setq org-reveal-root
      (concat "file://" (expand-file-name dotfiles-dir)
              "html/js/reveal.js-3.0.0/js/reveal.js"))

(add-hook 'org-mode-hook
          (lambda ()
            ;; (load-library "ox-reveal")
            (local-set-key (kbd "s-r") 'org-babel-tangle)))

(defadvice org-html-src-block
  (after toby/wrap-org-html-src-in-code-tag activate)
  (setq ad-return-value (replace-regexp-in-string
                         "\\(<pre[^>]+src-\\([^\"]+\\)\">\\)\\([^<]+\\)</pre>"
                         "\\1<code class=\"\\2\">\\3</code></pre>"
                         ad-return-value)))

(setq reveal-highlight-theme "zenburn")

(defadvice org-reveal-stylesheets
  (after toby/add-highlight-styles (info) activate)
  "Add stylesheet declaration for highlight.js formatting"
  (let* ((root-path (plist-get info :reveal-root))
         (css-path (concat root-path "/plugin/highlight/styles")))
    (setq ad-return-value
          (concat ad-return-value
                  (format "<link rel=\"stylesheet\" href=\"%s\">\n"
                          (concat css-path "/" reveal-highlight-theme ".css"))))))

Author: Toby Tripp

Created: 2018-02-09 Fri 15:58

Validate