Documentation
¶
Index ¶
- Constants
- func CreateNote(vault obsidian.VaultManager, uri obsidian.UriManager, params CreateParams) error
- func DailyNote(vault obsidian.VaultManager, uri obsidian.UriManager, params DailyParams) error
- func DeleteNote(vault obsidian.VaultManager, note obsidian.NoteManager, params DeleteParams) error
- func Frontmatter(vault obsidian.VaultManager, note obsidian.NoteManager, ...) (string, error)
- func ListEntries(vault obsidian.VaultManager, params ListParams) ([]string, error)
- func MoveNote(vault obsidian.VaultManager, note obsidian.NoteManager, ...) error
- func NormalizeContent(content string) string
- func OpenNote(vault obsidian.VaultManager, uri obsidian.UriManager, params OpenParams) error
- func PrintNote(vault obsidian.VaultManager, note obsidian.NoteManager, params PrintParams) (string, error)
- func SearchNotes(vault obsidian.VaultManager, note obsidian.NoteManager, ...) error
- func SearchNotesContent(vault obsidian.VaultManager, note obsidian.NoteManager, ...) error
- func SearchNotesContentWithOptions(vault obsidian.VaultManager, note obsidian.NoteManager, ...) error
- func WriteNoteFile(notePath, content string, shouldAppend, shouldOverwrite bool) error
- type CreateParams
- type DailyParams
- type DeleteParams
- type FrontmatterParams
- type ListParams
- type MoveParams
- type OpenParams
- type PrintParams
- type SearchContentOptions
Constants ¶
const (
ObsOpenUrl = obsBaseUrl + openAction // 完整的打开 URI 基础地址
)
Obsidian URI 协议相关常量。 Obsidian 支持通过自定义 URI 协议打开笔记,格式为 obsidian://open?vault=...&file=...
Variables ¶
This section is empty.
Functions ¶
func CreateNote ¶
func CreateNote(vault obsidian.VaultManager, uri obsidian.UriManager, params CreateParams) error
CreateNote 是 "create" 命令的业务核心。 流程:读取默认 vault → 应用默认文件夹 → 校验路径 → 创建目录 → 写入文件 →(可选)打开笔记。
func DailyNote ¶
func DailyNote(vault obsidian.VaultManager, uri obsidian.UriManager, params DailyParams) error
DailyNote 是 "daily" 命令的业务核心。 流程:读取 Obsidian Daily Notes 插件配置 → 按格式生成今日日期作为文件名 → 如有模板则读取模板 → 写入/追加内容 → 打开笔记。
func DeleteNote ¶
func DeleteNote(vault obsidian.VaultManager, note obsidian.NoteManager, params DeleteParams) error
DeleteNote 是 "delete" 命令的业务核心。 先校验路径是否在 vault 内,然后调用笔记管理器执行删除。
func Frontmatter ¶
func Frontmatter(vault obsidian.VaultManager, note obsidian.NoteManager, params FrontmatterParams) (string, error)
Frontmatter 是 "frontmatter" 命令的业务核心。 根据 Print/Edit/Delete 标志分别处理笔记的 YAML frontmatter。
func ListEntries ¶
func ListEntries(vault obsidian.VaultManager, params ListParams) ([]string, error)
ListEntries 是 "list" 命令的业务核心。 获取指定 vault 下某路径中的所有文件和文件夹列表。
func MoveNote ¶
func MoveNote(vault obsidian.VaultManager, note obsidian.NoteManager, uri obsidian.UriManager, params MoveParams) error
MoveNote 是 "move" 命令的业务核心。 流程:校验原路径和新路径 → 移动文件 → 更新 vault 中所有指向该笔记的链接 →(可选)打开新笔记。
func NormalizeContent ¶
NormalizeContent 将用户通过命令行传入的转义字符串还原为实际字符。 例如 "\n" 字符串会被转换为真正的换行符,方便在 shell 中输入多行内容。
func OpenNote ¶
func OpenNote(vault obsidian.VaultManager, uri obsidian.UriManager, params OpenParams) error
OpenNote 是 "open" 命令的业务核心。 根据 UseEditor 参数决定用编辑器直接打开文件,还是构造 Obsidian URI 唤起 Obsidian 应用。
func PrintNote ¶
func PrintNote(vault obsidian.VaultManager, note obsidian.NoteManager, params PrintParams) (string, error)
PrintNote 是 "print" 命令的业务核心。 读取笔记内容,如果指定了 --mentions,还会查找并格式化所有反向链接。
func SearchNotes ¶
func SearchNotes(vault obsidian.VaultManager, note obsidian.NoteManager, uri obsidian.UriManager, fuzzyFinder obsidian.FuzzyFinderManager, useEditor bool) error
SearchNotes 是 "search" 命令的业务核心。 流程:获取 vault 下所有笔记 → 使用模糊搜索让用户交互式选择 → 打开选中的笔记。
func SearchNotesContent ¶
func SearchNotesContent(vault obsidian.VaultManager, note obsidian.NoteManager, uri obsidian.UriManager, fuzzyFinder obsidian.FuzzyFinderManager, searchTerm string, useEditor bool) error
SearchNotesContent 是兼容旧版本的交互式入口,内部委托给 SearchNotesContentWithOptions。
func SearchNotesContentWithOptions ¶
func SearchNotesContentWithOptions(vault obsidian.VaultManager, note obsidian.NoteManager, uri obsidian.UriManager, fuzzyFinder obsidian.FuzzyFinderManager, searchTerm string, options SearchContentOptions) error
SearchNotesContentWithOptions 是 "search-content" 命令的完整业务核心。 支持交互式模糊选择、纯文本输出、JSON 输出、分页等多种模式。
func WriteNoteFile ¶
WriteNoteFile 向 notePath 写入内容,根据 shouldAppend 和 shouldOverwrite 决定行为:
- 文件不存在:直接创建并写入
- 文件存在且 shouldAppend=true:追加内容
- 文件存在且 shouldOverwrite=true:覆盖内容
- 文件存在且两者都为 false:不做任何修改
Types ¶
type CreateParams ¶
type CreateParams struct {
NoteName string // 笔记名称或路径
ShouldAppend bool // 是否在已有笔记末尾追加内容
ShouldOverwrite bool // 是否覆盖已有笔记
Content string // 要写入的文本内容
ShouldOpen bool // 创建后是否自动打开
UseEditor bool // 打开时是否使用编辑器
}
CreateParams 定义了 create 命令所需的业务参数。
type DailyParams ¶
DailyParams 定义了 daily 命令所需的业务参数。
type DeleteParams ¶
type DeleteParams struct {
NotePath string // 要删除的笔记路径
}
DeleteParams 定义了 delete 命令所需的业务参数。
type FrontmatterParams ¶
type FrontmatterParams struct {
NoteName string // 笔记名称或路径
Print bool // 是否打印 frontmatter
Edit bool // 是否编辑某个 key
Delete bool // 是否删除某个 key
Key string // 要操作的 key
Value string // 编辑时的新值
}
FrontmatterParams 定义了 frontmatter 命令所需的业务参数。
type ListParams ¶
type ListParams struct {
Path string // 要列出的目标路径(相对于 vault 根目录),空字符串表示根目录
}
ListParams 定义了 list 命令所需的业务参数。
type MoveParams ¶
type MoveParams struct {
CurrentNoteName string // 原笔记路径
NewNoteName string // 新笔记路径
ShouldOpen bool // 移动后是否自动打开
UseEditor bool // 打开时是否使用编辑器
}
MoveParams 定义了 move 命令所需的业务参数。
type OpenParams ¶
type OpenParams struct {
NoteName string // 笔记名称或路径
Section string // 要定位到的标题(heading),可选
UseEditor bool // 是否使用编辑器打开而非 Obsidian
}
OpenParams 定义了 open 命令所需的业务参数。
type PrintParams ¶
PrintParams 定义了 print 命令所需的业务参数。
type SearchContentOptions ¶
type SearchContentOptions struct {
UseEditor bool // 是否使用编辑器打开
EditorFlagExplicit bool // --editor 是否是用户显式传入的
NoInteractive bool // 是否禁用交互式选择
Format string // 输出格式:text 或 json
InteractiveTerminal bool // 当前是否在交互式终端中
Output io.Writer // 输出目标,默 os.Stdout
Page int // 分页页码
PageSize int // 每页结果数
}
SearchContentOptions 定义了 search-content 命令的高级选项。