Documentation ¶
Index ¶
- Variables
- func NewMainModel(book *epub.Epub, db *db.DB, renderer *Renderer) tea.Model
- func NewTextModel(book *epub.Epub, db *db.DB, renderer *Renderer, currentId epub.ManifestId, ...) tea.Model
- func Style(tag string) lipgloss.Style
- type BlockMessage
- type Buffer
- func (b *Buffer) Accept(visitor IVisualVisiter)
- func (b *Buffer) GetBaseVisualLine(vy VisualLineIndex) VisualLineIndex
- func (b *Buffer) GetBufferLineNumById(id epub.ManifestId) BufferLineIndex
- func (b *Buffer) GetBufferLineNumByVisual(visualLineNum VisualLineIndex) BufferLineIndex
- func (b *Buffer) GetBufferX(bufferLineNum BufferLineIndex, vy VisualLineIndex, vx VisualIndex) RuneIndex
- func (b *Buffer) GetVisualLineNumById(id epub.ManifestId) VisualLineIndex
- func (b *Buffer) LinesNum() int
- func (b *Buffer) VisualLines(start, end int) []string
- func (b *Buffer) VisualLinesNum() int
- type BufferLineIndex
- type ByteIndex
- type HtmlFormater
- type IHtmlFormater
- type IVisualVisiter
- type Line
- type Parser
- type Pos
- type Renderer
- func (r *Renderer) ClearCursorStyles(vy VisualLineIndex)
- func (r *Renderer) GetBuffer() *Buffer
- func (r *Renderer) GetBufferX(line string, vy VisualLineIndex, vx VisualIndex) RuneIndex
- func (r *Renderer) GetVisualLineNumById(id epub.ManifestId) VisualLineIndex
- func (r *Renderer) MarkInline(vy VisualLineIndex, vxs, vxe VisualIndex) string
- func (r *Renderer) MarkLine(vy VisualLineIndex) string
- func (r *Renderer) MarkPosition(vy VisualLineIndex, vx VisualIndex) string
- func (r *Renderer) Render(width int)
- func (r *Renderer) RenderEmptyLinum() string
- func (r *Renderer) RenderLine(linum BufferLineIndex) []VisualLine
- func (r *Renderer) RenderLinum(linum BufferLineIndex) string
- type RuneIndex
- type Segment
- type Visitor
- type VisualIndex
- type VisualLine
- func (v *VisualLine) Accept(visitor IVisualVisiter)
- func (v *VisualLine) ClearLine()
- func (v *VisualLine) MarkInline(start, end VisualIndex) string
- func (v *VisualLine) MarkLine() string
- func (v *VisualLine) MarkPosition(vx VisualIndex) string
- func (v *VisualLine) Render() string
- func (v *VisualLine) Replace(content string)
- type VisualLineIndex
- type VisualPos
- type VisualRune
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultFormater = HtmlFormater{ ColorProfile: termenv.ColorProfile(), }
View Source
var DefaultStyle = lipgloss.NewStyle()
Functions ¶
func NewTextModel ¶
Types ¶
type BlockMessage ¶
type BlockMessage struct { ID epub.ManifestId Msg string }
type Buffer ¶
type Buffer struct { Lines []Line // The position of each block of the spine in the Lines BlockPos map[epub.ManifestId]BufferLineIndex // contains filtered or unexported fields }
Buffer is the ebook one to one mapping
func (*Buffer) Accept ¶
func (b *Buffer) Accept(visitor IVisualVisiter)
func (*Buffer) GetBaseVisualLine ¶
func (b *Buffer) GetBaseVisualLine(vy VisualLineIndex) VisualLineIndex
GetBaseVisualLine returns the y position of the first line of the given visual index(one buffer line maybe rendered to multiple screen lines)
func (*Buffer) GetBufferLineNumById ¶
func (b *Buffer) GetBufferLineNumById(id epub.ManifestId) BufferLineIndex
func (*Buffer) GetBufferLineNumByVisual ¶
func (b *Buffer) GetBufferLineNumByVisual(visualLineNum VisualLineIndex) BufferLineIndex
func (*Buffer) GetBufferX ¶
func (b *Buffer) GetBufferX(bufferLineNum BufferLineIndex, vy VisualLineIndex, vx VisualIndex) RuneIndex
func (*Buffer) GetVisualLineNumById ¶
func (b *Buffer) GetVisualLineNumById(id epub.ManifestId) VisualLineIndex
func (*Buffer) VisualLines ¶
VisualLines return a portion of visual lines in a range
func (*Buffer) VisualLinesNum ¶
VisualLinesNum returns total lines number after rendition
type BufferLineIndex ¶
type BufferLineIndex int
BufferLineIndex is the index of the line in the buffer
type HtmlFormater ¶
func (HtmlFormater) Header ¶
func (f HtmlFormater) Header(c string) string
func (HtmlFormater) I ¶
func (f HtmlFormater) I(c string) string
func (HtmlFormater) PostProcess ¶
func (f HtmlFormater) PostProcess(c string) string
func (HtmlFormater) Title ¶
func (f HtmlFormater) Title(c string) string
type IHtmlFormater ¶
type IVisualVisiter ¶
type IVisualVisiter interface { VisitBufferPrev(*Buffer) bool VisitBufferPost(*Buffer) bool VisitLinePrev(*VisualLine) bool VisitLinePost(*VisualLine) bool VisitRune(*VisualRune) bool }
type Line ¶
Line contains the text parsed from the ebooks together with it's styles specified. The Content field is the original text without rendering
type Renderer ¶
type Renderer struct {
// contains filtered or unexported fields
}
func (*Renderer) ClearCursorStyles ¶
func (r *Renderer) ClearCursorStyles(vy VisualLineIndex)
func (*Renderer) GetBufferX ¶
func (r *Renderer) GetBufferX(line string, vy VisualLineIndex, vx VisualIndex) RuneIndex
func (*Renderer) GetVisualLineNumById ¶
func (r *Renderer) GetVisualLineNumById(id epub.ManifestId) VisualLineIndex
func (*Renderer) MarkInline ¶
func (r *Renderer) MarkInline(vy VisualLineIndex, vxs, vxe VisualIndex) string
func (*Renderer) MarkLine ¶
func (r *Renderer) MarkLine(vy VisualLineIndex) string
func (*Renderer) MarkPosition ¶
func (r *Renderer) MarkPosition(vy VisualLineIndex, vx VisualIndex) string
func (*Renderer) RenderEmptyLinum ¶
func (*Renderer) RenderLine ¶
func (r *Renderer) RenderLine(linum BufferLineIndex) []VisualLine
func (*Renderer) RenderLinum ¶
func (r *Renderer) RenderLinum(linum BufferLineIndex) string
type Visitor ¶
func (*Visitor) VisitBufferPost ¶
func (*Visitor) VisitBufferPrev ¶
func (*Visitor) VisitLinePost ¶
func (v *Visitor) VisitLinePost(l *VisualLine) bool
func (*Visitor) VisitLinePrev ¶
func (v *Visitor) VisitLinePrev(l *VisualLine) bool
func (*Visitor) VisitRune ¶
func (v *Visitor) VisitRune(r *VisualRune) bool
type VisualLine ¶
type VisualLine struct { // index in the original buffer, some visual lines // may mapping to the same buffer line because of the // line wrapping. BufferLinum BufferLineIndex // rendered content Content string Runes []VisualRune // rendered line number LineNum string LinumStyle lipgloss.Style Dirty bool }
func (*VisualLine) Accept ¶
func (v *VisualLine) Accept(visitor IVisualVisiter)
func (*VisualLine) ClearLine ¶
func (v *VisualLine) ClearLine()
func (*VisualLine) MarkInline ¶
func (v *VisualLine) MarkInline(start, end VisualIndex) string
func (*VisualLine) MarkLine ¶
func (v *VisualLine) MarkLine() string
func (*VisualLine) MarkPosition ¶
func (v *VisualLine) MarkPosition(vx VisualIndex) string
func (*VisualLine) Render ¶
func (v *VisualLine) Render() string
func (*VisualLine) Replace ¶
func (v *VisualLine) Replace(content string)
type VisualLineIndex ¶
type VisualLineIndex int
VisualLineIndex is the index of the line in the rendered buffer
type VisualRune ¶
func (*VisualRune) Accept ¶
func (r *VisualRune) Accept(visitor IVisualVisiter)
Click to show internal directories.
Click to hide internal directories.