ref: 00d70e55692a75147bfa0ba73f21f6228a8a1934
parent: 068a77151e27adb4106e86c407831ad6aa34ad8d
author: Bjørn Erik Pedersen <[email protected]>
date: Sun Jul 10 08:52:20 EDT 2016
Remove []byte to string to []byte conversion in Rst
--- a/helpers/content.go
+++ b/helpers/content.go
@@ -373,7 +373,7 @@
case "mmark":
return mmarkRender(ctx)
case "rst":
- return []byte(getRstContent(ctx.Content))
+ return getRstContent(ctx.Content)
}
}
@@ -503,7 +503,7 @@
// getRstContent calls the Python script rst2html as an external helper
// to convert reStructuredText content to HTML.
-func getRstContent(content []byte) string {
+func getRstContent(content []byte) []byte {
cleanContent := bytes.Replace(content, SummaryDivider, []byte(""), 1)
path := getRstExecPath()
@@ -511,7 +511,7 @@
if path == "" {
jww.ERROR.Println("rst2html / rst2html.py not found in $PATH: Please install.\n",
" Leaving reStructuredText content unrendered.")
- return (string(content))
+ return content
}
@@ -523,11 +523,11 @@
jww.ERROR.Println(err)
}
- rstLines := strings.Split(out.String(), "\n")
- for i, line := range rstLines {
- if strings.HasPrefix(line, "<body>") {
- rstLines = (rstLines[i+1 : len(rstLines)-3])
- }
- }
- return strings.Join(rstLines, "\n")
+ result := out.Bytes()
+
+ // TODO(bep) check if rst2html has a body only option.
+ bodyStart := bytes.Index(result, []byte("<body>\n"))
+ bodyEnd := bytes.Index(result, []byte("\n</body>"))
+
+ return result[bodyStart+7 : bodyEnd]
}