render svg diagrams using d2

This commit is contained in:
Dmitriy Pleshevskiy 2022-11-30 15:09:48 +03:00
parent 7cfded56a8
commit ce00da10a5
Signed by: pleshevskiy
GPG key ID: 1B59187B161C0215
4 changed files with 102 additions and 37 deletions

59
Makefile Normal file
View file

@ -0,0 +1,59 @@
DENO := deno
COV := $(DENO) coverage cov_profile
FMT := $(DENO) fmt *.ts examples/*.ts
NPM_PUB := npm publish
D2 := nix run git+https://git.pleshevski.ru/mynix/tools\\\#d2_unstable --
DIAGRAMS := \
turnstile
turnstile_theme_args := --layout elk --theme 101
dev: fmt tests cov
ci: fmt-check tests-cov
tests: clean
$(DENO) test --coverage=cov_profile *.test.ts
tests-cov: tests
$(COV) --lcov > cov_profile/cov.lcov
cov:
$(COV)
fmt:
$(FMT)
fmt-check:
$(FMT) --check
build: clean | $(DIAGRAMS)
tsc && tsc -p tsconfig.cjs.json
clean:
@echo clean test coverage data
rm -rf cov_profile
@echo clean build target
rm -rf dist
@echo clean diagrams
rm -rf assets/*.svg
define d2rule
d2_$(1)_args := $(D2) $$($(1)_theme_args) assets/$(1).d2 assets/$(1).svg
$(1): ; $$($(1)_args)
$(1)-w: ; $$($(1)_args) -w
endef
$(foreach d2name,$(DIAGRAMS),$(eval $(call d2rule,$(d2name))))
dry-pub:
$(NPM_PUB) --dry-run
pub:
$(NPM_PUB)
help:
cat Makefile

6
assets/turnstile.d2 Normal file
View file

@ -0,0 +1,6 @@
direction: right
Turnstile: {
Locked -> Unlocked: coin
Unlocked -> Locked: push
}

37
assets/turnstile.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 468 KiB

View file

@ -1,37 +0,0 @@
DENO := deno
COV := $(DENO) coverage cov_profile
FMT := $(DENO) fmt *.ts examples/*.ts
NPM_PUB := npm publish
dev: fmt tests cov
ci: fmt-check tests-cov
tests: clean
$(DENO) test --coverage=cov_profile *.test.ts
tests-cov: tests
$(COV) --lcov > cov_profile/cov.lcov
cov:
$(COV)
fmt:
$(FMT)
fmt-check:
$(FMT) --check
clean:
rm -rf cov_profile dist
build: clean
tsc && tsc -p tsconfig.cjs.json
dry-pub:
$(NPM_PUB) --dry-run
pub:
$(NPM_PUB)