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