Makefile 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. ## The path to the directory in which this file resides. This allows users to
  2. ## include this Makefile into theirs and to reuse all rules, given that they set
  3. ## this variable to the correct value.
  4. PANDOC_SCHOLAR_PATH ?= $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
  5. # include local makefile to allow easy overwriting of variables
  6. -include local.mk
  7. include $(PANDOC_SCHOLAR_PATH)/pandoc-options.inc.mk
  8. LUA_FILTERS_PATH ?= $(PANDOC_SCHOLAR_PATH)/lua-filters
  9. PANDOC ?= pandoc
  10. # Configuration (overwrite using Makefile.local.in if necessary)
  11. ARTICLE_FILE ?= example/article.md
  12. OUTFILE_PREFIX ?= outfile
  13. DEFAULT_EXTENSIONS ?= latex pdf docx odt epub html
  14. ADDITIONAL_EXTENSIONS ?= xml jats jsonld txt
  15. JSON_FILE ?= $(OUTFILE_PREFIX).enriched.json
  16. FLATTENED_JSON_FILE ?= $(OUTFILE_PREFIX).flattened.json
  17. LUA_FILTERS ?= $(LUA_FILTERS_PATH)/cito/cito.lua \
  18. $(LUA_FILTERS_PATH)/abstract-to-meta/abstract-to-meta.lua \
  19. $(LUA_FILTERS_PATH)/scholarly-metadata/scholarly-metadata.lua
  20. default: $(addprefix $(OUTFILE_PREFIX).,$(DEFAULT_EXTENSIONS))
  21. all: $(addprefix $(OUTFILE_PREFIX).,$(DEFAULT_EXTENSIONS)) \
  22. $(addprefix $(OUTFILE_PREFIX).,$(ADDITIONAL_EXTENSIONS))
  23. $(JSON_FILE): $(ARTICLE_FILE) $(LUA_FILTERS)
  24. $(PANDOC) $(PANDOC_READER_OPTIONS) \
  25. $(foreach filter, $(LUA_FILTERS), --lua-filter=$(filter)) \
  26. --to=json \
  27. --output=$@ $<
  28. $(OUTFILE_PREFIX).pdf $(OUTFILE_PREFIX).latex: \
  29. $(JSON_FILE) \
  30. $(TEMPLATE_FILE_LATEX) \
  31. $(PANDOC_SCHOLAR_PATH)/scholar-filters/template-helper.lua
  32. $(PANDOC) $(PANDOC_WRITER_OPTIONS) \
  33. $(PANDOC_LATEX_OPTIONS) \
  34. --lua-filter=$(PANDOC_SCHOLAR_PATH)/scholar-filters/template-helper.lua \
  35. --output $@ $<
  36. $(OUTFILE_PREFIX).docx: $(JSON_FILE) \
  37. $(DOCX_REFERENCE_FILE) \
  38. $(LUA_FILTERS_PATH)/author-info-blocks/author-info-blocks.lua
  39. $(PANDOC) $(PANDOC_WRITER_OPTIONS) \
  40. $(PANDOC_DOCX_OPTIONS) \
  41. --lua-filter=$(LUA_FILTERS_PATH)/author-info-blocks/author-info-blocks.lua \
  42. --output $@ $<
  43. $(OUTFILE_PREFIX).odt: $(JSON_FILE) \
  44. $(ODT_REFERENCE_FILE) \
  45. $(LUA_FILTERS_PATH)/author-info-blocks/author-info-blocks.lua
  46. $(PANDOC) $(PANDOC_WRITER_OPTIONS) \
  47. $(PANDOC_ODT_OPTIONS) \
  48. --lua-filter=$(LUA_FILTERS_PATH)/author-info-blocks/author-info-blocks.lua \
  49. --output $@ $<
  50. $(OUTFILE_PREFIX).epub: $(JSON_FILE) \
  51. $(TEMPLATE_FILE_EPUB) \
  52. $(LUA_FILTERS_PATH)/author-info-blocks/author-info-blocks.lua
  53. $(PANDOC) $(PANDOC_WRITER_OPTIONS) \
  54. $(PANDOC_EPUB_OPTIONS) \
  55. --lua-filter=$(LUA_FILTERS_PATH)/author-info-blocks/author-info-blocks.lua \
  56. --output $@ $<
  57. $(OUTFILE_PREFIX).html: $(JSON_FILE) \
  58. $(TEMPLATE_FILE_HTML) \
  59. $(TEMPLATE_STYLE_HTML) \
  60. $(PANDOC_SCHOLAR_PATH)/scholar-filters/template-helper.lua
  61. $(PANDOC) $(PANDOC_WRITER_OPTIONS) \
  62. $(PANDOC_HTML_OPTIONS) \
  63. --lua-filter=$(PANDOC_SCHOLAR_PATH)/scholar-filters/template-helper.lua \
  64. --css=$(TEMPLATE_STYLE_HTML) \
  65. --mathjax \
  66. --output $@ $<
  67. $(OUTFILE_PREFIX).jsonld: $(JSON_FILE) \
  68. $(BIBLIOGRAPHY_FILE) \
  69. $(PANDOC_SCHOLAR_PATH)/scholar-filters/json-ld.lua \
  70. $(PANDOC_SCHOLAR_PATH)/writers/jsonld.lua
  71. $(PANDOC) --to $(PANDOC_SCHOLAR_PATH)/writers/jsonld.lua \
  72. --lua-filter=$(PANDOC_SCHOLAR_PATH)/scholar-filters/json-ld.lua \
  73. --output=$@ $<
  74. $(OUTFILE_PREFIX).txt: $(ARTICLE_FILE)
  75. $(PANDOC) $(PANDOC_WRITER_OPTIONS) \
  76. --output $@ $<
  77. ## The JSON file is required only for metadata (csl) extraction
  78. ## by the jats-fixes.lua script, as pandoc overrides the CSL
  79. ## field when converting to JATS.
  80. $(OUTFILE_PREFIX).jats $(OUTFILE_PREFIX).xml: $(ARTICLE_FILE) \
  81. $(JSON_FILE) \
  82. $(PANDOC_SCHOLAR_PATH)/templates/pandoc-scholar.jats \
  83. $(PANDOC_SCHOLAR_PATH)/scholar-filters/jats-fixes.lua \
  84. $(PANDOC_SCHOLAR_PATH)/scholar-filters/template-helper.lua \
  85. $(PANDOC_SCHOLAR_PATH)/csl/chicago-author-date.csl \
  86. $(PANDOC_SCHOLAR_PATH)/csl/jats.csl
  87. $(PANDOC) \
  88. $(PANDOC_WRITER_OPTIONS) \
  89. $(PANDOC_JATS_OPTIONS) \
  90. $(foreach filter, $(LUA_FILTERS), --lua-filter=$(filter)) \
  91. --lua-filter=$(PANDOC_SCHOLAR_PATH)/scholar-filters/template-helper.lua \
  92. --to=jats_articleauthoring+element_citations \
  93. --output $@ $<
  94. clean:
  95. ifeq ($(OS),Windows_NT)
  96. del $(OUTFILE_PREFIX).docx $(OUTFILE_PREFIX).epub $(OUTFILE_PREFIX).html
  97. del $(OUTFILE_PREFIX).odt $(OUTFILE_PREFIX).latex $(OUTFILE_PREFIX).pdf
  98. del $(JSON_FILE) $(FLATTENED_JSON_FILE)
  99. else
  100. for ext in $(DEFAULT_EXTENSIONS) $(ADDITIONAL_EXTENSIONS); do\
  101. rm -f $(OUTFILE_PREFIX).$$ext;\
  102. done
  103. rm -f $(JSON_FILE) $(FLATTENED_JSON_FILE)
  104. endif
  105. .PHONY: all clean
  106. # Include archive-generating targets. This makefile is not included in the
  107. # distributed archives
  108. -include archives.inc.mk