# 闪念 ``` <%* // 查找当前日期对应的文件 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); // 弹出错误通知 } -%> ```