Skip to content

Instantly share code, notes, and snippets.

@denismaier
Last active June 5, 2023 08:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save denismaier/beab4953c9ad6825e7b0d98bee081a00 to your computer and use it in GitHub Desktop.
Save denismaier/beab4953c9ad6825e7b0d98bee081a00 to your computer and use it in GitHub Desktop.
# Makefile
#
# Run "make docx2md" to produce markdown from docx
#
# Run "make odt2md" to produce markdown from odt
#
# Run "make jats" to produce a JATS XML file based on the intermediary markdown file
#
# Run "make pdf" to produce a PDF from JATS XML with ConTeXt
# Filename (without extension)
basename=jndf-2023-1-1-pinkas
# ConTeXt mode: article or review
context-mode=article
# ConTeXt layout
context-layout=layout
# XML mapping
xml-mapping=jats
include ../standard.makefile
.PHONY: html pdf help
default: help
# Pandoc basic settings
pandoc=pandoc
datadir=
assets = ../_assets
# Pandoc options
general_options= --standalone
# Pandoc to Markdown Options
metadata=$(assets)/metadata-2023-1.yaml
markdown_options=--to markdown-smart --metadata-file=$(metadata) --wrap=none
# Pandoc to JATS XML Options
# If need a custom JATS template use this option --template-file=
jats-template = --template=$(assets)/jats_publishing.template
jats-lua-filters-list = author-notes-to-meta.lua abstract-to-meta.lua headings-refs-to-meta.lua html-tables.lua pandoc-list-table.lua versify.lua classes-to-attr.lua
jats-lua-filters = $(foreach filter,$(jats-lua-filters-list),-L $(assets)/$(filter))
jats_options=--to jats --from markdown-smart --wrap=none --number-sections $(jats-lua-filters) $(jats-template)
# Saxon Options
# We use Saxon to convert to HTML
# Demo command: java -jar c:\saxon\saxon9he.jar -s:source.xml -xsl:rules.xsl -o:output.html
# use Transform als Kommando
java=java -jar
saxon=dir/saxon9he.jar
xslt-command=transform
catalog = $(assets)/jats-dtd/catalog-jats-v1-2-no-base.xml
# Cleanup XML
cleanup_XSL = $(assets)/cleanup.xsl
xslt_cleanup_options = -xsl:$(cleanup_XSL) -catalog:$(catalog) -expand:off nonumheadings=$(nonumheadings)
# HTML Options
XSL = $(assets)/jats2html.xsl
CSS = galley.css
xslt_options = -xsl:$(XSL) -catalog:$(catalog)
###################################################
# Rules
################
docx2md:
$(pandoc) $(general_options) $(markdown_options) -o md/$(basename)-raw.md source/$(basename).docx
odt2md:
$(pandoc) $(general_options) $(markdown_options) -o md/$(basename)-raw.md source/$(basename).odt
################
mdtypo:
python $(assets)/typo-replacements.py md/$(basename).md
mdfinal:
copy .\md\$(basename)-modified.md .\md\$(basename)-final.md
################
xmlraw:
$(pandoc) $(general_options) $(jats_options) -o xml/$(basename)-raw.xml md/$(basename)-final.md
xmlclean:
$(xslt-command) $(xslt_cleanup_options) -s:xml/$(basename)-raw.xml -o:xml/$(basename)-cleaned.xml
xml: xmlraw xmlclean
xmlfinal:
copy .\xml\$(basename)-cleaned.xml .\xml\$(basename)-final.xml
################
html:
$(xslt-command) $(xslt_options) -s:xml/$(basename)-final.xml -o:html/$(basename).html
htmltest:
$(xslt-command) $(xslt_options) -s:xml/$(basename)-cleaned.xml -o:html/test-$(basename).html stylesheet=$(CSS)
css:
mklink html\$(CSS) ..\..\_assets\$(CSS)
################
pdf:
cd pdf && \
context ../xml/$(basename)-final.xml --environment=../$(assets)/$(xml-mapping),../$(assets)/$(context-layout) --mode=$(context-mode) --result=$(basename).pdf
pdftest:
cd pdf && \
context ../xml/$(basename)-cleaned.xml --environment=../$(assets)/$(xml-mapping),../$(assets)/$(context-layout) --mode=$(context-mode) --result=$(basename)-test.pdf
pdftestdebug:
cd pdf && \
context ../xml/$(basename)-cleaned.xml --environment=../$(assets)/$(xml-mapping),../$(assets)/$(context-layout) --mode=$(context-mode),debug --result=$(basename)-test.pdf
################
md2docx:
$(pandoc) md/$(basename)-final.md -o md/$(basename).docx
md2icml:
$(pandoc) md/$(basename)-final.md -o md/$(basename).icml
##################
md2pdftest:
make mdtypo && make mdfinal && make xml && make pdftest
md2pdftestdebug:
make mdtypo && make mdfinal && make xml && make pdftestdebug
md2htmltest:
make mdtypo && make mdfinal && make xml && make htmltest
md2test:
make mdtypo && make mdfinal && make xml && make htmltest && make pdftest
md2all:
make mdtypo && make mdfinal && make xml && make xmlfinal && make html && make pdf
#################
help:
$(info Verfuegbare Optionen:)
$(info =====================)
$(info docx2md)
$(info odt2md)
$(info mdtypo)
$(info jats)
$(info html)
$(info htmltest)
$(info pdf)
$(info pdftest)
$(info md2pdftest)
$(info md2pdftestdebug)
$(info md2htmltest)
$(info md2htmltest)
$(info md2test)
$(info md2all)
$(info help)
$(info =====================)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment