--- /dev/null
+#!/usr/bin/env bash
+
+UMLROOT="$1"
+OFILE="$2"
+SCRIPT=$(cat <<HEREDOC
+BEGIN { count = 0 }
+
+/^@startuml$/, /^@enduml$/ {
+ if (\$1 == "@startuml") {
+ gsub(/.*\//, "", FILENAME)
+ gsub(/\.adoc$/, "", FILENAME)
+ fname = "$UMLROOT/" FILENAME "." count ".uml"
+ count++
+ }
+ print > fname
+ if (\$1 == "@enduml") {
+ close(fname)
+ pngname = FILENAME "." count ".png"
+ print "image:" pngname
+ }
+ next
+}
+
+{ print }
+HEREDOC
+)
+
+gawk "$SCRIPT" "${@:3}" | asciidoc -a toc -o "$OFILE" -