Real-Fruit-Snacks/Tidemark

GitHub: Real-Fruit-Snacks/Tidemark

一款 Obsidian 插件,通过 YAML frontmatter 中定义的变量和 Mustache 风格语法实现 Markdown 文档的变量替换与实时高亮。

Stars: 0 | Forks: 0

# Tidemark **一款通过 YAML frontmatter 在 Markdown 中进行变量替换的 Obsidian 插件。** [![License: MIT](https://img.shields.io/badge/License-MIT-cba6f7.svg)](LICENSE) [![Version](https://img.shields.io/badge/version-1.0.0-89b4fa)](https://github.com/Real-Fruit-Snacks/Tidemark/releases) [报告问题](https://github.com/Real-Fruit-Snacks/Tidemark/issues)
## 概述 Tidemark 是一款**用于 Obsidian 的变量替换插件**。在 YAML frontmatter 中定义变量,在文档的任何位置使用 `{{variable}}` 语法引用它们,然后只需一条命令即可复制或替换。变量在编辑器中会进行颜色标记,让你一眼就能看出哪些已定义、哪些回退到默认值、哪些缺失。 核心引擎解析 YAML frontmatter,处理嵌套的点表示法(dot-notation)和合并的数组,并输出 CodeMirror 装饰以实现实时的语法高亮。 ## 核心功能 - **Mustache 风格语法**:使用 `{{variable}}`、`{{variable:default}}` 和 `{{nested.path}}` 来引用 frontmatter 的值。 - **9 项面板命令**:按行、选区或整个文档复制或永久替换变量。 - **实时语法高亮**:CodeMirror 装饰根据状态为变量进行颜色标记(绿色 = 已设置,橙色 = 回退到默认值,红色 = 缺失)。 - **嵌套属性与数组**:支持嵌套 YAML 结构的点表示法(dot-notation)和自动数组合并。 - **可配置的分隔符**:自定义开启/结束分隔符、默认分隔符以及缺失值的文本。 - **跨平台**:在桌面端、iOS 和 Android 上提供全面支持。 ## 快速开始 / 安装 ### 社区插件(推荐) 1. 打开 Obsidian 设置并导航到“社区插件”。 2. 浏览并搜索“Tidemark”。 3. 点击安装并启用。 ### 从源码构建 前置条件:**Node.js 18+** ``` git clone https://github.com/Real-Fruit-Snacks/Tidemark.git cd Tidemark npm install npm run build cp main.js manifest.json styles.css /path/to/vault/.obsidian/plugins/tidemark/ ``` ## 使用说明 1. 在任意笔记中添加包含所需变量的 YAML frontmatter。 2. 在文档正文中使用 `{{variable}}` 语法引用它们。 3. 打开命令面板(`Ctrl/Cmd+P`)并搜索“Tidemark”以访问所有可用命令: - **复制当前行(已替换)**:复制光标所在行并填入变量。 - **复制选区(已替换)**:复制选中的文本并填入变量。 - **复制文档(已替换)**:复制整篇笔记并填入变量。 - **在选区中替换**:在选中的文本中永久替换变量。 - **在文档中全部替换**:在整个文档正文中替换所有变量。 - **列出所有变量**:查看并编辑按状态分类的所有变量。 ## 架构 / 文件结构 ``` Tidemark/ ├── src/ │ ├── main.ts Plugin entry and command registration │ ├── variableReplacer.ts Core replacement engine │ ├── frontmatterParser.ts YAML frontmatter extraction │ ├── decorationProvider.ts CodeMirror syntax highlighting │ ├── types.ts TypeScript interfaces │ ├── commands/ Command handlers │ └── utils/ String helpers and YAML utilities ├── manifest.json Obsidian plugin manifest ├── esbuild.config.mjs Build configuration ├── styles.css Plugin styles └── docs/ GitHub Pages site ``` 变量解析是一个基于 `(text, frontmatter, settings)` 的纯函数,没有外部可变状态。高亮装饰反映了相同的解析器,因此你在编辑器中看到的内容就是你在复制或替换时得到的内容。 ## 贡献 我们欢迎各种贡献!请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解有关如何帮助改进项目的指南。同时请务必阅读我们的 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。 ## 许可证 本项目基于 [MIT 许可证](LICENSE) 授权。
标签:Markdown, Obsidian插件, YAML, 代码编辑器, 变量替换, 安全库, 效率工具, 自动化攻击