diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/mddelta.sh | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bin/mddelta.sh b/bin/mddelta.sh new file mode 100755 index 0000000..7db89f1 --- /dev/null +++ b/bin/mddelta.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2024 Jonas Smedegaard <dr@jones.dk +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +# generate markdown-formatted word-based delta between two markdown files + +set -eu + +#dwdiff -A best -R -d ',.?:;[]()-_/' -W ' \t\n#' -w '<span style="color: red"><del>' -x '</del></span>' -y '<span style="color: green"><ins>' -z '</ins></span>' "$1" "$2" + +# annotate changes with both span and del/ins html tags +# * only del/ins confuses markdown parsers around unnumbered lists +# inspiration: https://stackoverflow.com/a/2384393/18619283 +set - --start-insert='<span style="color: green"><ins>' --stop-insert='</ins></span>' "$@" +set - --start-delete='<span style="color: red"><del>' --stop-delete='</del></span>' "$@" + +# treat # as whitespace and other punctuation as delimiters +set - --white-space=' \t\n#' --delimiters=',.?:;[]()-_/' "$@" + +# compact difference detection and representation +set - --algorithm=best --repeat-markers "$@" + +#echo dwdiff "$@" +exec dwdiff "$@" |