markdown

package
v0.7.4 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2015 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package markdown is middleware to render markdown files as HTML on-the-fly.

Index

Constants

View Source
const (
	DefaultTemplate  = "defaultTemplate"
	DefaultStaticDir = "generated_site"
)

Variables

This section is empty.

Functions

func GenerateLinks(md Markdown, cfg *Config) error

GenerateLinks generates links to all markdown files ordered by newest date. This blocks until link generation is done. When called by multiple goroutines, the first caller starts the generation and others only wait.

Types

type Config added in v0.6.0

type Config struct {
	// Markdown renderer
	Renderer blackfriday.Renderer

	// Base path to match
	PathScope string

	// List of extensions to consider as markdown files
	Extensions []string

	// List of style sheets to load for each markdown file
	Styles []string

	// List of JavaScript files to load for each markdown file
	Scripts []string

	// Map of registered templates
	Templates map[string]string

	// Map of request URL to static files generated
	StaticFiles map[string]string

	// Links to all markdown pages ordered by date.
	Links []PageLink

	// Directory to store static files
	StaticDir string

	sync.RWMutex
}

Config stores markdown middleware configurations.

type JSONMetadataParser added in v0.7.0

type JSONMetadataParser struct {
	// contains filtered or unexported fields
}

JSONMetadataParser is the MetadataParser for JSON

func (*JSONMetadataParser) Closing added in v0.7.0

func (j *JSONMetadataParser) Closing() []byte

Closing returns the closing identifier JSON metadata

func (*JSONMetadataParser) Metadata added in v0.7.0

func (j *JSONMetadataParser) Metadata() Metadata

Metadata returns parsed metadata. It should be called only after a call to Parse returns without error.

func (*JSONMetadataParser) Opening added in v0.7.0

func (j *JSONMetadataParser) Opening() []byte

Opening returns the opening identifier JSON metadata

func (*JSONMetadataParser) Parse added in v0.7.0

func (j *JSONMetadataParser) Parse(b []byte) ([]byte, error)

Parse the metadata

type Markdown

type Markdown struct {
	// Server root
	Root string

	// Jail the requests to site root with a mock file system
	FileSys http.FileSystem

	// Next HTTP handler in the chain
	Next middleware.Handler

	// The list of markdown configurations
	Configs []Config

	// The list of index files to try
	IndexFiles []string
}

Markdown implements a layer of middleware that serves markdown as HTML.

func (Markdown) IsIndexFile added in v0.7.0

func (md Markdown) IsIndexFile(file string) bool

IsIndexFile checks to see if a file is an index file

func (Markdown) Process added in v0.7.0

func (md Markdown) Process(c Config, requestPath string, b []byte, ctx middleware.Context) ([]byte, error)

Process processes the contents of a page in b. It parses the metadata (if any) and uses the template (if found).

func (Markdown) ServeHTTP

func (md Markdown) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error)

ServeHTTP implements the http.Handler interface.

type MarkdownData added in v0.7.4

type MarkdownData struct {
	middleware.Context
	Doc   map[string]string
	Links []PageLink
}

type Metadata added in v0.7.0

type Metadata struct {
	// Page title
	Title string

	// Page template
	Template string

	// Publish date
	Date time.Time

	// Variables to be used with Template
	Variables map[string]string
}

Metadata stores a page's metadata

type MetadataParser added in v0.7.0

type MetadataParser interface {
	// Opening identifier
	Opening() []byte

	// Closing identifier
	Closing() []byte

	// Parse the metadata.
	// Returns the remaining page contents (Markdown)
	// after extracting metadata
	Parse([]byte) ([]byte, error)

	// Parsed metadata.
	// Should be called after a call to Parse returns no error
	Metadata() Metadata
}

MetadataParser is a an interface that must be satisfied by each parser

type PageLink struct {
	Title   string
	Summary string
	Date    time.Time
	URL     string
}

PageLink represents a statically generated markdown page.

type PlaintextRenderer added in v0.7.4

type PlaintextRenderer struct{}
func (r PlaintextRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int)

func (PlaintextRenderer) BlockCode added in v0.7.4

func (r PlaintextRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string)

func (PlaintextRenderer) BlockHtml added in v0.7.4

func (r PlaintextRenderer) BlockHtml(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) BlockQuote added in v0.7.4

func (r PlaintextRenderer) BlockQuote(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) CodeSpan added in v0.7.4

func (r PlaintextRenderer) CodeSpan(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) DocumentFooter added in v0.7.4

func (r PlaintextRenderer) DocumentFooter(out *bytes.Buffer)

func (PlaintextRenderer) DocumentHeader added in v0.7.4

func (r PlaintextRenderer) DocumentHeader(out *bytes.Buffer)

func (PlaintextRenderer) DoubleEmphasis added in v0.7.4

func (r PlaintextRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) Emphasis added in v0.7.4

func (r PlaintextRenderer) Emphasis(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) Entity added in v0.7.4

func (r PlaintextRenderer) Entity(out *bytes.Buffer, entity []byte)

func (PlaintextRenderer) FootnoteItem added in v0.7.4

func (r PlaintextRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int)

func (PlaintextRenderer) FootnoteRef added in v0.7.4

func (r PlaintextRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int)

func (PlaintextRenderer) Footnotes added in v0.7.4

func (r PlaintextRenderer) Footnotes(out *bytes.Buffer, text func() bool)

func (PlaintextRenderer) GetFlags added in v0.7.4

func (r PlaintextRenderer) GetFlags() int

func (PlaintextRenderer) HRule added in v0.7.4

func (r PlaintextRenderer) HRule(out *bytes.Buffer)

func (PlaintextRenderer) Header added in v0.7.4

func (r PlaintextRenderer) Header(out *bytes.Buffer, text func() bool, level int, id string)

func (PlaintextRenderer) Image added in v0.7.4

func (r PlaintextRenderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte)

func (PlaintextRenderer) LineBreak added in v0.7.4

func (r PlaintextRenderer) LineBreak(out *bytes.Buffer)
func (r PlaintextRenderer) Link(out *bytes.Buffer, link []byte, title []byte, content []byte)

func (PlaintextRenderer) List added in v0.7.4

func (r PlaintextRenderer) List(out *bytes.Buffer, text func() bool, flags int)

func (PlaintextRenderer) ListItem added in v0.7.4

func (r PlaintextRenderer) ListItem(out *bytes.Buffer, text []byte, flags int)

func (PlaintextRenderer) NormalText added in v0.7.4

func (r PlaintextRenderer) NormalText(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) Paragraph added in v0.7.4

func (r PlaintextRenderer) Paragraph(out *bytes.Buffer, text func() bool)

func (PlaintextRenderer) RawHtmlTag added in v0.7.4

func (r PlaintextRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte)

func (PlaintextRenderer) StrikeThrough added in v0.7.4

func (r PlaintextRenderer) StrikeThrough(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) Table added in v0.7.4

func (r PlaintextRenderer) Table(out *bytes.Buffer, header []byte, body []byte, columnData []int)

func (PlaintextRenderer) TableCell added in v0.7.4

func (r PlaintextRenderer) TableCell(out *bytes.Buffer, text []byte, flags int)

func (PlaintextRenderer) TableHeaderCell added in v0.7.4

func (r PlaintextRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, flags int)

func (PlaintextRenderer) TableRow added in v0.7.4

func (r PlaintextRenderer) TableRow(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) TitleBlock added in v0.7.4

func (r PlaintextRenderer) TitleBlock(out *bytes.Buffer, text []byte)

func (PlaintextRenderer) TripleEmphasis added in v0.7.4

func (r PlaintextRenderer) TripleEmphasis(out *bytes.Buffer, text []byte)

type TOMLMetadataParser added in v0.7.0

type TOMLMetadataParser struct {
	// contains filtered or unexported fields
}

TOMLMetadataParser is the MetadataParser for TOML

func (*TOMLMetadataParser) Closing added in v0.7.0

func (t *TOMLMetadataParser) Closing() []byte

Closing returns the closing identifier TOML metadata

func (*TOMLMetadataParser) Metadata added in v0.7.0

func (t *TOMLMetadataParser) Metadata() Metadata

Metadata returns parsed metadata. It should be called only after a call to Parse returns without error.

func (*TOMLMetadataParser) Opening added in v0.7.0

func (t *TOMLMetadataParser) Opening() []byte

Opening returns the opening identifier TOML metadata

func (*TOMLMetadataParser) Parse added in v0.7.0

func (t *TOMLMetadataParser) Parse(b []byte) ([]byte, error)

Parse the metadata

type YAMLMetadataParser added in v0.7.0

type YAMLMetadataParser struct {
	// contains filtered or unexported fields
}

YAMLMetadataParser is the MetadataParser for YAML

func (*YAMLMetadataParser) Closing added in v0.7.0

func (y *YAMLMetadataParser) Closing() []byte

Closing returns the closing identifier YAML metadata

func (*YAMLMetadataParser) Metadata added in v0.7.0

func (y *YAMLMetadataParser) Metadata() Metadata

Metadata returns parsed metadata. It should be called only after a call to Parse returns without error.

func (*YAMLMetadataParser) Opening added in v0.7.0

func (y *YAMLMetadataParser) Opening() []byte

Opening returns the opening identifier YAML metadata

func (*YAMLMetadataParser) Parse added in v0.7.0

func (y *YAMLMetadataParser) Parse(b []byte) ([]byte, error)

Parse the metadata

Jump to

Keyboard shortcuts

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