- sed -e "s/\s*$$//; # remove trailing spaces" \
- -e "/^- '[^']*':\( \|$$\)/ { # match command lines" \
- -e "s/^- '\([^']*\)':\( \|$$\)/ \*\1\*\n\0/; # make command references" \
- -e ":a; s/^\(.\{1,78\}\n\)/ \1/; ta } # right align references" \
- > doc/vim-markdown.txt && rm -f doc/tmp.md
+ sed -E -e "s/[[:space:]]*$$//" -e "# remove trailing spaces" \
+ -e "/^.{79,}\|$$/ {" -e "# wrap table of contents over 79" \
+ -e "h" -e "# save the matched line to the hold space" \
+ -e "s/^(.*) (\|[^|]*\|)$$/\1/" -e "# make content title" \
+ -e "p" -e "# print title" \
+ -e "g" -e "# restore the matched line" \
+ -e "s/^.* (\|[^|]*\|)$$/ \1/" -e "# make link" \
+ -e ":c" -e "s/^(.{1,78})$$/ \1/" -e "tc" -e "# align right" \
+ -e "}" \
+ -e "/^- '[^']*':( |$$)/ {" \
+ -e "h" -e "# save the matched line to the hold space" \
+ -e "s/^- '([^']{3,})':.*/ \*\1\*/" -e "# make command reference" \
+ -e "s/^- '([^']{1,2})':.*/ \*vim-markdown-\1\*/" -e "# short command" \
+ -e ":a" -e "s/^(.{1,78})$$/ \1/" -e "ta" -e "# align right" \
+ -e "G" -e "# append the matched line after the command reference" \
+ -e "}" \
+ -e "/^- '[^']*'$$/ {" \
+ -e "h" -e "# save the matched line to the hold space" \
+ -e "s/^- '([^']*)'$$/ \*\1\*/" -e "# make global variable reference" \
+ -e ":g" -e "s/^(.{1,78})$$/ \1/" -e "tg" -e "# align right" \
+ -e "G" -e "# append the matched line after the global variable reference" \
+ -e "}" > doc/vim-markdown.txt && rm -f doc/tmp.md
+