summaryrefslogtreecommitdiff
path: root/docs/ref
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-04-05 00:30:05 -0700
committerGarrett D'Amore <garrett@damore.org>2024-04-05 00:30:05 -0700
commitab7b5393f3c34b49e112f407ea61abc5cfb5933f (patch)
tree870c0c1eb13af202f5638576905f50e46d33f2fd /docs/ref
parentcec3d5e49ad3fb227265b90e915299beab36b45a (diff)
downloadnng-ab7b5393f3c34b49e112f407ea61abc5cfb5933f.tar.gz
nng-ab7b5393f3c34b49e112f407ea61abc5cfb5933f.tar.bz2
nng-ab7b5393f3c34b49e112f407ea61abc5cfb5933f.zip
Utility to help with man page conversion.
Diffstat (limited to 'docs/ref')
-rw-r--r--docs/ref/tweak.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/docs/ref/tweak.go b/docs/ref/tweak.go
new file mode 100644
index 00000000..b1710e0a
--- /dev/null
+++ b/docs/ref/tweak.go
@@ -0,0 +1,94 @@
+package main
+
+import (
+ "bufio"
+ "os"
+ "strings"
+)
+
+func dofile(file string) {
+ f, err := os.Open(file)
+ out := &strings.Builder{}
+ if err != nil {
+ panic(err)
+ }
+
+ scanner := bufio.NewScanner(f)
+ for scanner.Scan() {
+ line := scanner.Text()
+ switch {
+ case strings.HasPrefix(line, "//"):
+ continue
+ case strings.HasPrefix(line, "= "):
+ continue
+ case strings.HasPrefix(line, "[.text-left]"):
+ continue
+ case strings.HasPrefix(line, "[source, c]"):
+ out.WriteString("```c\n")
+ scanner.Scan() // eat the next line
+ continue
+ case line == "----":
+ out.WriteString("```\n")
+ continue
+ case line == "== NAME":
+ out.Reset()
+ scanner.Scan()
+ scanner.Scan()
+ parts := strings.SplitN(scanner.Text(), " - ", 2)
+ out.WriteString("## ")
+ out.WriteString(parts[0])
+ out.WriteString("\n")
+ line = parts[1]
+ out.WriteString("\n")
+ out.WriteString(strings.ToUpper(line[0:1]))
+ out.WriteString(line[1:])
+ out.WriteString(".\n")
+ case strings.HasPrefix(line, "== "):
+ out.WriteString("### ")
+ out.WriteString(strings.Title(strings.ToLower(line[3:])))
+ out.WriteString("\n")
+ continue
+ case strings.HasPrefix(line, "=== "):
+ out.WriteString("#### ")
+ out.WriteString(line[4:])
+ out.WriteString("\n")
+ continue
+ default:
+ line = strings.Replace(line, "()`", "`", -1)
+ line = strings.Replace(line, "()]", "]", -1)
+ line = strings.Replace(line, "(3)]", "]", -1)
+ line = strings.Replace(line, "(5)]", "]", -1)
+ line = strings.Replace(line, "(7)]", "]", -1)
+ line = strings.Replace(line, "(3compat)]", "]", -1)
+ line = strings.Replace(line, "(3http)]", "]", -1)
+ line = strings.Replace(line, "(3str)]", "]", -1)
+ line = strings.Replace(line, "(3supp)]", "]", -1)
+ line = strings.Replace(line, "(3tls)]", "]", -1)
+ line = strings.Replace(line, ".3.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".5.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".7.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".3compat.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".3http.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".3str.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".3supp.adoc", ".adoc", -1)
+ line = strings.Replace(line, ".3tls.adoc", ".adoc", -1)
+ out.WriteString(line)
+ out.WriteRune('\n')
+ continue
+ }
+ }
+ tmpFile := file + "tmp"
+ var w *os.File
+ w, err = os.Create(tmpFile)
+ if _, err = w.WriteString(out.String()); err != nil {
+ os.Remove(tmpFile)
+ } else {
+ os.Rename(tmpFile, file)
+ }
+}
+
+func main() {
+ for _, arg := range os.Args {
+ dofile(arg)
+ }
+}