summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/mddelta.sh26
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 "$@"