Documentation
¶
Overview ¶
Package mdcoach converts Markdown files to HTML presentations with notes.
Index ¶
- Constants
- Variables
- func NewBlockquoteTransformer() parser.ASTTransformer
- func NewDocumentIDInjector() parser.ASTTransformer
- func NewEmoteColonCodeParser() parser.InlineParser
- func NewEmoteFilesystem(filesystems ...fs.FS) fs.FS
- func NewEmoteParser(emoticons map[string]string) parser.InlineParser
- func NewEmoteRenderer(cache *ImageCache, storage fs.FS, imageExtension string) html.NodeRenderer
- func NewFigureRenderer() html.NodeRenderer
- func NewFigureTransformer() parser.ASTTransformer
- func NewFootnoteRenderer() htmlrenderer.NodeRenderer
- func NewImageRenderer() html.NodeRenderer
- func NewParser() parser.Parser
- func NewRenderer(cache *ImageCache) html.Renderer
- func NewSlideNotes() ast.Node
- func NewSlideNotesParser() parser.BlockParser
- func NewSlideNotesRenderer() html.NodeRenderer
- func NewSlideRenderer(fr html.NodeRenderer) html.NodeRenderer
- func NewSlideTransformer(headingLevelLimit int) parser.ASTTransformer
- type Emote
- type Figure
- type ImageCache
- type ImageLoader
- type MediaOptions
- type Slide
- type SlideLayout
Constants ¶
const ( ImageCSSClass = "mdcoachImage" ImageContentClassPrefix = ImageCSSClass + "Content" )
const FootnoteIndexAttribute = "data-slide-footnote-index"
const ImageStyle = `.` + ImageCSSClass + ` {
min-height: 1.5em;
min-width: 1.5em;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
aspect-ratio: attr(data-aspect-ratio type(<number>));
}
`
Variables ¶
var ErrEmoteNotFound = fmt.Errorf("emote not found: %w", fs.ErrNotExist)
ErrEmoteNotFound indicates that no configured filesystem contains an emote asset.
var KindEmote = ast.NewNodeKind("Emote")
var KindFigure = ast.NewNodeKind("Figure")
KindFigure is the node kind for image-only figures.
var KindSlideNotes = ast.NewNodeKind("SlideNotes")
var ( // SlideKind is the node kind for presentation slides. SlideKind = ast.NewNodeKind("Slide") )
Functions ¶
func NewBlockquoteTransformer ¶ added in v0.0.7
func NewBlockquoteTransformer() parser.ASTTransformer
NewBlockquoteTransformer returns an AST transformer that moves trailing parenthetical citations in blockquotes into footer elements.
func NewDocumentIDInjector ¶ added in v0.0.6
func NewDocumentIDInjector() parser.ASTTransformer
NewDocumentIDInjector returns a transformer that sets the document's id attribute to the xxhash of its deterministic AST dump.
func NewEmoteColonCodeParser ¶ added in v0.0.8
func NewEmoteColonCodeParser() parser.InlineParser
NewEmoteColonCodeParser returns a Goldmark v2 inline parser for :text: emotes.
func NewEmoteFilesystem ¶ added in v0.0.8
NewEmoteFilesystem returns an fs.FS that searches each provided filesystem in order.
func NewEmoteParser ¶ added in v0.0.6
func NewEmoteParser(emoticons map[string]string) parser.InlineParser
NewEmoteParser returns a Goldmark v2 inline parser for configured emoticons.
func NewEmoteRenderer ¶ added in v0.0.6
func NewEmoteRenderer(cache *ImageCache, storage fs.FS, imageExtension string) html.NodeRenderer
NewEmoteRenderer returns a Goldmark renderer that uses cached images for emote names found in the storage.
func NewFigureRenderer ¶ added in v0.0.6
func NewFigureRenderer() html.NodeRenderer
NewFigureRenderer returns a Goldmark v2 HTML renderer for Figure nodes.
func NewFigureTransformer ¶ added in v0.0.6
func NewFigureTransformer() parser.ASTTransformer
NewFigureTransformer returns an AST transformer that turns image-only document children into Figure nodes.
func NewFootnoteRenderer ¶ added in v0.0.7
func NewFootnoteRenderer() htmlrenderer.NodeRenderer
NewFootnoteRenderer returns an HTML renderer that renders footnotes at their position in the AST instead of collecting them at the end of the document.
func NewImageRenderer ¶ added in v0.0.6
func NewImageRenderer() html.NodeRenderer
func NewParser ¶ added in v0.0.6
NewParser returns a Goldmark v2 parser configured for presentations.
func NewRenderer ¶ added in v0.0.6
func NewRenderer(cache *ImageCache) html.Renderer
NewRenderer returns a renderer that shares cache with image loading.
func NewSlideNotes ¶ added in v0.0.7
NewSlideNotes returns a new [slideNotes] node.
func NewSlideNotesParser ¶ added in v0.0.7
func NewSlideNotesParser() parser.BlockParser
NewSlideNotesParser returns a BlockParser for slide notes.
func NewSlideNotesRenderer ¶ added in v0.0.7
func NewSlideNotesRenderer() html.NodeRenderer
NewSlideNotesRenderer returns a Goldmark v2 HTML renderer for SlideNotes nodes.
func NewSlideRenderer ¶ added in v0.0.6
func NewSlideRenderer(fr html.NodeRenderer) html.NodeRenderer
NewSlideRenderer returns a Goldmark v2 HTML renderer for Slide nodes.
func NewSlideTransformer ¶ added in v0.0.6
func NewSlideTransformer(headingLevelLimit int) parser.ASTTransformer
NewSlideTransformer returns an AST transformer that groups sections into slides.
Types ¶
type Emote ¶ added in v0.0.6
type Emote struct {
ast.BaseInline
Name text.SingleLineValue
}
Emote is an inline text emoji such as :smile:.
type Figure ¶ added in v0.0.6
Figure is a figure containing a single image.
type ImageCache ¶ added in v0.0.6
type ImageCache struct {
// contains filtered or unexported fields
}
func NewImageCache ¶ added in v0.0.6
func NewImageCache() *ImageCache
func (*ImageCache) Get ¶ added in v0.0.6
func (c *ImageCache) Get(location string) (*imageWebp, bool)
func (*ImageCache) Set ¶ added in v0.0.6
func (c *ImageCache) Set(img *imageWebp)
func (*ImageCache) WriteImageDataCSS ¶ added in v0.0.6
func (c *ImageCache) WriteImageDataCSS(w io.Writer) error
type ImageLoader ¶ added in v0.0.6
type ImageLoader struct {
// contains filtered or unexported fields
}
func NewImageLoader ¶ added in v0.0.6
func NewImageLoader(cache *ImageCache, ic MediaOptions) *ImageLoader
func (*ImageLoader) LoadImages ¶ added in v0.0.6
LoadImages downloads image destinations that are owned by the AST nodes. Use LoadImagesFromSource when the AST was parsed from Markdown source.
type MediaOptions ¶ added in v0.0.6
type Slide ¶ added in v0.0.6
type Slide struct {
ast.BaseBlock
Index int
HeadingLevel int
SlideLayout SlideLayout
}
Slide is a presentation slide containing a section of the document.
The heading that starts a section is part of that section and is therefore the first child of the corresponding Slide node.
type SlideLayout ¶ added in v0.0.6
type SlideLayout string
const ( SlideNormalLayout SlideLayout = "normal" SlideSplashLayout SlideLayout = "splash" SlideLeftAsideLayout SlideLayout = "left-aside" SlideRightAsideLayout SlideLayout = "right-aside" )
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
mdcoach
command
Package main provides command line interface to [mdcoach.Iterator].
|
Package main provides command line interface to [mdcoach.Iterator]. |
|
Package epub writes HTML presentation documents as EPUB 3 publications.
|
Package epub writes HTML presentation documents as EPUB 3 publications. |
|
Package internal provides common utilities for the mdcoach and related packages.
|
Package internal provides common utilities for the mdcoach and related packages. |
|
Package presentation makes HTML presentations from Markdown files.
|
Package presentation makes HTML presentations from Markdown files. |
|
index
Package index maintains an HTML page that links to compiled presentations.
|
Package index maintains an HTML page that links to compiled presentations. |
|
Package review generates PDF review sheets from Markdown frontmatter questions.
|
Package review generates PDF review sheets from Markdown frontmatter questions. |