add support of force_appendix

This commit is contained in:
Dmitriy Pleshevskiy 2023-03-16 11:46:01 +03:00
parent 2b2aa5f8e6
commit 720c006286
Signed by: pleshevskiy
GPG key ID: 79C4487B44403985
2 changed files with 36 additions and 10 deletions

View file

@ -1,8 +1,8 @@
# *W*rapped _d2_ # *W*rapped _d2_
A wrapper over [d2] which allows to use `layout`, `theme`, `dark-theme`, `pad`, A wrapper over [d2] which allows to use cli/env configuratios as additional
`sketch` and `port` attributes from d2 file. All arguments will be passed to the specific attributes from d2 file. All these attributes will be passed to the d2
d2 cli, but these additional configs overwrite cli arguments with the same name. cli and overwrite cli parameters with the same name.
[d2]: https://github.com/terrastruct/d2 [d2]: https://github.com/terrastruct/d2
@ -48,6 +48,16 @@ You can also use inline style to configure d2
x -> y -> z x -> y -> z
``` ```
# Supported configurations
- port
- layout
- theme
- dark-theme
- pad
- sketch
- force-appendix
# Limitation # Limitation
You have to restart the watch server when you change the `layout`, `theme`, You have to restart the watch server when you change the `layout`, `theme`,

30
wd2
View file

@ -8,12 +8,23 @@ d2_input_file=
function print_help() { function print_help() {
cat <<EOF cat <<EOF
Usage: Usage:
wd2 [FLAGS...] file.d2 [file.svg | file.png] wd2 [--watch] [FLAGS...] file.d2 [file.svg | file.png]
A wrapper over d2 which allows to use 'layout', 'theme', 'dark-theme', A wrapper over d2 which allows to use cli/env configuratios as additional
'pad', 'sketch' and 'port' attributes from d2 file. All arguments will specific attributes from d2 file. All these attributes will be passed to the d2
be passed to the d2 cli, but these additional configs overwrite cli cli and overwrite cli parameters with the same name.
arguments with the same name.
# Supported configurations
- port
- layout
- theme
- dark-theme
- pad
- sketch
- force-appendix
-------------------------------------------------------------------------------
$(d2 --help | tail -n +6 - | sed -e 's/d2 \(layout\|fmt\)/wd2 \1/') $(d2 --help | tail -n +6 - | sed -e 's/d2 \(layout\|fmt\)/wd2 \1/')
EOF EOF
@ -48,7 +59,10 @@ function parse_args() {
} }
function get_attr_value() { function get_attr_value() {
head -n10 "$d2_input_file" | grep "$1" | awk -F"$1: " '{ print $2 }' | cut -d';' -f1 grep "^#" "$d2_input_file" \
| grep "$1" \
| awk -F"$1: " '{ print $2 }' \
| cut -d';' -f1
} }
parse_args "$@" parse_args "$@"
@ -65,6 +79,7 @@ d2_dark_theme=$(get_attr_value "dark-theme")
d2_pad=$(get_attr_value "pad") d2_pad=$(get_attr_value "pad")
d2_sketch=$(get_attr_value "sketch") d2_sketch=$(get_attr_value "sketch")
d2_port=$(get_attr_value "port") d2_port=$(get_attr_value "port")
d2_force_appendix=$(get_attr_value "force-appendix")
set -e set -e
d2 "${d2_args[@]}" \ d2 "${d2_args[@]}" \
@ -73,5 +88,6 @@ d2 "${d2_args[@]}" \
${d2_dark_theme:+--dark-theme=${d2_dark_theme}} \ ${d2_dark_theme:+--dark-theme=${d2_dark_theme}} \
${d2_pad:+--pad=${d2_pad}} \ ${d2_pad:+--pad=${d2_pad}} \
${d2_sketch:+--sketch=${d2_sketch}} \ ${d2_sketch:+--sketch=${d2_sketch}} \
${d2_port:+--port=${d2_port}} ${d2_port:+--port=${d2_port}} \
${d2_force_appendix:+--force-appendix=${d2_force_appendix}}