summaryrefslogtreecommitdiff
path: root/doc/scd2gfm.sh
blob: c9668322ee2477892fdd0ae04dbd4430b7736be5 (plain)
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
#!/bin/sh
#
# Convert an scdoc file to GitHub markdown, with some custom tweaks to work
# around pandoc's poor formatting.
#
# Usage:
# ./scd2gfm < file.scd > file.md

set -eu

html=$(scd2html -f)
no_sections=$(echo "$html" | sed -e "s|</\?section.*||" -e "s/[^;]<a.*//")
italics=$(echo "$no_sections" | sed "s|<u>\([^<]*\)</u>|<i>\1</i>|g")
no_header=$(echo "$italics" | awk '
/<header>/ {
	header = 1
}

/<\/header>/ {
	header = 0
}

!/header/ {
	if (header == 0) {
		print
	}
}
')

combine_blockquotes=$(echo "$no_header" | awk '
/\/blockquote/ {
	if (endblock > 0) {
		print buffer
	}
	endblock = NR
	buffer = $0
}

/<blockquote/ {
	if (endblock == NR - 2) {
		print "<br/> <br/>"
		gsub("<blockquote>", "")
		buffer = ""
	} else {
		print buffer
		print
		buffer = ""
	}
}

!/blockquote/ {
	if (endblock == NR - 2) {
		print buffer
		buffer = ""
	}
	print
}
')

echo "$combine_blockquotes" | pandoc --from html --to gfm | sed "s/\s\+$//"