diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-04-05 00:30:05 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-04-05 00:30:05 -0700 |
| commit | ab7b5393f3c34b49e112f407ea61abc5cfb5933f (patch) | |
| tree | 870c0c1eb13af202f5638576905f50e46d33f2fd /docs/ref | |
| parent | cec3d5e49ad3fb227265b90e915299beab36b45a (diff) | |
| download | nng-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.go | 94 |
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) + } +} |
