README

booklit

GoDoc CI

installation

grab the latest release, or build from source:

go get github.com/vito/booklit/cmd/booklit

usage

booklit -i foo.lit -o ./out

example

clone this repo and build its docs:

booklit \
  -i ./docs/lit/index.lit \
  -o ./docs \
  --html-templates docs/lit/html \
  --plugin github.com/vito/booklit/booklitdoc

then browse the generated docs from ./docs/index.html.

you can see the result at https://vito.github.io/booklit

Expand ▾ Collapse ▴

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBrokenReference = errors.New("broken reference")
View Source
var Version = "0.0.0-dev"

    overridden via linker flags

    Functions

    func RegisterPlugin

    func RegisterPlugin(name string, factory PluginFactory)

    Types

    type Aux

    type Aux struct {
    	Content
    }

    type Content

    type Content interface {
    	String() string
    
    	IsFlow() bool
    
    	Visit(Visitor) error
    }

    func Append

    func Append(first Content, rest ...Content) Content

    func StripAux

    func StripAux(content Content) Content

    type Definition

    type Definition struct {
    	Subject    Content
    	Definition Content
    }

    type Definitions

    type Definitions []Definition

    func (Definitions) IsFlow

    func (con Definitions) IsFlow() bool

    func (Definitions) String

    func (con Definitions) String() string

    func (Definitions) Visit

    func (con Definitions) Visit(visitor Visitor) error

    type Image

    type Image struct {
    	Path        string
    	Description string
    }

    func (Image) IsFlow

    func (con Image) IsFlow() bool

    func (Image) String

    func (con Image) String() string

    func (Image) Visit

    func (con Image) Visit(visitor Visitor) error
    type Link struct {
    	Content
    
    	Target string
    }

    func (Link) Visit

    func (con Link) Visit(visitor Visitor) error

    type List

    type List struct {
    	Items []Content
    
    	Ordered bool
    }

    func (List) IsFlow

    func (con List) IsFlow() bool

    func (List) String

    func (con List) String() string

    func (List) Visit

    func (con List) Visit(visitor Visitor) error

    type Paragraph

    type Paragraph []Content

    func (Paragraph) IsFlow

    func (con Paragraph) IsFlow() bool

    func (Paragraph) String

    func (con Paragraph) String() string

    func (Paragraph) Visit

    func (con Paragraph) Visit(visitor Visitor) error

    type Partials

    type Partials map[string]Content

    type Plugin

    type Plugin interface {
    }

    type PluginFactory

    type PluginFactory func(*Section) Plugin

    func LookupPlugin

    func LookupPlugin(name string) (PluginFactory, bool)

    type Preformatted

    type Preformatted []Content

    func (Preformatted) IsFlow

    func (con Preformatted) IsFlow() bool

    func (Preformatted) String

    func (con Preformatted) String() string

    func (Preformatted) Visit

    func (con Preformatted) Visit(visitor Visitor) error

    type Reference

    type Reference struct {
    	TagName string
    	Content Content
    
    	Tag *Tag
    }

    func (*Reference) Display

    func (con *Reference) Display() Content

    func (*Reference) IsFlow

    func (con *Reference) IsFlow() bool

    func (*Reference) String

    func (con *Reference) String() string

    func (*Reference) Visit

    func (con *Reference) Visit(visitor Visitor) error

    type Section

    type Section struct {
    	Path string
    
    	Title Content
    	Body  Content
    
    	PrimaryTag Tag
    	Tags       []Tag
    
    	Parent   *Section
    	Children []*Section
    
    	Style    string
    	Partials Partials
    
    	SplitSections        bool
    	PreventSplitSections bool
    
    	ResetDepth bool
    
    	OmitChildrenFromTableOfContents bool
    
    	Processor       SectionProcessor
    	PluginFactories []PluginFactory
    	Plugins         []Plugin
    }

    func (*Section) AnchorTags

    func (con *Section) AnchorTags() []Tag

    func (*Section) Contains

    func (con *Section) Contains(sub *Section) bool

    func (*Section) Depth

    func (con *Section) Depth() int

    func (*Section) FindTag

    func (con *Section) FindTag(tagName string) []Tag

    func (*Section) HasAnchors

    func (con *Section) HasAnchors() bool

    func (*Section) IsFlow

    func (con *Section) IsFlow() bool

    func (*Section) IsOrHasChild

    func (con *Section) IsOrHasChild(sub *Section) bool

    func (*Section) Next

    func (con *Section) Next() *Section

    func (*Section) NextSibling

    func (con *Section) NextSibling() *Section

    func (*Section) Number

    func (con *Section) Number() string

    func (*Section) PageDepth

    func (con *Section) PageDepth() int

    func (*Section) Partial

    func (con *Section) Partial(name string) Content

    func (*Section) Prev

    func (con *Section) Prev() *Section

    func (*Section) SetPartial

    func (con *Section) SetPartial(name string, value Content)

    func (*Section) SetTag

    func (con *Section) SetTag(name string, title Content, optionalAnchor ...string)

    func (*Section) SetTagAnchored

    func (con *Section) SetTagAnchored(name string, title Content, content Content, anchor string)

    func (*Section) SetTitle

    func (con *Section) SetTitle(title Content, tags ...string)

    func (*Section) SplitSectionsPrevented

    func (con *Section) SplitSectionsPrevented() bool

    func (*Section) String

    func (con *Section) String() string

    func (*Section) Top

    func (con *Section) Top() *Section

    func (*Section) UsePlugin

    func (con *Section) UsePlugin(pf PluginFactory)

    func (*Section) Visit

    func (con *Section) Visit(visitor Visitor) error

    type SectionProcessor

    type SectionProcessor interface {
    	EvaluateFile(*Section, string, []PluginFactory) (*Section, error)
    	EvaluateNode(*Section, ast.Node, []PluginFactory) (*Section, error)
    }

    type Sequence

    type Sequence []Content

    func (Sequence) Contents

    func (con Sequence) Contents() []Content

    func (Sequence) IsFlow

    func (con Sequence) IsFlow() bool

    func (Sequence) String

    func (con Sequence) String() string

    func (Sequence) Visit

    func (con Sequence) Visit(visitor Visitor) error

    type String

    type String string
    var Empty String

    func (String) IsFlow

    func (str String) IsFlow() bool

    func (String) String

    func (str String) String() string

    func (String) Visit

    func (str String) Visit(visitor Visitor) error

    type Style

    type Style string
    const (
    	StyleVerbatim    Style = "verbatim"
    	StyleItalic      Style = "italic"
    	StyleBold        Style = "bold"
    	StyleLarger      Style = "larger"
    	StyleSmaller     Style = "smaller"
    	StyleStrike      Style = "strike"
    	StyleSuperscript Style = "superscript"
    	StyleSubscript   Style = "subscript"
    	StyleInset       Style = "inset"
    	StyleAside       Style = "aside"
    )

    type Styled

    type Styled struct {
    	Style Style
    	Block bool
    
    	Content  Content
    	Partials Partials
    }

    func (Styled) IsFlow

    func (con Styled) IsFlow() bool

    func (Styled) Partial

    func (con Styled) Partial(name string) Content

    func (Styled) String

    func (con Styled) String() string

    func (Styled) Visit

    func (con Styled) Visit(visitor Visitor) error

    type Table

    type Table struct {
    	Rows [][]Content
    }

    func (Table) IsFlow

    func (con Table) IsFlow() bool

    func (Table) String

    func (con Table) String() string

    func (Table) Visit

    func (con Table) Visit(visitor Visitor) error

    type TableOfContents

    type TableOfContents struct {
    	Section *Section
    }

    func (TableOfContents) IsFlow

    func (con TableOfContents) IsFlow() bool

    func (TableOfContents) String

    func (con TableOfContents) String() string

    func (TableOfContents) Visit

    func (con TableOfContents) Visit(visitor Visitor) error

    type Tag

    type Tag struct {
    	Name  string
    	Title Content
    
    	Section *Section
    	Anchor  string
    
    	Content Content
    }

    type Target

    type Target struct {
    	TagName string
    	Title   Content
    	Content Content
    }

    func (Target) IsFlow

    func (con Target) IsFlow() bool

    func (Target) String

    func (con Target) String() string

    func (Target) Visit

    func (con Target) Visit(visitor Visitor) error

    type Visitor

    type Visitor interface {
    	VisitString(String) error
    	VisitSequence(Sequence) error
    	VisitReference(*Reference) error
    	VisitLink(Link) error
    	VisitSection(*Section) error
    	VisitParagraph(Paragraph) error
    	VisitTableOfContents(TableOfContents) error
    	VisitPreformatted(Preformatted) error
    	VisitStyled(Styled) error
    	VisitTarget(Target) error
    	VisitImage(Image) error
    	VisitList(List) error
    	VisitTable(Table) error
    	VisitDefinitions(Definitions) error
    }