forked from colonelpanic/dotfiles
[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)
|
||||
(smartparens-global-mode 1)
|
||||
(sp-use-smartparens-bindings)
|
||||
(sp-local-pair 'org-mode "~" "~")
|
||||
(unbind-key "C-M-<backspace>" smartparens-mode-map)
|
||||
(unbind-key "C-<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
|
||||
*** org
|
||||
**** config
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||
(use-package org
|
||||
:ensure org-plus-contrib
|
||||
:bind (:map org-mode-map
|
||||
@ -2787,13 +2788,13 @@ Intero seems to be causing hangs, so it has been disabled
|
||||
:preface
|
||||
(progn
|
||||
;; XXX: These should probably be moved to config, right?
|
||||
(defvar-setq org-startup-indented nil)
|
||||
(defvar-setq org-startup-folded t)
|
||||
(defvar-setq org-edit-src-content-indentation 0)
|
||||
(defvar-setq org-src-preserve-indentation t)
|
||||
(defvar-setq org-directory "~/Dropbox/org")
|
||||
(defvar-setq org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org")
|
||||
(defvar-setq org-mobile-directory "~/Dropbox/Apps/MobileOrg")
|
||||
(setq org-startup-indented nil
|
||||
org-startup-folded t
|
||||
org-edit-src-content-indentation 0
|
||||
org-src-preserve-indentation t
|
||||
org-directory "~/Dropbox/org"
|
||||
org-mobile-inbox-for-pull "~/Dropbox/org/flagged.org"
|
||||
org-mobile-directory "~/Dropbox/Apps/MobileOrg")
|
||||
|
||||
(setq org-goto-interface 'outline-path-completion
|
||||
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!)" "|"
|
||||
"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-agenda-span 10)
|
||||
@ -2924,7 +2925,6 @@ Intero seems to be causing hangs, so it has been disabled
|
||||
"%80ITEM(Task) %10Effort(Effort){:} %10CLOCKSUM")
|
||||
|
||||
(add-to-list 'org-show-context-detail '(org-goto . lineage))
|
||||
(sp-local-pair 'org-mode "~" "~")
|
||||
|
||||
(add-to-list
|
||||
'org-src-lang-modes '("plantuml" . plantuml))
|
||||
@ -3191,6 +3191,12 @@ Intero seems to be causing hangs, so it has been disabled
|
||||
;; blame.
|
||||
))
|
||||
#+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
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package org
|
||||
@ -3203,7 +3209,7 @@ Intero seems to be causing hangs, so it has been disabled
|
||||
#+END_SRC
|
||||
**** 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]].
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||
(use-package org
|
||||
:config
|
||||
(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
|
||||
First we define a function that will generate a sanitized version of the heading
|
||||
as its link target.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
#+BEGIN_SRC emacs-lisp :tangle org-config.el
|
||||
(defun imalison:org-get-raw-value (item)
|
||||
(when (listp 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
|
||||
~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
|
||||
:ensure nil
|
||||
: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)))
|
||||
#+END_SRC
|
||||
** htmlize
|
||||
This package is needed to export org to html.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package htmlize)
|
||||
#+END_SRC
|
||||
|
Loading…
Reference in New Issue
Block a user