summaryrefslogtreecommitdiff
path: root/man/lib
diff options
context:
space:
mode:
authorKonstantin Kirik (snegovick) <snegovick@uprojects.org>2025-12-08 08:50:38 +0300
committerKonstantin Kirik (snegovick) <snegovick@uprojects.org>2025-12-08 08:50:38 +0300
commit97e1ee5918222272056d6747735e39933f79011c (patch)
treef6899798869007dfc6ad37dfe792819ac6ba405f /man/lib
parentefb56b311a59529196831da51ebbf21c20be665d (diff)
Add scripts and index page for html man pages
Diffstat (limited to 'man/lib')
-rw-r--r--man/lib/mklinks.py48
-rw-r--r--man/lib/tohtml.sh34
2 files changed, 82 insertions, 0 deletions
diff --git a/man/lib/mklinks.py b/man/lib/mklinks.py
new file mode 100644
index 00000000..b2b22a54
--- /dev/null
+++ b/man/lib/mklinks.py
@@ -0,0 +1,48 @@
+import sys
+import re
+import argparse
+
+path_prefix = ""
+
+def repl_normal(m):
+ if m.group('name').lower() == 'section':
+ return f"<a href=\"{path_prefix}{m.group('section')}\">{m.group('name')} ({m.group('section')})</a>"
+ else:
+ if m.group('section') not in ['lib', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']:
+ pass
+ else:
+ return f"<a href=\"{path_prefix}{m.group('section')}/{m.group('name')}.html\">{m.group('name')} ({m.group('section')})</a>"
+ return f"{m.group('name')} ({m.group('section')})"
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(
+ prog='mklinks',
+ description='Makes links obviously',
+ epilog='God bless you')
+ parser.add_argument('-i', '--input')
+ parser.add_argument('-o', '--output')
+ parser.add_argument('-p', '--path-prefix')
+ args = parser.parse_args()
+
+ path_prefix = ""
+ if args.path_prefix is not None:
+ path_prefix = args.path_prefix
+
+ link_re = re.compile(r"(?P<name>[a-zA-Z0-9\-\_]+) \((?P<section>[0-9a-z]+)\)")
+ link_i_re = re.compile(r"<i>(?P<name>[a-zA-Z0-9\-\_]+)</i>\((?P<section>[0-9a-z]+)\)")
+ f = None
+ if args.input is None:
+ f = sys.stdin
+ else:
+ f = open(args.input, 'r')
+
+ text = f.read()
+ f.close()
+
+ text = link_re.sub(repl_normal, text)
+ text = link_i_re.sub(repl_normal, text)
+ if args.output is not None:
+ with open(args.output, 'w') as out:
+ out.write(text)
+ else:
+ print(text)
diff --git a/man/lib/tohtml.sh b/man/lib/tohtml.sh
new file mode 100644
index 00000000..b3081a58
--- /dev/null
+++ b/man/lib/tohtml.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+if [ -e output ]; then
+ rm output -rf
+fi
+
+cwd=$(pwd)
+echo "CWD: ${cwd}"
+mkdir output
+for d in $(ls); do
+ if [ -d $d ]; then
+ if [ x"$d" = x"output" ]; then
+ continue
+ fi
+ if [ x"$d" = x"lib" ]; then
+ continue
+ fi
+ echo "mkdir output/${d}"
+ mkdir output/${d}
+ pushd $d
+ for f in $(ls); do
+ name=$(basename -- "$f")
+ ext="${name##*.}"
+ if [ x"${ext}" = x"html" ]; then
+ echo "Remove ${f}"
+ rm $f
+ else
+ cat ${f} | mandoc -Thtml | python3 ${cwd}/mklinks.py -p /man/ -o ${cwd}/output/$d/$f.html
+ #cat ${f} | mandoc -Thtml > ${cwd}/output/$d/$f.html
+ echo "Processed ${d}/${f}"
+ fi
+ done
+ popd
+ fi
+done