mkdocs/compile.sh

126 lines
3.2 KiB
Bash
Raw Normal View History

2015-09-17 09:37:27 +00:00
#!/usr/bin/env zsh
2016-03-24 15:49:09 +00:00
local -a help pdf web beamer reveal
zparseopts h=help -help=help \
p=pdf -pdf=pdf \
w=web -web=web \
b=beamer -beamer=beamer \
r=reveal -reveal=reveal
cmdname=${0:t}
print_help(){
print -- "$cmdname [-dhvpwbr] [FILES]"
print -- "\t-d --debug\tdebug mode"
print -- "\t-h --help\tHelp message"
print -- "\t-p --pdf\texport to pdf"
print -- "\t-w --web\texport to html"
print -- "\t-b --beamer\texport to pdf presentation using beamer"
print -- "\t-r --reveal\texport to html presentation using reveal.js"
}
[[ -n $help ]] && { print_help; exit }
# Don't count parameters
while [[ ${1[1]} = '-' ]]; do
shift
done
if (($#==0)); then
filelist=( **/*.md(.) )
else
filelist=( $* )
fi
# init colors
autoload colors
colors
for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
eval $COLOR='$fg_no_bold[${(L)COLOR}]'
eval BOLD_$COLOR='$fg_bold[${(L)COLOR}]'
done
eval RESET='$reset_color'
2016-03-24 15:49:09 +00:00
tohtml() {
local src=$1
local fic=${src:t}
local dst=${fic:r}.html
2016-02-24 08:48:04 +00:00
print -n -- ${src:r}.html
2016-02-24 08:53:44 +00:00
prefix=$(print -- $src|perl -pe 's#[^/]*/#../#g;s#[^/]*$##')
2015-09-17 09:37:27 +00:00
pandoc -s -S --toc --css "${prefix}styling.css" \
-V lang=en \
-V highlighting-css= --mathjax \
2016-02-24 08:48:04 +00:00
--smart --to=html5 -A ${mainDir}/footer.html \
2016-03-24 15:49:09 +00:00
-o "$dst" \
2015-09-17 09:37:27 +00:00
$fic
print " ${GREEN}[DONE]${RESET}"
2016-03-24 15:49:09 +00:00
}
2015-09-17 09:37:27 +00:00
2016-03-24 15:49:09 +00:00
topdf () {
local src=$1
local fic=${src:t}
local dst=${fic:r}.pdf
2016-02-24 08:48:04 +00:00
print -n -- ${src:r}.pdf
2015-09-17 09:37:27 +00:00
pandoc -s -S -N --toc \
2016-02-24 08:48:04 +00:00
--template=${mainDir}/template.latex \
2015-09-17 09:37:27 +00:00
--variable fontsize=14pt \
--variable linkcolor=orange \
--variable urlcolor=orange \
--latex-engine=xelatex \
2016-03-24 15:49:09 +00:00
-o $dst \
2015-09-17 09:37:27 +00:00
$fic
print " ${GREEN}[DONE]${RESET}"
2016-03-24 15:49:09 +00:00
}
2016-03-24 15:49:09 +00:00
topdfpres () {
local src=$1
local fic=${src:t}
local dst=${fic:r}-pres.pdf
2016-02-24 08:48:04 +00:00
print -n -- ${src:r}-pres.pdf
slide_level=$(perl -ne 'if (/^slide_level: (.*)/) { print $1."\n"; }' <$fic)
if [[ $slide_level = "" ]]; then slide_level=1 fi
pandoc -s -S -N \
-t beamer \
--slide-level=$slide_level \
--variable fontsize=14pt \
--variable linkcolor=orange \
--variable urlcolor=orange \
--latex-engine=xelatex \
2016-03-24 15:49:09 +00:00
-o $dst \
$fic
print " ${GREEN}[DONE]${RESET}"
print
2016-03-24 15:49:09 +00:00
}
tohtmlpres () {
local src=$1
local fic=${src:t}
local dst=${fic:r}-pres.html
print -n -- ${src:r}-pres.html
slide_level=$(perl -ne 'if (/^slide_level: (.*)/) { print $1."\n"; }' <$fic)
prefix=$(print -- $src|perl -pe 's#[^/]*/#../#g;s#[^/]*$##')
if [[ $slide_level = "" ]]; then slide_level=1 fi
pandoc -s --mathjax \
-t html5 --template=${prefix}template-revealjs.html \
--section-divs \
--variable transition="linear" \
--variable prefix="$prefix" \
-o $dst \
$fic
print " ${GREEN}[DONE]${RESET}"
print
}
mainDir=$PWD
for src in $filelist; do
cd ${src:h}
fic=${src:t}
print -- "-- ${YELLOW}$src${RESET} --"
[[ -n $web ]] && tohtml $src
[[ -n $reveal ]] && tohtmlpres $src
[[ -n $pdf ]] && topdf $src
[[ -n $beamer ]] && topdfpres $src
2016-02-24 08:48:04 +00:00
cd $mainDir
2015-09-17 09:37:27 +00:00
done