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