summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile51
1 files changed, 39 insertions, 12 deletions
diff --git a/Makefile b/Makefile
index 45f0260..0b6c869 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
BIBLIOGRAPHY := bibliography.bib
TEMPLATE_FILES := $(wildcard templates/*)
TEMPLATE := templates/default.latex
+WORDCOUNT_FILTER := filters/wordcount.lua
DISSERTATION_FRONTMATTER := frontmatter.yml
DISSERTATION_MARKDOWN := dissertation.md
INTRODUCTION_MARKDOWN := chapter0.md
@@ -11,7 +12,10 @@ CHAPTER_4_MARKDOWN := chapter4.md
CONCLUSION_MARKDOWN := chapter5.md
LOG_MARKDOWN := log.md
SCRAPBOOK_MARKDOWN := scrapbook.md
+DISSERTATION_LATEX := dissertation.latex
+DISSERTATION_LATEX_NO_REFERENCES := dissertation-no-references.latex
DISSERTATION_PDF := dissertation.pdf
+DISSERTATION_PDF_NO_REFERENCES := dissertation-no-references.pdf
LOG_PDF := log.pdf
SCRAPBOOK_PDF := scrapbook.pdf
@@ -58,15 +62,23 @@ $(SCRAPBOOK_PDF): $(SCRAPBOOK_MARKDOWN) $(BIBLIOGRAPHY) $(TEMPLATE_FILES)
dissertation: $(DISSERTATION_PDF)
-$(DISSERTATION_PDF): $(DISSERTATION_MARKDOWN) $(BIBLIOGRAPHY) $(TEMPLATE_FILES)
+$(DISSERTATION_PDF): $(DISSERTATION_LATEX)
pandoc \
--standalone \
- --from markdown \
+ --from latex \
--to pdf \
--pdf-engine pdflatex \
+ --output $(DISSERTATION_PDF) \
+ $(DISSERTATION_LATEX)
+
+$(DISSERTATION_LATEX): $(DISSERTATION_MARKDOWN) $(BIBLIOGRAPHY) $(TEMPLATE_FILES)
+ pandoc \
+ --standalone \
+ --from markdown \
+ --to latex \
--citeproc \
--template $(TEMPLATE) \
- --output $(DISSERTATION_PDF) \
+ --output $(DISSERTATION_LATEX) \
$(DISSERTATION_MARKDOWN)
.SILENT: $(DISSERTATION_MARKDOWN)
@@ -91,16 +103,31 @@ $(DISSERTATION_MARKDOWN): $(DISSERTATION_FRONTMATTER) $(INTRODUCTION_MARKDOWN) $
echo "" >> $(DISSERTATION_MARKDOWN)
.SILENT: wordcount
-wordcount: $(DISSERTATION_MARKDOWN)
- echo "Introduction: ~$$(cat $(INTRODUCTION_MARKDOWN) | wc -w)"
- echo "Chapter 1: ~$$(cat $(CHAPTER_1_MARKDOWN) | wc -w)"
- echo "Chapter 2: ~$$(cat $(CHAPTER_2_MARKDOWN) | wc -w)"
- echo "Chapter 3: ~$$(cat $(CHAPTER_3_MARKDOWN) | wc -w)"
- echo "Chapter 4: ~$$(cat $(CHAPTER_4_MARKDOWN) | wc -w)"
- echo "Conclusion: ~$$(cat $(CONCLUSION_MARKDOWN) | wc -w)"
+wordcount: $(DISSERTATION_PDF_NO_REFERENCES)
+ echo "Introduction: $$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(INTRODUCTION_MARKDOWN))"
+ echo "Chapter 1: $$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(CHAPTER_1_MARKDOWN))"
+ echo "Chapter 2: $$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(CHAPTER_2_MARKDOWN))"
+ echo "Chapter 3: $$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(CHAPTER_3_MARKDOWN))"
+ echo "Chapter 4: $$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(CHAPTER_4_MARKDOWN))"
+ echo "Conclusion: $$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(CONCLUSION_MARKDOWN))"
echo "Footnotes: ???"
echo "References: ???"
- echo "Total: ~$$(cat $(DISSERTATION_MARKDOWN) | tail -n +6 | wc -w) + footnotes"
+ echo "Total: $$(pdfgrep -o '\w+' $(DISSERTATION_PDF_NO_REFERENCES) | wc -w) ($$(pandoc --lua-filter $(WORDCOUNT_FILTER) $(DISSERTATION_MARKDOWN)) + footnotes)"
+
+$(DISSERTATION_PDF_NO_REFERENCES): $(DISSERTATION_LATEX_NO_REFERENCES)
+ pandoc \
+ --standalone \
+ --from latex \
+ --to pdf \
+ --pdf-engine pdflatex \
+ --output $(DISSERTATION_PDF_NO_REFERENCES) \
+ $(DISSERTATION_LATEX_NO_REFERENCES)
+
+bib_start_line_index = $(shell grep -nm 1 "^\\\\begin{CSLReferences}" $(DISSERTATION_LATEX) | sed "s/^\([0-9]*\):.*$$/\1/")
+bib_end_line_index = $(shell grep -nm 1 "^\\\\end{CSLReferences}" $(DISSERTATION_LATEX) | sed "s/^\([0-9]*\):.*$$/\1/")
+$(DISSERTATION_LATEX_NO_REFERENCES): $(DISSERTATION_LATEX)
+ head -n $$(( $(bib_start_line_index) - 1 )) $(DISSERTATION_LATEX) > $(DISSERTATION_LATEX_NO_REFERENCES)
+ tail -n +$$(( $(bib_end_line_index) + 1 )) $(DISSERTATION_LATEX) >> $(DISSERTATION_LATEX_NO_REFERENCES)
clean:
- rm -f $(LOG_PDF) $(SCRAPBOOK_PDF) $(DISSERTATION_MARKDOWN) $(DISSERTATION_PDF)
+ rm -f $(LOG_PDF) $(SCRAPBOOK_PDF) $(DISSERTATION_MARKDOWN) $(DISSERTATION_LATEX) $(DISSERTATION_LATEX_NO_REFERENCES) $(DISSERTATION_PDF) $(DISSERTATION_PDF_NO_REFERENCES)