Documentation ¶
Overview ¶
Package github_flavored_markdown provides a GitHub Flavored Markdown renderer with fenced code block highlighting, clickable heading anchor links.
The functionality should be equivalent to the GitHub Markdown API endpoint specified at https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode, except the rendering is performed locally.
See examples for how to generate a complete HTML page, including CSS styles.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Heading ¶
Heading returns a heading HTML node with title text. The heading comes with an anchor based on the title.
heading can be one of atom.H1, atom.H2, atom.H3, atom.H4, atom.H5, atom.H6.
Example ¶
package main import ( "os" "github.com/gobuffalo/github_flavored_markdown" "golang.org/x/net/html" "golang.org/x/net/html/atom" ) func main() { heading := github_flavored_markdown.Heading(atom.H2, "Hello > Goodbye") html.Render(os.Stdout, heading) }
Output: <h2><a name="hello-goodbye" class="anchor" href="#hello-goodbye" rel="nofollow" aria-hidden="true"><span class="octicon-link"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" style="fill: currentColor; vertical-align: top;"><path d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></span></a>Hello > Goodbye</h2>
func Markdown ¶
Markdown renders GitHub Flavored Markdown text.
Example ¶
package main import ( "os" "github.com/gobuffalo/github_flavored_markdown" ) func main() { text := []byte("Hello world github/linguist#1 **cool**, and #1!") os.Stdout.Write(github_flavored_markdown.Markdown(text)) }
Output: <p>Hello world github/linguist#1 <strong>cool</strong>, and #1!</p>
Example (CompleteHTMLPage) ¶
An example of how to generate a complete HTML page, including CSS styles.
package main import ( "io" "net/http" "os" "github.com/gobuffalo/github_flavored_markdown" "github.com/gobuffalo/github_flavored_markdown/gfmstyle" ) func main() { // Serve the "/assets/gfm.css" file. http.Handle("/assets/", http.StripPrefix("/assets", http.FileServer(gfmstyle.Assets))) var w io.Writer = os.Stdout // It can be an http.ResponseWriter. markdown := []byte("# GitHub Flavored Markdown\n\nHello.") io.WriteString(w, `<html><head><meta charset="utf-8"><link href="/assets/gfm.css" media="all" rel="stylesheet" type="text/css" /><link href="//cdnjs.cloudflare.com/ajax/libs/octicons/2.1.2/octicons.css" media="all" rel="stylesheet" type="text/css" /></head><body><article class="markdown-body entry-content" style="padding: 30px;">`) w.Write(github_flavored_markdown.Markdown(markdown)) io.WriteString(w, `</article></body></html>`) }
Output: <html><head><meta charset="utf-8"><link href="/assets/gfm.css" media="all" rel="stylesheet" type="text/css" /><link href="//cdnjs.cloudflare.com/ajax/libs/octicons/2.1.2/octicons.css" media="all" rel="stylesheet" type="text/css" /></head><body><article class="markdown-body entry-content" style="padding: 30px;"><h1><a name="github-flavored-markdown" class="anchor" href="#github-flavored-markdown" rel="nofollow" aria-hidden="true"><span class="octicon octicon-link"></span></a>GitHub Flavored Markdown</h1> <p>Hello.</p> </article></body></html>
Types ¶
This section is empty.
Directories ¶
Path | Synopsis |
---|---|
Package gfmstyle contains CSS styles for rendering GitHub Flavored Markdown.
|
Package gfmstyle contains CSS styles for rendering GitHub Flavored Markdown. |
internal
|
|
russross/blackfriday
Package blackfriday is a Markdown processor.
|
Package blackfriday is a Markdown processor. |
shurcooL/highlight_diff
Package highlight_diff provides syntaxhighlight.Printer and syntaxhighlight.Annotator implementations for diff format.
|
Package highlight_diff provides syntaxhighlight.Printer and syntaxhighlight.Annotator implementations for diff format. |
shurcooL/highlight_go
Package highlight_go provides a syntax highlighter for Go, using go/scanner.
|
Package highlight_go provides a syntax highlighter for Go, using go/scanner. |
shurcooL/octicon
Package octicon provides GitHub Octicons.
|
Package octicon provides GitHub Octicons. |
shurcooL/sanitized_anchor_name
Package sanitized_anchor_name provides a func to create sanitized anchor names.
|
Package sanitized_anchor_name provides a func to create sanitized anchor names. |