-
能不能加个批量展开折叠的功能
2025-04-22 18:36 -
教程 --- 思源 ai 接入字节跳动 API(送 350Wtoken/dp 的 50 元额度,实测赠送余额和付费没有区别,一样快)
2025-03-06 11:20你这个 prompt 很牛啊,不过我生成的咋和你不一样。能多分享几个优质的 prompt 么
-
思源笔记插件丨文本处理插件:减少无谓的修改操作,改善复制粘贴体验
2025-03-01 13:44川哥有新问题,合并的块,被拆分的时候,按 F5 刷新,多有多余的块出现。
我是在保存的时候发现,重新打开内容不对才发现的这个 bug
-
数据库模板列代码求助
2025-02-25 17:16-
[王宝强](http://www.1905.com/mdb/star/553/ "王宝强")[刘昊然](http://www.1905.com/mdb/star/3029970/ "刘昊然")[周润发](http://www.1905.com/mdb/star/434/ "周润发")[白客](http://www.1905.com/mdb/star/3022158/ "白客")[张新成](http://www.1905.com/mdb/star/3152296/ "张新成") *
-
-
思源笔记插件丨文本处理插件:减少无谓的修改操作,改善复制粘贴体验
2025-01-19 18:38川哥,我有个需求啊,就是能否将选中的段落块中被标记的部分提取出来后,复制到文档的末端,按顺序排列。这样就可以结合你的高亮挖空插件生成试卷了。复制出来在文档末端的部分就相当于答案。我让 AI 写了段代码,可以提取整个文档中被标记的部分,但是怎么只提取选中块,还有在文档末端排序,就怎么也不成功,而且我不会开发插件。能不能帮忙实现一下。
// ... 其他代码保持不变 ... class U extends $.Plugin { constructor() { super(...arguments); x(this, "isMobile"); x(this, "settingUtils"); x(this, "topBarElement"); } async onload() { // ... 其他初始化代码保持不变 ... // 新增功能:复制被标记的文本到文档末端 this.eventBus.on("click-blockicon", this.handleBlockMenu.bind(this)); } // ... 其他方法保持不变 ... async handleBlockMenu({ detail: t }) { let n = t.menu; const s = []; // 新增功能:复制被标记的文本到文档末端 s.push({ label: "复制标记文本到文档末端", click: async () => { try { // 获取当前文档的 ID const currentDocId = t.protyle.block.rootID; // 获取当前文档中被标记的文本 const markedText = await this.getMarkedText(currentDocId); if (markedText) { // 将标记文本插入到文档末端 await this.insertTextToEnd(currentDocId, markedText); $.showMessage("标记文本已复制到文档末端"); } else { $.showMessage("未找到标记文本"); } } catch (error) { console.error("复制标记文本失败:", error); $.showMessage("复制标记文本失败"); } }, }); // ... 其他菜单项保持不变 ... n.addItem({ icon: "iconPaste", label: "文本处理", submenu: s }); } /** * 获取当前文档中被标记的文本 * @param {string} docId 当前文档的 ID * @returns {Promise<string>} 被标记的文本 */ async getMarkedText(docId) { const sql = `SELECT * FROM blocks WHERE root_id = '${docId}' AND markdown LIKE '%==%'`; // 查找包含标记(==)的块 const result = await $.fetchSyncPost("/api/query/sql", { stmt: sql }); if (result.code === 0 && result.data.length > 0) { // 提取所有标记文本 const markedTexts = result.data.map((block) => { const markdown = block.markdown; const matches = markdown.match(/==(.*?)==/g); // 匹配 ==标记文本== return matches ? matches.join("\n").replace(/==/g, "") : ""; // 去除标记符号 }); return markedTexts.join("\n"); } return null; } /** * 将文本插入到文档的末端 * @param {string} docId 当前文档的 ID * @param {string} text 要插入的文本 */ async insertTextToEnd(docId, text) { // 获取文档的最后一个块的 ID const sql = `SELECT * FROM blocks WHERE root_id = '${docId}' ORDER BY created DESC LIMIT 1`; const result = await $.fetchSyncPost("/api/query/sql", { stmt: sql }); if (result.code === 0 && result.data.length > 0) { const lastBlockId = result.data[0].id; // 在最后一个块之后插入新块 await D("markdown", text, null, lastBlockId, docId); } } } module.exports = U;
-
能否考虑在文件历史里增加另存为版本的功能,以永久保存某一时间历史
2025-01-17 09:48没有 github 账号,才看到回复,还是想争取一下。
@88250 给出的理由是用标记快照或者手动创建副本。
1.如果只是单个文档需要迭代,为此去标记整个快照,需要存档的快照太多了,会占用很多磁盘空间
2.如果手动创建副本,目录树会非常复杂,冗长。毕竟历史版本的使用率是相对低的,没必要存在文档树,也会给搜索提供干扰信息
88250 还提到单个文档设计到资源文件的问题,因为需求是我提的,我的使用场景基本不涉及到资源文件,因为需要迭代的文档,大部分是类似《产品使用说明》、制式文件、协议等纯文本内容。即便是个别文档涉及到资源变更,其实也影响不大,因为文本作为文档的主体,在迭代的时候是主要参考对象,只要存档了文字部分,资源部分即便要修改,也是脱离思源去修改后重新插入。所以影响有限。
所以我还是希望能提供文档历史,单独标记保存的功能。望考虑一下。
(能不能搞个投票投一下需求啊 😄 )
-
v3.1.19 导出 PDF 的时候,链接不能转成锚点希哈了嘛?
2025-01-16 14:19这是导出后的 PDF,论坛不能上传 PDF 文件,我改了后缀,看之前改回 PDF
这个是原文档,导出 PDF 后第一个引用可以跳转,第二个链接不可以
-
思源笔记插件丨脚注插件 v1.1.6 支持脚注数字编号啦
2025-01-13 18:20川哥,这个有没有可能将脚注的模板里,【注】这个链接,也可以选择是块引还是链接呢?因为如果是块引的话,适合制作本地电子书。导出 PDF 的时候,可以变成锚点希哈。现在是链接,导出 PDF 后点击没反应。
-
思源笔记油猴脚本 视频时间戳 + 截图
2025-01-13 15:46考虑可以自定义设置插入到指定文档下的子文档,目前可以手动修改代码实现
try { // 创建文档 const docData = { notebook: config.NOTEBOOK_ID, path: `/自定义/${title}`, markdown: content };
-
数据库模板在抓取文档对应块的内容时,遇到链接怎么只显示锚文本?
2025-01-09 12:25老师我没明白你的意思,我这抓取的是主键文档的内容块,就是抓取到后,它把原本带链接的文本,转成字符串了
我想抓的还是和原块,一样的样子
-
[js] 实现可手动修改数据库主键引用块的标题
2024-12-27 14:38老师,3.1.17 最新版思源笔记,内置了这个功能,但是有问题,导致主键不能取消绑定块了。你能看到是什么问题嘛?我回退到 3.1.16 可以正常取消,您的 JS 还是好用一些。你要是找到问题可以提交一下,帮助下个版本改进 😄
我还发了 BUG 的视频 数据库 3.1.17 取消不了绑定?
-
QueryView 插件的视图玩法——统计每月阅读量
2024-12-26 13:26你说的有道理,但是做好备份应该可以避免啊。还有个问题就是,你想分享的时候怎么办,数据库视图导出的时候好像不能显示吧
-
QueryView 插件的视图玩法——统计每月阅读量
2024-12-25 19:21我还以为他是从“渐进学习”学习的插件里面读取的数据,手动给每个文档做标记也太恐怖了,大佬有没有可能从渐进式读书直接读取现成数据啊,能读到已看分片和总分片就行。再或者直接读取他的进度