aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 3e4cefa5299b53a5deb83fb5e210a381179a80e4 (plain)
  1. DOCUMENTS = report
  2. PDF_DOCUMENTS = _site/report.pdf
  3. include _make/*.mk
  4. DOCUMENT_APPENDIX_REGEX = Pandoc filter semantic-markdown
  5. FILTER = _extensions/ruc-play/semantic-markdown/semantic-markdown.lua
  6. DIFFTESTS = $(patsubst %.md,%,$(wildcard test/*.md))
  7. #DIFF = diff -u
  8. DIFF = git --no-pager diff --no-index
  9. #PANDOC = pandoc -f markdown+fenced_divs+bracketed_spans-auto_identifiers
  10. PANDOC = pandoc --from commonmark
  11. #PANDOC = quarto pandoc --from commonmark
  12. SYNTAX_DIAGRAMS := $(patsubst %.py,%.svg,$(wildcard syntax/def_*.py))
  13. WORKFLOW_DIAGRAMS := $(patsubst %.cwl,%.svg,$(wildcard workflow/phase*.cwl))
  14. RAPPER = rapper -i rdfa
  15. #RAPPER += -f relativeURIs
  16. # implicit namespaces at <https://www.w3.org/2011/rdfa-context/rdfa-1.1>
  17. NS += foaf=http://xmlns.com/foaf/0.1/
  18. NS += rdfa=http://www.w3.org/ns/rdfa\#
  19. NS += rdfs=http://www.w3.org/2000/01/rdf-schema\#
  20. NS += schema=http://schema.org/
  21. NS += wd=https://www.wikidata.org/entity/
  22. NS += bibo=http://purl.org/ontology/bibo/
  23. NS += ov=http://open.vocab.org/terms/
  24. RAPPER += $(foreach s,$(NS),$(let a b,$(subst =, $(),$s), -f 'xmlns:$a="$b"'))
  25. _site/report.pdf: $(wildcard _*.qmd) $(SYNTAX_DIAGRAMS) $(WORKFLOW_DIAGRAMS)
  26. $(SYNTAX_DIAGRAMS): %.svg: %.py
  27. python3 $<
  28. $(WORKFLOW_DIAGRAMS): %.svg: %.cwl
  29. cwltool --print-dot $< \
  30. | gvpr -f workflow/rotate.gvpr \
  31. | perl -pe 's/phase\d_//g;' \
  32. -e 's/label=\K[^\s",]+|translate_to_\w+/ "\"".join(" ", split(m{_}, $$&))."\"" /ge' \
  33. | dot -Tsvg > $@
  34. check: $(DIFFTESTS:%=check-%)
  35. luacheck --quiet $(FILTER)
  36. $(DIFFTESTS:%=check-%): check-%: %.md
  37. -$(strip $(PANDOC) --lua-filter $(FILTER) --wrap preserve < $< \
  38. | $(DIFF) $*.plain.html /dev/stdin)
  39. $(DIFFTESTS:%=debug-%): debug-%: %.md
  40. $(PANDOC) --to native --lua-filter $(FILTER) < $<
  41. $(DIFFTESTS:%=debugdiff-%): SHELL = /bin/bash
  42. $(DIFFTESTS:%=debugdiff-%): debugdiff-%: %.md
  43. -$(strip $(DIFF) \
  44. <($(PANDOC) --to native < $<) \
  45. <($(PANDOC) --to native --lua-filter $(FILTER) < $<))
  46. $(DIFFTESTS:%=turtle-from-%): turtle-from-%: %.rdfa.html
  47. $(RAPPER) -o turtle $< $(dir $<)
  48. $(DIFFTESTS:%=xmp-from-%): xmp-from-%: %.rdfa.html
  49. $(RAPPER) -o rdfxml-xmp $< $(dir $<)
  50. .PHONY: check \
  51. $(foreach x,check debug debugdiff turtle-from xmp-from,\
  52. $(DIFFTESTS:%=$x-%))