mirror of
https://github.com/russross/blackfriday.git
synced 2024-03-22 13:40:34 +08:00
return result instead of taking buffer as input
This commit is contained in:
parent
6c6efa13b5
commit
3ee2b137f8
|
@ -13,7 +13,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"github.com/russross/blackfriday"
|
"github.com/russross/blackfriday"
|
||||||
|
@ -41,7 +40,6 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// set up options
|
// set up options
|
||||||
output := bytes.NewBuffer(nil)
|
|
||||||
var extensions uint32
|
var extensions uint32
|
||||||
extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS
|
extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS
|
||||||
extensions |= blackfriday.EXTENSION_TABLES
|
extensions |= blackfriday.EXTENSION_TABLES
|
||||||
|
@ -57,16 +55,16 @@ func main() {
|
||||||
html_flags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
|
html_flags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
|
||||||
|
|
||||||
// render the data
|
// render the data
|
||||||
blackfriday.Markdown(output, input, blackfriday.HtmlRenderer(html_flags), extensions)
|
output := blackfriday.Markdown(input, blackfriday.HtmlRenderer(html_flags), extensions)
|
||||||
|
|
||||||
// output the result
|
// output the result
|
||||||
if len(os.Args) == 3 {
|
if len(os.Args) == 3 {
|
||||||
if err = ioutil.WriteFile(os.Args[2], output.Bytes(), 0644); err != nil {
|
if err = ioutil.WriteFile(os.Args[2], output, 0644); err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "Error writing to", os.Args[2], ":", err)
|
fmt.Fprintln(os.Stderr, "Error writing to", os.Args[2], ":", err)
|
||||||
os.Exit(-1)
|
os.Exit(-1)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if _, err = os.Stdout.Write(output.Bytes()); err != nil {
|
if _, err = os.Stdout.Write(output); err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "Error writing to Stdout:", err)
|
fmt.Fprintln(os.Stderr, "Error writing to Stdout:", err)
|
||||||
os.Exit(-1)
|
os.Exit(-1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,10 +166,10 @@ const (
|
||||||
// Parse and render a block of markdown-encoded text.
|
// Parse and render a block of markdown-encoded text.
|
||||||
// The renderer is used to format the output, and extensions dictates which
|
// The renderer is used to format the output, and extensions dictates which
|
||||||
// non-standard extensions are enabled.
|
// non-standard extensions are enabled.
|
||||||
func Markdown(output *bytes.Buffer, input []byte, renderer *Renderer, extensions uint32) {
|
func Markdown(input []byte, renderer *Renderer, extensions uint32) []byte {
|
||||||
// no point in parsing if we can't render
|
// no point in parsing if we can't render
|
||||||
if renderer == nil {
|
if renderer == nil {
|
||||||
return
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// fill in the character-level parsers
|
// fill in the character-level parsers
|
||||||
|
@ -255,6 +255,7 @@ func Markdown(output *bytes.Buffer, input []byte, renderer *Renderer, extensions
|
||||||
}
|
}
|
||||||
|
|
||||||
// second pass: actual rendering
|
// second pass: actual rendering
|
||||||
|
output := bytes.NewBuffer(nil)
|
||||||
if rndr.mk.doc_header != nil {
|
if rndr.mk.doc_header != nil {
|
||||||
rndr.mk.doc_header(output, rndr.mk.opaque)
|
rndr.mk.doc_header(output, rndr.mk.opaque)
|
||||||
}
|
}
|
||||||
|
@ -275,6 +276,8 @@ func Markdown(output *bytes.Buffer, input []byte, renderer *Renderer, extensions
|
||||||
if rndr.nesting != 0 {
|
if rndr.nesting != 0 {
|
||||||
panic("Nesting level did not end at zero")
|
panic("Nesting level did not end at zero")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return output.Bytes()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user