github_flavored_markdown

package module
v1.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2023 License: MIT Imports: 16 Imported by: 17

README

github_flavored_markdown

Standard Test GoDoc

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.

Installation

go get github.com/gobuffalo/github_flavored_markdown

Directories

Path Synopsis
gfmstyle Package gfmstyle contains CSS styles for rendering GitHub Flavored Markdown.

License

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

func Heading(heading atom.Atom, title string) *html.Node

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 &gt; Goodbye</h2>

func Markdown

func Markdown(text []byte) []byte

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL