-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathMakefile
67 lines (52 loc) · 1.4 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# https://github.com/IDPF/epubcheck/releases/tag/v3.0.1
EPUBCHECKJAR=$(HOME)/pkgs/epubcheck-3.0.1/epubcheck-3.0.1.jar
DOC=desosa2015
CHAPTERS=syncany openra playframework angulardart docker diaspora vagrant jekyll joomla kodi
CHAPTERS_MD=$(patsubst %,chapters/%/index.md,$(CHAPTERS))
EXTRACTDIR=zzz-epub-extract
TARGET_DIR=target
EPUB_OUT=$(TARGET_DIR)/$(DOC).epub
PDF_OUT=$(TARGET_DIR)/$(DOC).pdf
all:
$(MAKE) clean img epub
epub:
mkdir -p $(TARGET_DIR)
pandoc \
--smart \
--toc \
--number-sections \
--toc-depth=2 \
--epub-cover-image=epub-cover.png \
--output=$(EPUB_OUT) \
index.md \
$(CHAPTERS_MD)
img:
mkdir -p images
$(foreach chapter, $(CHAPTERS), cp -r -i chapters/$(chapter)/images/* images/;)
check:
java -jar $(EPUBCHECKJAR) $(EPUB_OUT)
# An epub file is just a zip file with html content.
# Provide target for unzipping to help fixing incorrect epubs.
unzip:
rm -rf $(EXTRACTDIR)
mkdir -p $(EXTRACTDIR)
cp $(EPUB_OUT) $(EXTRACTDIR)/$(DOC).zip
cd $(EXTRACTDIR); unzip $(DOC).zip
clean:
rm -rf images $(EXTRACTDIR) $(TARGET_DIR)
pdf:
mkdir -p $(TARGET_DIR)
pandoc \
--include-in-header=preamble.tex \
--smart \
--toc \
--chapters \
--number-sections \
--toc-depth=2 \
--output=$(PDF_OUT) \
index.md \
$(CHAPTERS_MD)
docker:
docker run --rm --volume="$(CURDIR):/srv/jekyll" -it jekyll/builder:3.8.4 bash
serve:
cd _site && python -m SimpleHTTPServer 4000