internal¶
Index¶
- Variables
- func AddTask(opts *AddTaskOptions) error
- func AppendRawMarkdownToJournal(graph *logseq.Graph, date time.Time, rawMarkdown string) (int, error)
- func DateYYYYMMDD(time time.Time) int
- func FindBlockContainingText(page logseq.Page, searchText string) *content.Block
- func FindTaskMarkerByKey(page logseq.Page, parentBlock *content.Block, key string) *content.TaskMarker
- func InsertMarkdownToJournal(opts *InsertMarkdownOptions) error
- func IsAncestor(block, ancestor *content.Block) bool
- func IsValidMarkdownFile(filePath string) bool
- func OpenGraphFromPath(path string) *logseq.Graph
- func OpenPage(graph *logseq.Graph, pageTitle string) logseq.Page
- func ReadFromStdin() string
- func SortAndRemoveDuplicates(elements []string) []string
- func TidyUpOneFile(graph *logseq.Graph, path string) int
- func addContent(page logseq.Page, parentBlock *content.Block, contentText string) error
- func containsTextCaseInsensitive(node content.Node, searchTextLower string) bool
- func replaceCurrentPage(query, pageTitle string) string
- func updateExistingTask(existingTaskMarker *content.TaskMarker, opts *AddTaskOptions) error
- func updateTaskBackToTodo(taskMarker *content.TaskMarker, newName string) error
- type AddTaskOptions
- type CategorizedTasks
- func NewCategorizedTasks() CategorizedTasks
- type ChangedContents
- func RemoveUnnecessaryBracketsFromTags(oldContents string) ChangedContents
- type ChangedPage
- func CheckForbiddenReferences(page logseq.Page) ChangedPage
- func CheckRunningTasks(page logseq.Page) ChangedPage
- func RemoveDoubleSpaces(page logseq.Page) ChangedPage
- func RemoveEmptyBullets(page logseq.Page) ChangedPage
- type InsertMarkdownOptions
- type LogseqAPI
- func NewLogseqAPI(path, hostURL, apiToken string) LogseqAPI
- type LogseqFinder
- func NewLogseqFinder(graph *logseq.Graph) LogseqFinder
- type TaskJSON
- func ExtractTasksFromJSON(jsonStr string) ([]TaskJSON, error)
- func (t TaskJSON) Doing() bool
- func (t TaskJSON) FutureScheduled(currentTime func() time.Time) bool
- func (t TaskJSON) Overdue(currentTime func() time.Time) bool
- type logseqAPIImpl
- func (l *logseqAPIImpl) PostQuery(query string) (string, error)
- type logseqFinderImpl
- func (f logseqFinderImpl) FindFirstQuery(pageTitle string) string
- type pageJSON
Variables¶
ErrPageIsNil is returned when a page is nil.
PageColor is a color function for page names.
func AddTask¶
AddTask adds a task to Logseq. If Key is provided, it searches for an existing task containing that key (case-insensitive) and updates it. Otherwise, creates a new task. If Page is provided, adds to that page. Otherwise, adds to journal for Date. If BlockText is provided, adds as a child of the first block containing that text.
func AppendRawMarkdownToJournal¶
func AppendRawMarkdownToJournal(graph *logseq.Graph, date time.Time, rawMarkdown string) (int, error)
AppendRawMarkdownToJournal appends raw Markdown content to the journal page for the given date. I tried appending blocks with `logseq-go` but there is and with text containing brackets. e.g. "[something]" is escaped like "\[something\]" and this breaks links.
func DateYYYYMMDD¶
DateYYYYMMDD returns the current date in YYYYMMDD format.
func FindBlockContainingText¶
FindBlockContainingText searches for the first block containing the specified text using FindDeep.
func FindTaskMarkerByKey¶
func FindTaskMarkerByKey(page logseq.Page, parentBlock *content.Block, key string) *content.TaskMarker
FindTaskMarkerByKey searches for a task marker containing the specified key (case-insensitive). If parentBlock is provided, searches only among its children. Otherwise, searches in the entire page. Returns the TaskMarker if found, nil otherwise.
func InsertMarkdownToJournal¶
InsertMarkdownToJournal inserts markdown content to a journal page If ParentText is provided, it searches for the first block containing that text and inserts the content as a child block. Otherwise, appends to the end.
func IsAncestor¶
IsAncestor checks if ancestor is an ancestor of block by traversing up the parent chain. Returns true if ancestor is found in the parent hierarchy of block, false otherwise. Returns true if block and ancestor are the same block.
func IsValidMarkdownFile¶
IsValidMarkdownFile checks if a file is a Markdown file, by looking at its extension, not its content.
func OpenGraphFromPath¶
OpenGraphFromPath opens a Logseq graph (from the path provided when the instance was created). It doesn't return an error and aborts the program if it fails because it's an internal function. This is done on purpose to avoid error handling boilerplate code throughout the package.
func OpenPage¶
OpenPage opens a page in the Logseq graph. It aborts the program in case of error because it's an internal function. Also, it's not common to have errors when opening a page.
func ReadFromStdin¶
ReadFromStdin reads from stdin and returns the content as a string. It doesn't return an error and aborts the program if it fails because it's an internal function.
func SortAndRemoveDuplicates¶
func TidyUpOneFile¶
func addContent¶
addContent adds content either as a child block to the specified parent or as a top-level block to the page.
func containsTextCaseInsensitive¶
containsTextCaseInsensitive checks if a node contains the specified text (case-insensitive). It checks Text, PageLink, and Hashtag nodes.
func replaceCurrentPage¶
replaceCurrentPage replaces the current page placeholder in the query with the actual page name.
func updateExistingTask¶
func updateTaskBackToTodo¶
type AddTaskOptions¶
AddTaskOptions contains options for adding a task to Logseq.
type AddTaskOptions struct {
Graph *logseq.Graph
Date time.Time
Page string // Page name to add the task to (empty = journal)
BlockText string // Partial text to search for in parent blocks
Key string // Unique key to search for existing task (case-insensitive)
Name string // Short name of the task
TimeNow func() time.Time // For testing
}
type CategorizedTasks¶
type CategorizedTasks struct {
All *set.Set[string]
Overdue *set.Set[string]
Doing *set.Set[string]
FutureScheduled *set.Set[string]
}
func NewCategorizedTasks¶
type ChangedContents¶
ChangedContents is the result of a check function that modifies file contents directly without a transaction.
func RemoveUnnecessaryBracketsFromTags¶
RemoveUnnecessaryBracketsFromTags removes unnecessary brackets from hashtags. logseq-go rewrites tags correctly when saving the transaction, removing unnecessary brackets. But, when reading the file, the AST doesn't provide the information if a tag has brackets or not. So I would have to rewrite the file to fix them, and I don't want to do it every time there is a tag without spaces. Also, as of 2024-12-30, logseq-go has a bug when reading properties with spaces in values, which causes them to be partially removed from the file, destroying data. I will report it soon.
type ChangedPage¶
ChangedPage is the result of a check function that modifies Markdown through a Page and a transaction.
func CheckForbiddenReferences¶
CheckForbiddenReferences checks if a page has forbidden references to other pages or tags.
func CheckRunningTasks¶
CheckRunningTasks checks if a page has running tasks (DOING, etc.).
func RemoveDoubleSpaces¶
RemoveDoubleSpaces removes double spaces from text, page links, and tags, except for tables.
func RemoveEmptyBullets¶
type InsertMarkdownOptions¶
InsertMarkdownOptions contains options for inserting markdown content.
type InsertMarkdownOptions struct {
Graph *logseq.Graph
Date time.Time
Content string
ParentText string // Partial text to search for in parent blocks
}
type LogseqAPI¶
func NewLogseqAPI¶
NewLogseqAPI creates a new LogseqAPI instance.
type LogseqFinder¶
func NewLogseqFinder¶
type TaskJSON¶
type TaskJSON struct {
UUID string `json:"uuid"`
Marker string `json:"marker"`
Content string `json:"content"`
Page pageJSON `json:"page"`
Deadline int `json:"deadline"`
Scheduled int `json:"scheduled"`
}
func ExtractTasksFromJSON¶
func (TaskJSON) Doing¶
Doing checks if the task has the DOING marker.
func (TaskJSON) FutureScheduled¶
FutureScheduled checks if the task is scheduled for the future (tomorrow onwards) and it's not overdue.
func (TaskJSON) Overdue¶
Overdue checks if the task is overdue based on deadline or scheduled date.
type logseqAPIImpl¶
func (*logseqAPIImpl) PostQuery¶
PostQuery sends a query to the Logseq API and returns the result as JSON.
type logseqFinderImpl¶
func (logseqFinderImpl) FindFirstQuery¶
type pageJSON¶
Generated by gomarkdoc