Documentation ¶
Overview ¶
Package latex is a LaTeX renderer for the Blackfriday Markdown processor.
Example ¶
package main import ( "os" bflatex "github.com/moisespsena-go/md2latex/pkg" bf "github.com/russross/blackfriday/v2" ) func main() { const input = `<!-- data created: 2022-03-25T14:44:40-03:00 modified: 2022-03-25T14:44:50-03:00 type: Checklist --> # Section Some _Markdown_ text. ## Subsection Foobar. ` + "```" + `[mdt:skip]plantuml:md-sample-class @startuml class Test @enduml ` + "```" extensions := bf.CommonExtensions | bf.Titleblock renderer := &bflatex.Renderer{Opts: bflatex.Opts{ Author: "John Doe", Languages: "english,french", Flags: bflatex.TOC, }} md := bf.New(bf.WithExtensions(extensions)) ast := md.Parse([]byte(input)) renderer.Render(os.Stdout, ast) }
Output: \section{Section} Some \emph{Markdown} text. \subsection{Subsection} Foobar.
Index ¶
- Constants
- Variables
- func Exec(cfg RunConfig) (err error)
- func FormatFileName(fmt, name string) string
- func Run(w io.Writer, input []byte, opts ...bf.Option)
- func WriteByte(w io.Writer, b byte) (n int, err error)
- func WriteRune(w io.Writer, r rune) (n int, err error)
- type Code
- type CodeHandler
- type DevNull
- type DirFS
- type DoneCodeHandler
- type FS
- type Flag
- type ImagePathReplacer
- type LatexRaw
- type Opts
- type PathFS
- type Renderer
- func (r *Renderer) Cmd(w io.Writer, command string, entering bool)
- func (r *Renderer) Env(w io.Writer, environment string, entering bool, args ...string)
- func (r *Renderer) Escape(w io.Writer, t []byte)
- func (r *Renderer) Render(w io.Writer, ast *bf.Node)
- func (r *Renderer) RenderFooter(w io.Writer, ast *bf.Node)
- func (r *Renderer) RenderHeader(w io.Writer, ast *bf.Node)
- func (r *Renderer) RenderNode(w io.Writer, node *bf.Node, entering bool) bf.WalkStatus
- type RequestOptions
- type RunConfig
- type Wrap
Examples ¶
Constants ¶
View Source
const Quotation = "quotation"
Variables ¶
View Source
var DefaultHeaders = []string{
`chapter`,
`section`,
`subsection`,
`subsubsection`,
`paragraph`,
`subparagraph`,
`textbf`,
}
View Source
var TStackedDict = &gad.Type{Parent: gad.TBase, TypeName: "StackedDict"}
View Source
var WriteString = io.WriteString
Functions ¶
func FormatFileName ¶
Types ¶
type Code ¶
type Code struct { Quotation string `mapstructure:"quotation"` QuotationAuthored string `mapstructure:"quotation_authored"` List string `mapstructure:"list"` Enum string `mapstructure:"enum"` Definition string `mapstructure:"definition"` Headers []string `mapstructure:"default_headers"` DefaultInlineCodeLang string `mapstructure:"default_inline_code_lang"` Wrap struct { Table map[string]*Wrap `mapstructure:"table"` } `mapstructure:"wrap"` }
type CodeHandler ¶
type DoneCodeHandler ¶
func LoadScripts ¶
func LoadScripts(codeHandlers map[string]CodeHandler, cfg *RunConfig) (done []DoneCodeHandler, err error)
type Flag ¶
type Flag int
Flag controls the options of the renderer.
const ( FlagsNone Flag = 0 // CompletePage generates a complete LaTeX document, preamble included. CompletePage Flag = 1 << iota // ChapterTitle uses the titleblock (if the extension is on) as chapter title. // Ignored when CompletePage is on. ChapterTitle // No paragraph indentation. NoParIndent SkipLinks // Never link. Safelink // Only link to trusted protocols. TOC // Generate the table of content. )
type ImagePathReplacer ¶
type Opts ¶
type Opts struct { // Flags allow customizing this renderer's behavior. Flags Flag `mapstructure:"flags"` // The document author displayed by the `\maketitle` command. // This will only display if the `Titleblock` extension is on and a title is // present. Author string `mapstructure:"author"` // The languages to be used by the `babel` package. // Languages must be comma-spearated. Languages string `mapstructure:"languages"` Code `mapstructure:"code"` WebImagesDir string `mapstructure:"web_images_dir"` WebImagesDirOverride string `mapstructure:"web_images_dir_override"` ImagePathReplacers []*ImagePathReplacer `mapstructure:"image_path_replacers"` Titled bool `mapstructure:"titled"` HtmlBlockHandler func(r *Renderer, w io.Writer, node *bf.Node, entering bool) bf.WalkStatus `mapstructure:"htmlBlockHandler"` CodeHandler map[string]CodeHandler }
type Renderer ¶
type Renderer struct { Opts OnError func(err error) Downloaded func(name, url string) // contains filtered or unexported fields }
Renderer is a type that implements the Renderer interface for LaTeX output.
func NewRenderer ¶
func (*Renderer) Render ¶
Render prints out the whole document from the ast, header and footer included.
func (*Renderer) RenderFooter ¶
RenderHeader prints the '\end{document}' if CompletePage is on.
func (*Renderer) RenderHeader ¶
RenderHeader prints the LaTeX preamble if CompletePage is on.
func (*Renderer) RenderNode ¶
RenderNode renders a single node. As a rule of thumb to enforce consistency, each node is responsible for appending the needed line breaks. Line breaks are never prepended.
type RequestOptions ¶
Click to show internal directories.
Click to hide internal directories.