summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/adoc45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/adoc b/src/adoc
index e69de29..85d2387 100755
--- a/src/adoc
+++ b/src/adoc
@@ -0,0 +1,45 @@
+#!/bin/sh
+set -euo pipefail
+
+
+usage() {
+ echo 'Usage: adoc [-x] [-s] [-n INDENT_LEN] [FILENAME.adoc]'
+}
+
+FILENAME="${1:-}"
+eval "$(assert-arg -- "$FILENAME" 'FILENAME.adoc')"
+
+
+plaintext_links() {
+ awk -v BASE="$(basename "$FILENAME" .adoc)".html '
+ { print }
+ /^----$/ {
+ in_block = !in_block
+ if (in_block) {
+ next
+ }
+ file = BASE "." count++ ".txt"
+ print "[role=plaintext]"
+ print "link:" file "[plaintext]"
+ }' "$1"
+}
+
+runtidy() {
+ statusconv 1:0 tidy \
+ -quiet \
+ -indent \
+ --indent-attributes yes \
+ --show-body-only yes \
+ --show-warnings no \
+ --tidy-mark no \
+ --wrap 120
+}
+
+indent_4_blocks() {
+ printf '<div><div><div><div>%s</div></div></div></div>' "$(cat -)" |
+ runtidy |
+ head -n -4 |
+ tail -n +5
+}
+
+plaintext_links "$FILENAME" | asciidoctor -s - | indent_4_blocks