Documentation
¶
Overview ¶
Package markdown is middleware to render markdown files as HTML on-the-fly.
Index ¶
- Constants
- func GenerateStatic(md Markdown, cfg *Config) error
- func TickerFunc(interval time.Duration, f func()) chan struct{}
- func Watch(md Markdown, c *Config, interval time.Duration) (stopChan chan struct{})
- type Config
- type JSONMetadataParser
- type Markdown
- type MarkdownData
- type Metadata
- type MetadataParser
- type PageLink
- type SummaryRenderer
- func (r SummaryRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int)
- func (r SummaryRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string)
- func (r SummaryRenderer) BlockHtml(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) BlockQuote(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) CodeSpan(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) DocumentFooter(out *bytes.Buffer)
- func (r SummaryRenderer) DocumentHeader(out *bytes.Buffer)
- func (r SummaryRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) Emphasis(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) Entity(out *bytes.Buffer, entity []byte)
- func (r SummaryRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int)
- func (r SummaryRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int)
- func (r SummaryRenderer) Footnotes(out *bytes.Buffer, text func() bool)
- func (r SummaryRenderer) GetFlags() int
- func (r SummaryRenderer) HRule(out *bytes.Buffer)
- func (r SummaryRenderer) Header(out *bytes.Buffer, text func() bool, level int, id string)
- func (r SummaryRenderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte)
- func (r SummaryRenderer) LineBreak(out *bytes.Buffer)
- func (r SummaryRenderer) Link(out *bytes.Buffer, link []byte, title []byte, content []byte)
- func (r SummaryRenderer) List(out *bytes.Buffer, text func() bool, flags int)
- func (r SummaryRenderer) ListItem(out *bytes.Buffer, text []byte, flags int)
- func (r SummaryRenderer) NormalText(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) Paragraph(out *bytes.Buffer, text func() bool)
- func (r SummaryRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte)
- func (r SummaryRenderer) StrikeThrough(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) Table(out *bytes.Buffer, header []byte, body []byte, columnData []int)
- func (r SummaryRenderer) TableCell(out *bytes.Buffer, text []byte, flags int)
- func (r SummaryRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, flags int)
- func (r SummaryRenderer) TableRow(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) TitleBlock(out *bytes.Buffer, text []byte)
- func (r SummaryRenderer) TripleEmphasis(out *bytes.Buffer, text []byte)
- type TOMLMetadataParser
- type YAMLMetadataParser
Constants ¶
const ( DefaultTemplate = "defaultTemplate" DefaultStaticDir = "generated_site" )
const DefaultInterval = time.Second * 60
Variables ¶
This section is empty.
Functions ¶
func GenerateStatic ¶ added in v0.7.5
GenerateStatic generate static files and link index from markdowns. It only generates static files if it is enabled (cfg.StaticDir must be set).
func TickerFunc ¶ added in v0.7.5
TickerFunc runs f at interval. A message to the returned channel will stop the executing goroutine.
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
// If in development mode. i.e. Actively editing markdown files.
Development bool
sync.RWMutex
// contains filtered or unexported fields
}
Config stores markdown middleware configurations.
func (*Config) IsValidExt ¶ added in v0.7.5
IsValidExt checks to see if an extension is a valid markdown extension for config.
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 SummaryRenderer ¶ added in v0.7.5
type SummaryRenderer struct{}
func (SummaryRenderer) AutoLink ¶ added in v0.7.5
func (r SummaryRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int)
func (SummaryRenderer) BlockCode ¶ added in v0.7.5
func (r SummaryRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string)
func (SummaryRenderer) BlockHtml ¶ added in v0.7.5
func (r SummaryRenderer) BlockHtml(out *bytes.Buffer, text []byte)
func (SummaryRenderer) BlockQuote ¶ added in v0.7.5
func (r SummaryRenderer) BlockQuote(out *bytes.Buffer, text []byte)
func (SummaryRenderer) CodeSpan ¶ added in v0.7.5
func (r SummaryRenderer) CodeSpan(out *bytes.Buffer, text []byte)
func (SummaryRenderer) DocumentFooter ¶ added in v0.7.5
func (r SummaryRenderer) DocumentFooter(out *bytes.Buffer)
func (SummaryRenderer) DocumentHeader ¶ added in v0.7.5
func (r SummaryRenderer) DocumentHeader(out *bytes.Buffer)
func (SummaryRenderer) DoubleEmphasis ¶ added in v0.7.5
func (r SummaryRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte)
func (SummaryRenderer) Emphasis ¶ added in v0.7.5
func (r SummaryRenderer) Emphasis(out *bytes.Buffer, text []byte)
func (SummaryRenderer) Entity ¶ added in v0.7.5
func (r SummaryRenderer) Entity(out *bytes.Buffer, entity []byte)
func (SummaryRenderer) FootnoteItem ¶ added in v0.7.5
func (r SummaryRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int)
func (SummaryRenderer) FootnoteRef ¶ added in v0.7.5
func (r SummaryRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int)
func (SummaryRenderer) Footnotes ¶ added in v0.7.5
func (r SummaryRenderer) Footnotes(out *bytes.Buffer, text func() bool)
func (SummaryRenderer) GetFlags ¶ added in v0.7.5
func (r SummaryRenderer) GetFlags() int
func (SummaryRenderer) HRule ¶ added in v0.7.5
func (r SummaryRenderer) HRule(out *bytes.Buffer)
func (SummaryRenderer) LineBreak ¶ added in v0.7.5
func (r SummaryRenderer) LineBreak(out *bytes.Buffer)
func (SummaryRenderer) List ¶ added in v0.7.5
func (r SummaryRenderer) List(out *bytes.Buffer, text func() bool, flags int)
func (SummaryRenderer) ListItem ¶ added in v0.7.5
func (r SummaryRenderer) ListItem(out *bytes.Buffer, text []byte, flags int)
func (SummaryRenderer) NormalText ¶ added in v0.7.5
func (r SummaryRenderer) NormalText(out *bytes.Buffer, text []byte)
func (SummaryRenderer) Paragraph ¶ added in v0.7.5
func (r SummaryRenderer) Paragraph(out *bytes.Buffer, text func() bool)
func (SummaryRenderer) RawHtmlTag ¶ added in v0.7.5
func (r SummaryRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte)
func (SummaryRenderer) StrikeThrough ¶ added in v0.7.5
func (r SummaryRenderer) StrikeThrough(out *bytes.Buffer, text []byte)
func (SummaryRenderer) TableCell ¶ added in v0.7.5
func (r SummaryRenderer) TableCell(out *bytes.Buffer, text []byte, flags int)
func (SummaryRenderer) TableHeaderCell ¶ added in v0.7.5
func (r SummaryRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, flags int)
func (SummaryRenderer) TableRow ¶ added in v0.7.5
func (r SummaryRenderer) TableRow(out *bytes.Buffer, text []byte)
func (SummaryRenderer) TitleBlock ¶ added in v0.7.5
func (r SummaryRenderer) TitleBlock(out *bytes.Buffer, text []byte)
func (SummaryRenderer) TripleEmphasis ¶ added in v0.7.5
func (r SummaryRenderer) 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