actions

package
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
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

func NormalizeContent(content string) string

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

func WriteNoteFile(notePath, content string, shouldAppend, shouldOverwrite bool) error

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

type DailyParams struct {
	Content   string // 要追加到日记的内容
	UseEditor bool   // 是否使用编辑器打开
}

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

type PrintParams struct {
	NoteName        string // 笔记名称或路径
	IncludeMentions bool   // 是否在末尾附加显示反向链接
}

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 命令的高级选项。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL