Documentation
¶
Index ¶
- Constants
- Variables
- func GetByType[T Render](of *OrgFile) map[Uid]T
- func NewBulletFromReader(r *reader.PeekReader) o.Option[*Bullet]
- func NewBulletFromString(str string) o.Option[Bullet]
- func NewHeaderFromString(str string, reader *reader.PeekReader) option.Option[Header]
- func NewPlainTextFromReader(reader *reader.PeekReader) option.Option[*PlainText]
- func NewScheduleFromReader(reader *reader.PeekReader) option.Option[Schedule]
- func OrgFileFromReader(ctx context.Context, r io.Reader) result.Result[OrgFile]
- func ParseIndentedLine(r *reader.PeekReader, parent Render) option.Option[Render]
- func PrintCsv(r []Render, cols []*Column) string
- func PrintTable(r []Render, cols []Column) string
- func ProgressFromString(str string) option.Option[Progress]
- func TagListFromString(str string) option.Option[TagList]
- type Bullet
- func (b *Bullet) AddChildren(r ...Render) error
- func (b *Bullet) BulletLevel() int
- func (b *Bullet) CheckProgress() o.Option[Progress]
- func (b *Bullet) ChildIndentLevel() int
- func (b *Bullet) Children() []Render
- func (b *Bullet) ChildrenRec(depth int) (children []Render)
- func (b *Bullet) CompleteCheckbox()
- func (b *Bullet) HasCheckbox() bool
- func (b *Bullet) IndentLevel() int
- func (b *Bullet) Insert(index int, render Render) (err error)
- func (b *Bullet) Level() int
- func (p *Bullet) Location(table map[Uid]int) (loc int)
- func (b *Bullet) Move(op MoveOperation) (err error)
- func (b *Bullet) ParentUid() Uid
- func (b *Bullet) Path() string
- func (b *Bullet) Preview(length int) string
- func (b *Bullet) RemoveChildren(uids ...Uid) error
- func (b *Bullet) Render(builder *strings.Builder, depth int)
- func (b *Bullet) RenderMarkdown(builder *strings.Builder, depth int)
- func (b *Bullet) SetContent(content string)
- func (b *Bullet) SetIndex(idx int)
- func (b *Bullet) SetParent(render Render) error
- func (b *Bullet) Status() RenderStatus
- func (b *Bullet) TagList() (list TagList)
- func (b *Bullet) ToggleCheckbox()
- func (b *Bullet) Uid() Uid
- type BulletStatus
- type Column
- type ColumnContent
- type Header
- func (h *Header) AddChild(r Render) error
- func (h *Header) AddChildren(render ...Render) error
- func (h *Header) CheckProgress() option.Option[Progress]
- func (h *Header) ChildIndentLevel() int
- func (h *Header) Children() []Render
- func (b *Header) ChildrenRec(depth int) (children []Render)
- func (h *Header) CompleteCheckboxByIndex(index int) (*Bullet, error)
- func (h *Header) CreateSubheader(title string, status HeaderStatus) *Header
- func (h *Header) IndentLevel() int
- func (h *Header) Insert(index int, render Render) (err error)
- func (h *Header) Level() int
- func (p *Header) Location(table map[Uid]int) (loc int)
- func (h *Header) Move(op MoveOperation) (err error)
- func (h *Header) ParentUid() Uid
- func (h *Header) Path() string
- func (h *Header) Preview(length int) string
- func (h *Header) RemoveChildren(uids ...Uid) error
- func (h *Header) Render(builder *strings.Builder, depth int)
- func (h *Header) RenderMarkdown(builder *strings.Builder, depth int)
- func (h *Header) Schedule() option.Option[*Schedule]
- func (h *Header) SetLevel(level int)
- func (h *Header) SetParent(render Render) error
- func (h *Header) SetStatus(status HeaderStatus)
- func (h *Header) Status() RenderStatus
- func (h *Header) TagList() (list TagList)
- func (h *Header) ToggleCheckboxByIndex(index int) (*Bullet, error)
- func (b *Header) Uid() Uid
- type HeaderStatus
- type IndexOperation
- type IndexRelativeOperation
- type MoveOperation
- type MoveOperationKind
- type OrgFile
- func (of *OrgFile) AddChildren(r ...Render) error
- func (of *OrgFile) BuildLocationTable() *map[Uid]int
- func (of *OrgFile) CheckProgress() option.Option[Progress]
- func (of *OrgFile) ChildIndentLevel() int
- func (of *OrgFile) Children() []Render
- func (of *OrgFile) ChildrenRec(depth int) []Render
- func (of *OrgFile) GenerateEmbeddings() error
- func (of *OrgFile) GetHeaderByStatus(status RenderStatus) []*Header
- func (of *OrgFile) GetLocationTable() *map[Uid]int
- func (of *OrgFile) GetStatusOverview() map[RenderStatus]StatusReport
- func (of *OrgFile) GetTag(tag string) option.Option[*Header]
- func (of *OrgFile) GetTagOverview() map[string]int
- func (of *OrgFile) GetUid(uid Uid) option.Option[Render]
- func (of *OrgFile) IndentLevel() int
- func (of *OrgFile) Insert(index int, render Render) (err error)
- func (of *OrgFile) Level() int
- func (of *OrgFile) Location(_ map[Uid]int) int
- func (of *OrgFile) Move(op MoveOperation) (err error)
- func (of *OrgFile) ParentUid() Uid
- func (of *OrgFile) Path() string
- func (of *OrgFile) Preview(_ int) string
- func (of *OrgFile) RemoveChildren(uids ...Uid) error
- func (of *OrgFile) Render(builder *strings.Builder, depth int)
- func (of *OrgFile) RenderMarkdown(builder *strings.Builder, depth int)
- func (of *OrgFile) SetParent(render Render) error
- func (of *OrgFile) Status() RenderStatus
- func (of *OrgFile) TagList() (list TagList)
- func (of *OrgFile) Uid() Uid
- func (of *OrgFile) VectorSearch(query string, top_n int) (h []*Header, err error)
- type PlainText
- func (p *PlainText) AddChildren(r ...Render) error
- func (p *PlainText) CheckProgress() option.Option[Progress]
- func (p *PlainText) ChildIndentLevel() int
- func (p *PlainText) Children() []Render
- func (p *PlainText) ChildrenRec(_ int) []Render
- func (p *PlainText) IndentLevel() int
- func (p *PlainText) Insert(index int, render Render) (err error)
- func (p *PlainText) Level() int
- func (p *PlainText) Location(table map[Uid]int) (loc int)
- func (p *PlainText) Move(op MoveOperation) (err error)
- func (p *PlainText) ParentUid() Uid
- func (p *PlainText) Path() string
- func (p *PlainText) Preview(length int) string
- func (p *PlainText) RemoveChildren(...Uid) error
- func (p *PlainText) Render(builder *strings.Builder, depth int)
- func (t *PlainText) RenderMarkdown(builder *strings.Builder, depth int)
- func (p *PlainText) SetContent(content string)
- func (p *PlainText) SetParent(r Render) error
- func (p *PlainText) Status() RenderStatus
- func (p *PlainText) TagList() (list TagList)
- func (p *PlainText) Uid() Uid
- type Progress
- type PropValue
- type Properties
- type Render
- type RenderBase
- type RenderMarkdown
- type RenderOrg
- type RenderStatus
- type Schedule
- type ScheduleStatus
- type SearchScore
- type StatusReport
- type SwapOperation
- type TagList
- type Uid
- type UidValue
Constants ¶
const ( Star bulletPrefix = "*" Dash bulletPrefix = "-" )
Variables ¶
var ( ColTypeValue = ColType ColUidValue = ColUid ColPreviewValue = ColPreview ColContentValue = ColContent ColStatusValue = ColStatus ColProgressValue = ColProgress ColParentValue = ColParent ColChildrenCountValue = ColChildrenCount ColTagsValue = ColTags ColLevelValue = ColLevel ColPathValue = ColPath ColScheduledValue = ColScheduled ColDeadlineValue = ColDeadline ColClosedValue = ColClosed )
var ( DeadlineValue = "DEADLINE" ScheduledValue = "SCHEDULED" ClosedValue = "CLOSED" )
var AllColumns = []Column{ ColType, ColUid, ColPreview, ColContent, ColStatus, ColProgress, ColParent, ColChildrenCount, ColTags, ColLevel, ColPath, ColScheduled, ColDeadline, ColClosed, }
var AllColumnsStr = strings.Join(slice.Map(AllColumns, func(c Column) string { return c.String() }), ", ")
var DoneStatuses = []HeaderStatus{Revw, Done, Delg}
var OrderedSchedules = []ScheduleStatus{Scheduled, Deadline, Closed}
var SPECIAL_TOKENS = []string{"[", ":"}
var ScheduleKeywords = []string{"DEADLINE", "SCHEDULED", "CLOSED"}
Functions ¶
func NewBulletFromReader ¶
func NewBulletFromReader(r *reader.PeekReader) o.Option[*Bullet]
func NewHeaderFromString ¶
TODO: remove str from arguments and parse from reader only (prob make a new constructor)
func NewPlainTextFromReader ¶
func NewPlainTextFromReader(reader *reader.PeekReader) option.Option[*PlainText]
func NewScheduleFromReader ¶
func NewScheduleFromReader(reader *reader.PeekReader) option.Option[Schedule]
func OrgFileFromReader ¶
func ParseIndentedLine ¶
func PrintTable ¶
Types ¶
type Bullet ¶
type Bullet struct {
// contains filtered or unexported fields
}
func NewBullet ¶
func NewBullet(parent Render, status BulletStatus) *Bullet
func (*Bullet) AddChildren ¶
func (*Bullet) BulletLevel ¶
func (*Bullet) ChildIndentLevel ¶
func (*Bullet) ChildrenRec ¶
func (*Bullet) CompleteCheckbox ¶
func (b *Bullet) CompleteCheckbox()
CompleteCheckbox marks the checkbox as completed (checked) Only works for bullets that already have a checkbox (not NoCheck)
func (*Bullet) HasCheckbox ¶
HasCheckbox returns true if the bullet has a checkbox
func (*Bullet) IndentLevel ¶
func (*Bullet) Move ¶
func (b *Bullet) Move(op MoveOperation) (err error)
func (*Bullet) RemoveChildren ¶
func (*Bullet) RenderMarkdown ¶
func (*Bullet) SetContent ¶
func (*Bullet) Status ¶
func (b *Bullet) Status() RenderStatus
func (*Bullet) ToggleCheckbox ¶
func (b *Bullet) ToggleCheckbox()
ToggleCheckbox toggles the checkbox state between Unchecked and Checked Only works for bullets that already have a checkbox (not NoCheck)
type BulletStatus ¶
type BulletStatus int
const ( NoCheck BulletStatus = iota Unchecked Checked )
func NewBulletStatus ¶
func NewBulletStatus(str string) BulletStatus
type Column ¶
type Column string
const ( ColType Column = "TYPE" ColUid Column = "UID" ColPreview Column = "PREVIEW" ColContent Column = "CONTENT" ColStatus Column = "STATUS" ColProgress Column = "PROGRESS" ColParent Column = "PARENT" ColChildrenCount Column = "CHILDREN_COUNT" ColTags Column = "TAGS" ColLevel Column = "LEVEL" ColPath Column = "PATH" ColScheduled Column = "SCHEDULED" ColDeadline Column = "DEADLINE" ColClosed Column = "CLOSED" )
func (*Column) UnmarshalJSON ¶
type ColumnContent ¶
type ColumnContent struct {
// contains filtered or unexported fields
}
type Header ¶
type Header struct {
Progress option.Option[Progress]
Tags option.Option[TagList]
Parent option.Option[Render]
Content string
// contains filtered or unexported fields
}
func GetHeaderRec ¶
func NewHeader ¶
func NewHeader(status HeaderStatus, content string) Header
func (*Header) AddChildren ¶
func (*Header) ChildIndentLevel ¶
func (*Header) ChildrenRec ¶
func (*Header) CompleteCheckboxByIndex ¶
CompleteCheckboxByIndex finds a bullet at the given index within this header's children and marks it as completed. Returns the updated bullet or an error.
func (*Header) CreateSubheader ¶
func (h *Header) CreateSubheader(title string, status HeaderStatus) *Header
CreateSubheader creates a new header as a child of the current header The new header's level will be one more than the parent's level A unique UID will be generated and assigned using NewPropertiesWithUID
func (*Header) IndentLevel ¶
func (*Header) Move ¶
func (h *Header) Move(op MoveOperation) (err error)
func (*Header) RemoveChildren ¶
func (*Header) RenderMarkdown ¶
func (*Header) SetStatus ¶
func (h *Header) SetStatus(status HeaderStatus)
func (*Header) Status ¶
func (h *Header) Status() RenderStatus
func (*Header) ToggleCheckboxByIndex ¶
ToggleCheckboxByIndex finds a bullet at the given index within this header's children and toggles its checkbox state. Returns the updated bullet or an error.
type HeaderStatus ¶
type HeaderStatus string
const ( None HeaderStatus = "NONE" Todo HeaderStatus = "TODO" Next HeaderStatus = "NEXT" Prog HeaderStatus = "PROG" Revw HeaderStatus = "REVW" Done HeaderStatus = "DONE" Delg HeaderStatus = "DELG" )
func StatusFromString ¶
func StatusFromString(str string) HeaderStatus
func (HeaderStatus) GetNext ¶
func (s HeaderStatus) GetNext() HeaderStatus
func (HeaderStatus) RenderMarkdown ¶
func (s HeaderStatus) RenderMarkdown(builder *strings.Builder)
func (HeaderStatus) String ¶
func (s HeaderStatus) String() string
func (*HeaderStatus) UnmarshalJSON ¶
func (h *HeaderStatus) UnmarshalJSON(input []byte) error
type IndexOperation ¶
type IndexOperation struct {
// contains filtered or unexported fields
}
type IndexRelativeOperation ¶
type IndexRelativeOperation struct {
// contains filtered or unexported fields
}
type MoveOperation ¶
type MoveOperation struct {
Swap *SwapOperation
Index *IndexOperation
IndexRelative *IndexRelativeOperation
}
func NewMoveOperation ¶
func NewMoveOperation[T MoveOperationKind](kind T) MoveOperation
type MoveOperationKind ¶
type MoveOperationKind interface {
SwapOperation | IndexOperation | IndexRelativeOperation
}
type OrgFile ¶
type OrgFile struct {
// contains filtered or unexported fields
}
func (*OrgFile) AddChildren ¶
func (*OrgFile) BuildLocationTable ¶
func (*OrgFile) ChildIndentLevel ¶
func (*OrgFile) ChildrenRec ¶
func (*OrgFile) GenerateEmbeddings ¶
func (*OrgFile) GetHeaderByStatus ¶
func (of *OrgFile) GetHeaderByStatus(status RenderStatus) []*Header
func (*OrgFile) GetLocationTable ¶
func (*OrgFile) GetStatusOverview ¶
func (of *OrgFile) GetStatusOverview() map[RenderStatus]StatusReport
func (*OrgFile) GetTagOverview ¶
func (*OrgFile) IndentLevel ¶
func (*OrgFile) Move ¶
func (of *OrgFile) Move(op MoveOperation) (err error)
func (*OrgFile) RemoveChildren ¶
func (*OrgFile) RenderMarkdown ¶
func (*OrgFile) Status ¶
func (of *OrgFile) Status() RenderStatus
type PlainText ¶
type PlainText struct {
// contains filtered or unexported fields
}
func NewPlainText ¶
func (*PlainText) AddChildren ¶
func (*PlainText) ChildIndentLevel ¶
func (*PlainText) ChildrenRec ¶
func (*PlainText) IndentLevel ¶
func (*PlainText) Move ¶
func (p *PlainText) Move(op MoveOperation) (err error)
func (*PlainText) RemoveChildren ¶
func (*PlainText) RenderMarkdown ¶
func (*PlainText) SetContent ¶
func (*PlainText) Status ¶
func (p *PlainText) Status() RenderStatus
type Progress ¶
type Properties ¶
type Properties struct {
// contains filtered or unexported fields
}
func NewPropertiesFromReader ¶
func NewPropertiesFromReader(reader *reader.PeekReader) (p Properties)
func NewPropertiesWithUID ¶
func NewPropertiesWithUID(parent *Header) Properties
generateUID returns an 8-digit pseudo-random identifier as a string.
func (*Properties) ChildIndentLevel ¶
func (p *Properties) ChildIndentLevel() int
func (*Properties) IndentLevel ¶
func (p *Properties) IndentLevel() int
func (*Properties) Render ¶
func (p *Properties) Render(sb *strings.Builder)
Render writes the properties drawer to the given strings.Builder in org-mode format. Example output: :PROPERTIES: :KEY1: value1 :KEY2: value2 :END:
func (*Properties) RenderMarkdown ¶
func (p *Properties) RenderMarkdown(builder *strings.Builder)
type Render ¶
type Render interface {
RenderMarkdown
RenderOrg
}
type RenderBase ¶
type RenderBase interface {
CheckProgress() option.Option[Progress]
IndentLevel() int
ChildIndentLevel() int
Level() int
Location(table map[Uid]int) int
AddChildren(...Render) error
SetParent(Render) error
RemoveChildren(...Uid) error
Children() []Render
ChildrenRec(depth int) []Render
Uid() Uid
ParentUid() Uid
Status() RenderStatus
TagList() TagList
Preview(length int) string
Path() string
Insert(int, Render) error
Move(MoveOperation) error
}
type RenderMarkdown ¶
type RenderMarkdown interface {
RenderBase
RenderMarkdown(builder *strings.Builder, depth int)
}
type RenderOrg ¶
type RenderOrg interface {
RenderBase
Render(builder *strings.Builder, depth int)
}
type RenderStatus ¶
type RenderStatus string
func (RenderStatus) String ¶
func (r RenderStatus) String() string
type Schedule ¶
type Schedule struct {
Values map[ScheduleStatus]struct {
T time.Time
// contains filtered or unexported fields
}
// contains filtered or unexported fields
}
func NewSchedule ¶
func (Schedule) AppendSchedule ¶
type ScheduleStatus ¶
type ScheduleStatus int
const ( Deadline ScheduleStatus = iota Scheduled Closed )
func NewScheduleStatus ¶
func NewScheduleStatus(str string) (ScheduleStatus, error)
func (ScheduleStatus) String ¶
func (s ScheduleStatus) String() string
func (*ScheduleStatus) UnmarshalJSON ¶
func (s *ScheduleStatus) UnmarshalJSON(data []byte) (err error)
type SearchScore ¶
type SearchScore struct {
// contains filtered or unexported fields
}
type StatusReport ¶
type SwapOperation ¶
type SwapOperation struct {
// contains filtered or unexported fields
}