Documentation
¶
Overview ¶
Package markdown implements a markdown parser and HTML renderer.
It parses markdown into AST format which can be serialized to HTML (using html.Renderer) or possibly other formats (using alternate renderers).
Convert markdown to HTML ¶
The simplest way to convert a markdown document to HTML:
md := []byte("## markdown document")
html := markdown.ToHTML(md, nil, nil)
Customizing parsing and HTML rendering ¶
You can customize the parser and HTML renderer:
import (
"github.com/gomarkdown/markdown/html"
"github.com/gomarkdown/markdown/parser"
"github.com/gomarkdown/markdown"
)
extensions := parser.CommonExtensions | parser.AutoHeadingIDs
p := parser.NewWithExtensions(extensions)
htmlFlags := html.CommonFlags | html.HrefTargetBlank
opts := html.RendererOptions{Flags: htmlFlags}
renderer := html.NewRenderer(opts)
md := []byte("markdown text")
html := markdown.ToHTML(md, p, renderer)
For a command-line tool see https://github.com/gomarkdown/mdtohtml
Index ¶
Constants ¶
This section is empty.
Variables ¶
var NormalizeNewlines = parser.NormalizeNewlines
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 newlines.
Functions ¶
func Parse ¶
Parse parses a markdown document using provided parser. If parser is nil, we use a parser configured with parser.CommonExtensions.
It returns an AST (abstract syntax tree) that can be converted to another format using Render.
func Render ¶
Render uses renderer to convert parsed markdown document into a different format.
To convert to HTML, pass html.Renderer
func ToHTML ¶
ToHTML converts markdownDoc to HTML.
You can optionally pass a parser and renderer. This allows customizing a parser, using a customized HTML renderer, or using a completely custom renderer.
If you pass nil for both, we use a parser configured with parser.CommonExtensions and an html.Renderer configured with html.CommonFlags.
Types ¶
type Renderer ¶
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(w io.Writer, ast ast.Node)
}
Renderer is an interface for implementing custom renderers.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package ast defines the tree representation of a parsed markdown document.
|
Package ast defines the tree representation of a parsed markdown document. |
|
cmd
|
|
|
printast
command
|
|
|
Package html implements an HTML renderer of a parsed markdown document.
|
Package html implements an HTML renderer of a parsed markdown document. |
|
internal
|
|
|
textutil
Package textutil contains text transformations shared across Markdown packages.
|
Package textutil contains text transformations shared across Markdown packages. |
|
Package parser implements a parser for markdown text that generates an AST (abstract syntax tree).
|
Package parser implements a parser for markdown text that generates an AST (abstract syntax tree). |