[Emacs] Set up travis html generation
This commit is contained in:
parent
b328832f9a
commit
0f165c007b
7
.travis.yml
Normal file
7
.travis.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
language: generic
|
||||||
|
|
||||||
|
script: bash
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
- ENCRYPTION_LABEL: "73e6c870aa87"
|
||||||
|
- COMMIT_AUTHOR_EMAIL: "IvanMalison@gmail.com"
|
6
bin/Cask
Normal file
6
bin/Cask
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
(source org)
|
||||||
|
(source melpa)
|
||||||
|
|
||||||
|
(depends-on "use-package")
|
||||||
|
(depends-on "org-plus-contrib")
|
||||||
|
(depends-on "htmlize")
|
19
bin/compile.sh
Executable file
19
bin/compile.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
export PATH="$HOME/.cask/bin:$HOME/.evm/bin:$PATH"
|
||||||
|
THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
TARGET=$(readlink -f "$THIS_DIR/../dotfiles/emacs.d/README.org")
|
||||||
|
|
||||||
|
git clone https://github.com/rejeep/evm.git "$HOME/.evm"
|
||||||
|
evm config path /tmp
|
||||||
|
evm install emacs-25.1-travis --use --skip
|
||||||
|
|
||||||
|
export EMACS=$(sh -c 'type -P emacs')
|
||||||
|
|
||||||
|
curl -fsSkL https://raw.github.com/cask/cask/master/go | python
|
||||||
|
|
||||||
|
cask install
|
||||||
|
cask exec emacs --script generate-html.el
|
||||||
|
|
||||||
|
cp "../dotfiles/emacs.d/README.html" out
|
64
bin/deploy.sh
Executable file
64
bin/deploy.sh
Executable file
@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# This approach was adapted from https://gist.github.com/domenic/ec8b0fc8ab45f39403dd
|
||||||
|
|
||||||
|
set -e # Exit with nonzero exit code if anything fails
|
||||||
|
|
||||||
|
SOURCE_BRANCH="master"
|
||||||
|
TARGET_BRANCH="gh-pages"
|
||||||
|
|
||||||
|
function doCompile {
|
||||||
|
./compile.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
# Pull requests and commits to other branches shouldn't try to deploy, just build to verify
|
||||||
|
if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then
|
||||||
|
echo "Skipping deploy; just doing a build."
|
||||||
|
doCompile
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Save some useful information
|
||||||
|
REPO=`git config remote.origin.url`
|
||||||
|
SSH_REPO=${REPO/https:\/\/github.com\//git@github.com:}
|
||||||
|
SHA=`git rev-parse --verify HEAD`
|
||||||
|
|
||||||
|
# Clone the existing gh-pages for this repo into out/
|
||||||
|
# Create a new empty branch if gh-pages doesn't exist yet (should only happen on first deply)
|
||||||
|
git clone $REPO out
|
||||||
|
cd out
|
||||||
|
git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Clean out existing contents
|
||||||
|
rm -rf out/**/* || exit 0
|
||||||
|
|
||||||
|
# Run our compile script
|
||||||
|
doCompile
|
||||||
|
|
||||||
|
# Now let's go have some fun with the cloned repo
|
||||||
|
cd out
|
||||||
|
git config user.name "$COMMIT_AUTHOR_NAME"
|
||||||
|
git config user.email "$COMMIT_AUTHOR_EMAIL"
|
||||||
|
|
||||||
|
# If there are no changes to the compiled out (e.g. this is a README update) then just bail.
|
||||||
|
if [ -z `git diff --exit-code` ]; then
|
||||||
|
echo "No changes to the output on this push; exiting."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Commit the "changes", i.e. the new version.
|
||||||
|
# The delta will show diffs between new and old versions.
|
||||||
|
git add .
|
||||||
|
git commit -m "Deploy to GitHub Pages: ${SHA}"
|
||||||
|
|
||||||
|
# Get the deploy key by using Travis's stored variables to decrypt deploy_key.enc
|
||||||
|
ENCRYPTED_KEY_VAR="encrypted_${ENCRYPTION_LABEL}_key"
|
||||||
|
ENCRYPTED_IV_VAR="encrypted_${ENCRYPTION_LABEL}_iv"
|
||||||
|
ENCRYPTED_KEY=${!ENCRYPTED_KEY_VAR}
|
||||||
|
ENCRYPTED_IV=${!ENCRYPTED_IV_VAR}
|
||||||
|
openssl aes-256-cbc -K $ENCRYPTED_KEY -iv $ENCRYPTED_IV -in deploy_key.enc -out deploy_key -d
|
||||||
|
chmod 600 deploy_key
|
||||||
|
eval `ssh-agent -s`
|
||||||
|
ssh-add deploy_key
|
||||||
|
|
||||||
|
git push $SSH_REPO $TARGET_BRANCH
|
BIN
bin/deploy_key.enc
Normal file
BIN
bin/deploy_key.enc
Normal file
Binary file not shown.
30
bin/generate-html.el
Executable file
30
bin/generate-html.el
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
(package-initialize)
|
||||||
|
|
||||||
|
(require 'ox-html)
|
||||||
|
(require 'htmlize)
|
||||||
|
|
||||||
|
(defmacro do-nothing (name)
|
||||||
|
`(defun ,name (&rest args) nil))
|
||||||
|
|
||||||
|
(do-nothing imalison:add-to-org-agenda-files)
|
||||||
|
(do-nothing imalison:disable-linum-mode)
|
||||||
|
|
||||||
|
(setq emacs-dir
|
||||||
|
(expand-file-name "../dotfiles/emacs.d/"
|
||||||
|
(file-name-directory load-file-name)))
|
||||||
|
|
||||||
|
(setq readme-src (concat emacs-dir "README.org"))
|
||||||
|
|
||||||
|
(org-babel-tangle-file readme-src)
|
||||||
|
(load-file (concat emacs-dir "org-config.el"))
|
||||||
|
|
||||||
|
(defun export-target (target)
|
||||||
|
(with-current-buffer (find-file-noselect target)
|
||||||
|
(let ((org-export-headline-levels 10))
|
||||||
|
(org-html-export-to-html))))
|
||||||
|
|
||||||
|
(setq org-html-postamble nil)
|
||||||
|
(setq org-html-htmlize-output-type 'css)
|
||||||
|
(setq org-confirm-babel-evaluate nil)
|
||||||
|
|
||||||
|
(message (export-target readme-src))
|
@ -2014,6 +2014,7 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
|
|||||||
(require 'smartparens-config)
|
(require 'smartparens-config)
|
||||||
(smartparens-global-mode 1)
|
(smartparens-global-mode 1)
|
||||||
(sp-use-smartparens-bindings)
|
(sp-use-smartparens-bindings)
|
||||||
|
(sp-local-pair 'org-mode "~" "~")
|
||||||
(unbind-key "C-M-<backspace>" smartparens-mode-map)
|
(unbind-key "C-M-<backspace>" smartparens-mode-map)
|
||||||
(unbind-key "C-<backspace>" smartparens-mode-map)
|
(unbind-key "C-<backspace>" smartparens-mode-map)
|
||||||
(unbind-key "M-<backspace>" smartparens-mode-map)))
|
(unbind-key "M-<backspace>" smartparens-mode-map)))
|
||||||
@ -2779,7 +2780,7 @@ Intero seems to be causing hangs, so it has been disabled
|
|||||||
** Document
|
** Document
|
||||||
*** org
|
*** org
|
||||||
**** config
|
**** config
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||||
(use-package org
|
(use-package org
|
||||||
:ensure org-plus-contrib
|
:ensure org-plus-contrib
|
||||||
:bind (:map org-mode-map
|
:bind (:map org-mode-map
|
||||||
@ -2787,13 +2788,13 @@ Intero seems to be causing hangs, so it has been disabled
|
|||||||
:preface
|
:preface
|
||||||
(progn
|
(progn
|
||||||
;; XXX: These should probably be moved to config, right?
|
;; XXX: These should probably be moved to config, right?
|
||||||
(defvar-setq org-startup-indented nil)
|
(setq org-startup-indented nil
|
||||||
(defvar-setq org-startup-folded t)
|
org-startup-folded t
|
||||||
(defvar-setq org-edit-src-content-indentation 0)
|
org-edit-src-content-indentation 0
|
||||||
(defvar-setq org-src-preserve-indentation t)
|
org-src-preserve-indentation t
|
||||||
(defvar-setq org-directory "~/Dropbox/org")
|
org-directory "~/Dropbox/org"
|
||||||
(defvar-setq org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org")
|
org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org"
|
||||||
(defvar-setq org-mobile-directory "~/Dropbox/Apps/MobileOrg")
|
org-mobile-directory "~/Dropbox/Apps/MobileOrg")
|
||||||
|
|
||||||
(setq org-goto-interface 'outline-path-completion
|
(setq org-goto-interface 'outline-path-completion
|
||||||
org-goto-max-level 10
|
org-goto-max-level 10
|
||||||
@ -2914,7 +2915,7 @@ Intero seems to be causing hangs, so it has been disabled
|
|||||||
"STARTED(s!)" "WAIT(w!)" "BACKLOG(b!)" "|"
|
"STARTED(s!)" "WAIT(w!)" "BACKLOG(b!)" "|"
|
||||||
"DONE(d!)" "HANDLED(h!)" "EXPIRED(e!)" "CANCELED(c!)")))
|
"DONE(d!)" "HANDLED(h!)" "EXPIRED(e!)" "CANCELED(c!)")))
|
||||||
|
|
||||||
(defvar-setq helm-org-headings-fontify t)
|
(setq helm-org-headings-fontify t)
|
||||||
(setq org-todo-repeat-to-state "TODO")
|
(setq org-todo-repeat-to-state "TODO")
|
||||||
|
|
||||||
(setq org-agenda-span 10)
|
(setq org-agenda-span 10)
|
||||||
@ -2924,7 +2925,6 @@ Intero seems to be causing hangs, so it has been disabled
|
|||||||
"%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM")
|
"%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM")
|
||||||
|
|
||||||
(add-to-list 'org-show-context-detail '(org-goto . lineage))
|
(add-to-list 'org-show-context-detail '(org-goto . lineage))
|
||||||
(sp-local-pair 'org-mode "~" "~")
|
|
||||||
|
|
||||||
(add-to-list
|
(add-to-list
|
||||||
'org-src-lang-modes '("plantuml" . plantuml))
|
'org-src-lang-modes '("plantuml" . plantuml))
|
||||||
@ -3191,6 +3191,12 @@ Intero seems to be causing hangs, so it has been disabled
|
|||||||
;; blame.
|
;; blame.
|
||||||
))
|
))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
**** Load org-config.el
|
||||||
|
I put some org-mode specific configs in a separate file so that they can be used
|
||||||
|
separately. This means that I need to load this file in init.el.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(load-file (concat (file-name-directory load-file-name) "org-config.el"))
|
||||||
|
#+END_SRC
|
||||||
**** Use frames
|
**** Use frames
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package org
|
(use-package org
|
||||||
@ -3203,7 +3209,7 @@ Intero seems to be causing hangs, so it has been disabled
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
**** Set Background Color of Source Blocks for Export
|
**** Set Background Color of Source Blocks for Export
|
||||||
This was taken from [[http://emacs.stackexchange.com/questions/3374/set-the-background-of-org-exported-code-blocks-according-to-theme][here]].
|
This was taken from [[http://emacs.stackexchange.com/questions/3374/set-the-background-of-org-exported-code-blocks-according-to-theme][here]].
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||||
(use-package org
|
(use-package org
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
@ -3225,7 +3231,7 @@ background of code to whatever theme I'm using's background"
|
|||||||
**** Use my own default naming scheme for org-headings
|
**** Use my own default naming scheme for org-headings
|
||||||
First we define a function that will generate a sanitized version of the heading
|
First we define a function that will generate a sanitized version of the heading
|
||||||
as its link target.
|
as its link target.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||||
(defun imalison:org-get-raw-value (item)
|
(defun imalison:org-get-raw-value (item)
|
||||||
(when (listp item)
|
(when (listp item)
|
||||||
(let* ((property-list (cadr item)))
|
(let* ((property-list (cadr item)))
|
||||||
@ -3249,7 +3255,7 @@ as its link target.
|
|||||||
|
|
||||||
This function replaces the default naming scheme with a call to
|
This function replaces the default naming scheme with a call to
|
||||||
~imalison:generate-name~, and uses a slightly different uniquify approach.
|
~imalison:generate-name~, and uses a slightly different uniquify approach.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||||
(use-package ox
|
(use-package ox
|
||||||
:ensure nil
|
:ensure nil
|
||||||
:demand t
|
:demand t
|
||||||
@ -4062,6 +4068,7 @@ I have currently disabled key-chord because it may cause typing lag.
|
|||||||
(setq jabber-alert-message-function 'jabber-message-content-message)))
|
(setq jabber-alert-message-function 'jabber-message-content-message)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** htmlize
|
** htmlize
|
||||||
|
This package is needed to export org to html.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package htmlize)
|
(use-package htmlize)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
Loading…
Reference in New Issue
Block a user