Inital Commit

This commit is contained in:
vx-clutch
2026-04-22 21:44:48 -04:00
commit 19d543f99d
16 changed files with 290 additions and 0 deletions

78
tools/md2man Executable file
View File

@@ -0,0 +1,78 @@
#!/bin/sh
set -eu
VERSION="v0.1"
file=$1
[ -f "$file" ] || exit 1
name=$(basename "$file" .md)
awk -v name="$name" '
BEGIN {
print ".TH \"" toupper(name) "\" 1"
in_name = 0
}
function esc(s) {
gsub(/\\/, "\\\\", s)
gsub(/^\./, "\\&.", s)
return s
}
function fmt(s) {
while (match(s, /`[^`]+`/)) {
pre = substr(s, 1, RSTART-1)
mid = substr(s, RSTART+1, RLENGTH-2)
post = substr(s, RSTART+RLENGTH)
s = pre "\\fB" mid "\\fR" post
}
return esc(s)
}
{
sub(/\r$/, "")
if ($0 ~ /^# /) {
section = substr($0, 3)
if (toupper(section) == "NAME") {
print ".SH NAME"
in_name = 1
} else {
print ".SH " toupper(esc(section))
in_name = 0
}
next
}
if ($0 ~ /^$/) {
print ".PP"
next
}
if (in_name) {
split($0, a, " - ")
if (length(a) > 1) {
print "\\fB" esc(a[1]) "\\fR \\- " esc(a[2])
} else {
print "\\fB" esc($0) "\\fR"
}
next
}
if ($0 ~ /^- /) {
sub(/^- /, "")
split($0, a, " ")
print ".TP"
print "\\fB" esc(a[1]) "\\fR"
if (length(a) > 1) {
print fmt(substr($0, length(a[1]) + 3))
}
next
}
print fmt($0)
}
' "$file"