Skip to content

internal

Go
import "github.com/andreoliwa/logseq-doctor/internal"

Index

Variables

ErrPageIsNil is returned when a page is nil.

Go
var ErrPageIsNil = errors.New("page is nil")

PageColor is a color function for page names.

Go
var PageColor = color.New(color.FgHiWhite).SprintfFunc() //nolint:gochecknoglobals

func AppendRawMarkdownToJournal

Go
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 InsertMarkdown

Go
func InsertMarkdown(opts *InsertMarkdownOptions) error

InsertMarkdown inserts Markdown content to a page or journal. If Page is provided, adds to that page. Otherwise, adds to journal for Date. If Key is provided, it searches for an existing block containing that key (case-insensitive) and updates it. Otherwise, creates a new block. 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

Go
func IsAncestor(block, ancestor *content.Block) bool

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

Go
func IsValidMarkdownFile(filePath string) bool

IsValidMarkdownFile checks if a file is a Markdown file, by looking at its extension, not its content.

func ReadFromStdin

Go
func ReadFromStdin() string

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

Go
func SortAndRemoveDuplicates(elements []string) []string

func TidyUpOneFile

Go
func TidyUpOneFile(graph *logseq.Graph, path string) int

func addContent

Go
func addContent(page logseq.Page, parentBlock *content.Block, contentText string) error

addContent adds content either as a child block to the specified parent or as a top-level block to the page.

func findFirstChildBlock

Go
func findFirstChildBlock(block *content.Block) *content.Block

findFirstChildBlock finds the first child block in a block.

func insertNewContentNodes

Go
func insertNewContentNodes(block *content.Block, parsedBlock *content.Block, firstChildBlock *content.Block)

insertNewContentNodes inserts new content nodes from parsedBlock into block.

func removeOldContentNodes

Go
func removeOldContentNodes(block *content.Block)

removeOldContentNodes removes content nodes from a block while preserving Properties, Logbook, and child Blocks.

func shouldPreserveNode

Go
func shouldPreserveNode(node content.Node) bool

shouldPreserveNode returns true if the node should be preserved (Properties, Logbook, or child Blocks).

func updateExistingBlock

Go
func updateExistingBlock(block *content.Block, newContent string) error

updateExistingBlock updates an existing block's content while preserving children, properties, and logbook.

type ChangedContents

ChangedContents is the result of a check function that modifies file contents directly without a transaction.

Go
type ChangedContents struct {
    Msg         string
    NewContents string
}

func RemoveUnnecessaryBracketsFromTags

Go
func RemoveUnnecessaryBracketsFromTags(oldContents string) ChangedContents

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.

Go
type ChangedPage struct {
    Msg     string
    Changed bool
}

func CheckForbiddenReferences

Go
func CheckForbiddenReferences(page logseq.Page) ChangedPage

CheckForbiddenReferences checks if a page has forbidden references to other pages or tags.

func CheckRunningTasks

Go
func CheckRunningTasks(page logseq.Page) ChangedPage

CheckRunningTasks checks if a page has running tasks (DOING, etc.).

func RemoveDoubleSpaces

Go
func RemoveDoubleSpaces(page logseq.Page) ChangedPage

RemoveDoubleSpaces removes double spaces from text, page links, and tags, except for tables.

func RemoveEmptyBullets

Go
func RemoveEmptyBullets(page logseq.Page) ChangedPage

type InsertMarkdownOptions

InsertMarkdownOptions contains options for inserting Markdown content.

Go
type InsertMarkdownOptions struct {
    Graph      *logseq.Graph
    Date       time.Time
    Page       string // Page name to add content to (empty = journal)
    Content    string
    ParentText string // Partial text to search for in parent blocks
    Key        string // Unique key to search for existing block (case-insensitive)
}

Generated by gomarkdoc