summary refs log tree commit diff
path: root/bin/html.sh
blob: 5b59003fef8642041749fcfb956ac31a6bcca58f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh
set -eu

readonly GitURL='https://git.causal.agency/src/tree/bin'

man=$1
shift

title=${man##*/}
title=${title%.[1-9]}

cat <<EOF
<!DOCTYPE html>
<title>${title}</title>
<style>
$(./scheme -s)

table.head, table.foot { width: 100%; }
td.head-rtitle, td.foot-os { text-align: right; }
td.head-vol { text-align: center; }
div.Pp { margin: 1ex 0ex; }
div.Nd, div.Bf, div.Op { display: inline; }
span.Pa, span.Ad { font-style: italic; }
span.Ms { font-weight: bold; }
dl.Bl-diag > dt { font-weight: bold; }
code.Nm, code.Fl, code.Cm, code.Ic, code.In, code.Fd, code.Fn,
code.Cd { font-weight: bold; font-family: inherit; }

table { border-collapse: collapse; }
table.Nm code.Nm { padding-right: 1ch; }
table.foot { margin-top: 1em; }

html {
	line-height: 1.25em;
	font-family: monospace;
	background-color: var(--ansi0);
	color: var(--ansi7);
	-moz-tab-size: 4;
	tab-size: 4;
}
body {
	max-width: 80ch;
	margin: 1em auto;
	padding: 0 1ch;
}
a { color: var(--ansi4); }
a:visited { color: var(--ansi5); }
a.permalink, a.tag {
	color: var(--ansi6);
	text-decoration: none;
}
a.permalink code:target,
h1.Sh:target a.permalink,
h2.Ss:target a.permalink,
a.tag:target {
	color: var(--ansi3);
	outline: none;
}
</style>
EOF

opts='fragment'
[ "${man}" = "README.7" ] && opts="${opts},man=%N.html"
mandoc -T html -O "${opts}" "${man}"

while [ $# -gt 0 ]; do
	src=$1
	shift
	cat <<-EOF
	<p>
	<a href="${GitURL}/${src}">${src} in git</a>
	EOF
	./htagml -p -f htmltags "${src}"
done