diff options
Diffstat (limited to '')
-rwxr-xr-x | src/adoc | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -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 |