Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package markdown is middleware to render markdown files as HTML on-the-fly.
Index ¶
- Constants
 - func GenerateLinks(md Markdown, cfg *Config) error
 - type Config
 - type JSONMetadataParser
 - type Markdown
 - type MarkdownData
 - type Metadata
 - type MetadataParser
 - type PageLink
 - type PlaintextRenderer
 - func (r PlaintextRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int)
 - func (r PlaintextRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string)
 - func (r PlaintextRenderer) BlockHtml(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) BlockQuote(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) CodeSpan(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) DocumentFooter(out *bytes.Buffer)
 - func (r PlaintextRenderer) DocumentHeader(out *bytes.Buffer)
 - func (r PlaintextRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) Emphasis(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) Entity(out *bytes.Buffer, entity []byte)
 - func (r PlaintextRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int)
 - func (r PlaintextRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int)
 - func (r PlaintextRenderer) Footnotes(out *bytes.Buffer, text func() bool)
 - func (r PlaintextRenderer) GetFlags() int
 - func (r PlaintextRenderer) HRule(out *bytes.Buffer)
 - func (r PlaintextRenderer) Header(out *bytes.Buffer, text func() bool, level int, id string)
 - func (r PlaintextRenderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte)
 - func (r PlaintextRenderer) LineBreak(out *bytes.Buffer)
 - func (r PlaintextRenderer) Link(out *bytes.Buffer, link []byte, title []byte, content []byte)
 - func (r PlaintextRenderer) List(out *bytes.Buffer, text func() bool, flags int)
 - func (r PlaintextRenderer) ListItem(out *bytes.Buffer, text []byte, flags int)
 - func (r PlaintextRenderer) NormalText(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) Paragraph(out *bytes.Buffer, text func() bool)
 - func (r PlaintextRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte)
 - func (r PlaintextRenderer) StrikeThrough(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) Table(out *bytes.Buffer, header []byte, body []byte, columnData []int)
 - func (r PlaintextRenderer) TableCell(out *bytes.Buffer, text []byte, flags int)
 - func (r PlaintextRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, flags int)
 - func (r PlaintextRenderer) TableRow(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) TitleBlock(out *bytes.Buffer, text []byte)
 - func (r PlaintextRenderer) TripleEmphasis(out *bytes.Buffer, text []byte)
 
- type TOMLMetadataParser
 - type YAMLMetadataParser
 
Constants ¶
const ( DefaultTemplate = "defaultTemplate" DefaultStaticDir = "generated_site" )
Variables ¶
This section is empty.
Functions ¶
func GenerateLinks ¶ added in v0.7.4
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
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
IsIndexFile checks to see if a file is an index file
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 PlaintextRenderer ¶ added in v0.7.4
type PlaintextRenderer struct{}
    func (PlaintextRenderer) AutoLink ¶ added in v0.7.4
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) LineBreak ¶ added in v0.7.4
func (r PlaintextRenderer) LineBreak(out *bytes.Buffer)
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) 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
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