1776654103

This commit is contained in:
Docker7530
2026-04-20 11:01:47 +08:00
parent ab41c81a53
commit 6b50219f55
209 changed files with 1922 additions and 1467 deletions
-123
View File
@@ -1,123 +0,0 @@
# 闪念
```
<%*
// 查找当前日期对应的文件
const file = tp.file.find_tfile(tp.date.now("YYYY-MM-DD"));
if (!file) {
// 如果没有找到对应的文件,弹出通知
new Notice("No Daily Note Found!");
return; // 早期返回,避免更深的嵌套
}
// 弹出提示框,获取用户输入的日记内容
const loggedItem = await tp.system.prompt("What's Up?");
if (loggedItem === undefined || loggedItem === null || loggedItem.trim().length === 0) {
// 如果输入为undefined、null、空串或仅包含空格,不执行任何操作,弹出通知
new Notice("Input is empty or invalid!");
return; // 早期返回,避免更深的嵌套
}
// 获取当前时间
const time = tp.date.now("HH:mm");
// 读取文件内容,并按行分割成数组
const content = (await app.vault.read(file)).split("\n");
// 找到“# 杂记”标题的位置
const index = content.indexOf("# 杂记");
// 检查“# 杂记”标题下一行是否为空行
if (content[index + 1].trim() === "") {
// 如果下一行是空行,就在空行下添加新内容
content.splice(index + 2, 0, `- ${time} - ${loggedItem}`);
} else {
// 如果下一行不是空行,就先添加一个空行,然后添加新内容
content.splice(index + 1, 0, "", `- ${time} - ${loggedItem}`);
}
// 将修改后的内容写回文件
await app.vault.modify(file, content.join("\n"));
-%>
```
# 问题记录模板
```
<%*
// 弹出提示框获取文件标题
const title = await tp.system.prompt("Enter file title");
// !!!!!!!!!!!!!!!!每个人自定义区域!!!!!!!!!!!!!!!!
// 定义待创建文件的目录
const inboxDirectory = "000-Inbox";
// 定义文档中会用到的特定标题,方便将来修改
const detailHeader = "# 问题详情";
// !!!!!!!!!!!!!!!!每个人自定义区域!!!!!!!!!!!!!!!!
// 检查用户输入的标题是否有效(非空且非纯空格)
if (!title || title.trim().length === 0) {
new Notice("Title is empty or invalid!");
return; // 如果标题为空或无效,则显示通知并停止执行
}
// 获取当前日期并格式化为 YYYY-MM-DD 用于文件属性
const currentDate = tp.date.now("YYYY-MM-DD");
// 获取当前时间并格式化为 HH:mm 用于文件属性
const currentTime = tp.date.now("HH:mm");
// 获取当前日期并格式化为 MMDD 用于文件名前缀
const datePrefix = tp.date.now("MMDD");
// 构造待写入新文件中的内容,使用 YAML front matter 和 Markdown 格式
const content = `---
日期: ${currentDate} ${currentTime}
来源:
---
# 问题详情
# 处理过程
# 总结
`;
// 根据日期前缀和用户输入的标题构造文件名
const myFilename = `${datePrefix}-${title}`;
// 尝试创建新文件并写入构造好的内容
try {
await tp.file.create_new(content, myFilename, false, app.vault.getAbstractFileByPath(inboxDirectory));
new Notice("File created successfully!"); // 如果成功,弹出通知
// 根据文件名和目录获取新创建的文件
const createdFile = app.vault.getAbstractFileByPath(`${inboxDirectory}/${myFilename}.md`);
// 获取新窗口叶节点
const leaf = app.workspace.getLeaf(true);
// 在新叶节点中打开新创建的文件
await leaf.openFile(createdFile);
// 等待新视图加载完成
await leaf.view.awaitingView;
// 获取编辑器实例
const editor = leaf.view.sourceMode.cmEditor;
// 寻找文件中的特定标题行
const line_number = editor.lastLine();
for(let i = 0; i <= line_number; i++) {
const line = editor.getLine(i);
if(line.includes(detailHeader)) { // 如果找到指定的标题行
// 将光标移动到该标题下一行的开始位置
editor.setCursor({line: i+2, ch: 0});
break;
}
}
} catch (e) { // 如果尝试创建或打开文件出现错误
new Notice("Failed to create or open file: " + e.message); // 弹出错误通知
}
-%>
```
+7 -5
View File
@@ -1,11 +1,13 @@
要在 Windows 系统上测试 Obsidian 的 `x-callback-url` 功能,可以创建一个简单的场景,在该场景中,你将使用浏览器(如 Edge 或 Chrome)来构造 URL 请求,并利用 Obsidian 和一个 web 服务(比如用一些免费在线服务作为 `x-success` 回调目标)来测试。以下是一个可以直接体验的步骤:
## x-callback-url 使用方法
# 准备工作
创建一个简单的场景,在该场景中,使用浏览器来构造 URL 请求,并利用 Obsidian 和一个 web 服务(比如用一些免费在线服务作为 `x-success` 回调目标)来测试。以下是一个可以直接体验的步骤
### 准备工作
1. **确保已安装 Obsidian** 并且已经在本地创建一个名为 `TestVault` 的笔记库。
2. **确认 Obsidian 可以处理 URL Scheme**:在 Obsidian 中,启用 `URI` 插件(如果有),确保它能接收 `obsidian://` 协议的链接。
2. **确认 Obsidian 可以处理 URL Scheme**:在 Obsidian 中,启用 `URI` 回调功能,确保它能接收 `obsidian://` 协议的链接。
# 测试步骤
### 测试步骤
1. 打开浏览器,复制并粘贴以下 URL 到地址栏中,然后回车:
@@ -27,7 +29,7 @@
4. **查看回调结果**
- 回到 `Webhook.site` 页面,你会看到 Obsidian 请求回调的详细信息,包括笔记的名称和相关信息。
# 结果
### 结果
- 如果操作成功,你应该会在 Obsidian 中的 `TestVault` 笔记库中看到一个名为 `TestNote` 的新笔记。
- 同时,在 `Webhook.site` 上可以查看到一个包含 `name` 参数的请求,比如: