diff options
author | Tim Kientzle <kientzle@acm.org> | 2014-06-21 13:24:16 -0700 |
---|---|---|
committer | Tim Kientzle <kientzle@acm.org> | 2014-06-21 13:24:16 -0700 |
commit | 67e429d809f91f604a139c770127bae2a89d43b6 (patch) | |
tree | 09cd55c7d00a1b72754948c5f94bf828019a0f56 /doc/mdoc2wiki.awk | |
parent | cab8626475ea9e9679ee61324c84406d965fd5aa (diff) | |
download | libarchive-67e429d809f91f604a139c770127bae2a89d43b6.tar.gz |
Generate crossrefs, fix some punctuation
Diffstat (limited to 'doc/mdoc2wiki.awk')
-rwxr-xr-x | doc/mdoc2wiki.awk | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/doc/mdoc2wiki.awk b/doc/mdoc2wiki.awk index 5fee29c3..f2a4301d 100755 --- a/doc/mdoc2wiki.awk +++ b/doc/mdoc2wiki.awk @@ -93,6 +93,34 @@ function breakline() { linecmd("<br>") } +function crossref(name, sect, other) { + if (name == "cpio" && sect == 1) { + n = "ManPageBsdcpio1" + } else if (name == "cpio" && sect == 5) { + n = "ManPageCpio5" + } else if (name == "mtree" && sect == 5) { + n = "ManPageMtree5" + } else if (name == "tar" && sect == 1) { + n = "ManPageBsdtar1" + } else if (name == "tar" && sect == 5) { + n = "ManPageTar5" + } else if (!match(name, "^archive") && !match(name, "^libarchive")) { + n = name "(" sect ")|http://www.freebsd.org/cgi/man.cgi?query=" name "&sektion=" sect + } else { + n = "ManPage" + numbits = split(name, namebits, "[_-]") + for (i = 1; i <= numbits; ++i) { + p = namebits[i] + n = n toupper(substr(p, 0, 1)) substr(p, 2) + } + n = n sect + } + n = "[[" n "]]" + if (length other > 0) + n = n other + return n +} + # Start an indented display function dispstart() { linecmd("```text") @@ -241,7 +269,8 @@ function splitwords(l, dest, n, o, w) { section=wtail() linecmd("== " section " ==") } else if(match(words[w],"^Xr$")) { - add("'''" words[++w] "'''(" words[++w] ")" words[++w]) + add(crossref(words[w+1], words[w+2], words[w+3])) + w = w + 3 } else if(match(words[w],"^Nm$")) { if(match(section,"SYNOPSIS")) breakline() @@ -271,7 +300,7 @@ function splitwords(l, dest, n, o, w) { add("''file ...''") else { ++w - gsub("<", "<", words[w]) + gsub("<", "\\<", words[w]) add("''" words[w] "''") } } else if(match(words[w],"^Cm$")) { @@ -300,7 +329,7 @@ function splitwords(l, dest, n, o, w) { breakline() } l = wtail() - add("'''" l "'''") + add("''" l "''") if (match(section, "SYNOPSIS")) { breakline() } |