Source File
markdown.go
Belonging Package
github.com/gomarkdown/markdown
package markdownimport ()// Renderer is an interface for implementing custom renderers.type Renderer interface {// RenderNode renders markdown node to w.// It's called once for a leaf node.// It's called twice for non-leaf nodes:// * first with entering=true// * then with entering=false//// Return value is a way to tell the calling walker to adjust its walk// pattern: e.g. it can terminate the traversal by returning Terminate. Or it// can ask the walker to skip a subtree of this node by returning SkipChildren.// The typical behavior is to return GoToNext, which asks for the usual// traversal to the next node.RenderNode(w io.Writer, node ast.Node, entering bool) ast.WalkStatus// RenderHeader is a method that allows the renderer to produce some// content preceding the main body of the output document. The header is// understood in the broad sense here. For example, the default HTML// renderer will write not only the HTML document preamble, but also the// table of contents if it was requested.//// The method will be passed an entire document tree, in case a particular// implementation needs to inspect it to produce output.//// The output should be written to the supplied writer w. If your// implementation has no header to write, supply an empty implementation.RenderHeader(w io.Writer, ast ast.Node)// RenderFooter is a symmetric counterpart of RenderHeader.RenderFooter(w io.Writer, ast ast.Node)}// Parse parsers a markdown document using provided parser. If parser is nil,// we use parser configured with parser.CommonExtensions.//// It returns AST (abstract syntax tree) that can be converted to another// format using Render function.func ( []byte, *parser.Parser) ast.Node {if == nil {= parser.New()}return .Parse()}// Render uses renderer to convert parsed markdown document into a different format.//// To convert to HTML, pass html.Rendererfunc ( ast.Node, Renderer) []byte {var bytes.Buffer.RenderHeader(&, )ast.WalkFunc(, func( ast.Node, bool) ast.WalkStatus {return .RenderNode(&, , )}).RenderFooter(&, )return .Bytes()}// ToHTML converts markdownDoc to HTML.//// You can optionally pass a parser and renderer. This allows to customize// a parser, use a customized html render or use completely custom renderer.//// If you pass nil for both, we use parser configured with parser.CommonExtensions// and html.Renderer configured with html.CommonFlags.func ( []byte, *parser.Parser, Renderer) []byte {:= Parse(, )if == nil {:= html.RendererOptions{Flags: html.CommonFlags,}= html.NewRenderer()}return Render(, )}// NormalizeNewlines converts Windows and Mac newlines to Unix newlines.// The parser only supports Unix newlines. If your markdown content// might contain Windows or Mac newlines, use this function to convert to Unix newlinesvar NormalizeNewlines = parser.NormalizeNewlines
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |