-
为什么在使用 s3 备份后,快捷键没有同步过来呢
2024-12-30 11:57是的。具体到快捷键配置在
conf/conf.json
文件里,安装的主题在conf/appearance/themes
里。同时conf.json
文件里面还有其他的设置,可以自己看看。 -
提一些如何改进思源笔记的意见
2024-12-30 11:37我依照自己的理解解答部分问题,或许有错漏的地方,希望谅解或指出问题。
7 插入 iframe 不要出现滚动条
这个我没有测试过,不过在 HTML 里插入 iframe 本身就会按原大小显示,按框架宽度显示页面需要原本的页面支持才行
8 属性名只能用英文不能用中文望改进
这个是因为属性名在前端是作为元素的属性存在的,而 HTML 标签中的元素属性名是不支持中文的,这个是 HTML 规范限制的
13 表格自适应编辑器的宽度,避免横向滚动
自适应编辑器的宽度我一时想不起来行不行了,不过横向滚动操作可以通过 shift+ 滚轮来完成,表格、数据库这些地方都可以
15 标签不使用下划线的形式,使用#标签这种格式
修改默认主题到这种样式我认为可以,不过已经有主题实现了,优先推荐使用主题
16 添加看板功能
印象里在开发计划中,但是什么时候上线不能保证
17 新建文档的时候打开新页面,不要替换当前浏览的文档
这个在设置里面有一个选项是打开新文档时替换当前文档,切换那个设置就可以了
回复 重启思源笔记之后保持文档树状态
现在就是这样的,更新了几个版本了,可以更新思源笔记之后试试
回复 拖动文档时不需要经过一个文档 UI 就变化一下
因为现在鼠标悬浮的地方有 hover 样式指示当前要将文档放入的地方,如果去掉这个样式会导致拖动文档没有鼠标下那个蓝色的高亮样式,显然不合适。而 CSS 自动重绘是固定的行为,不管什么浏览器都是这样的
-
升级到最新版本后默认字体变成粗体了,怎么才能变回去?
2024-12-25 17:04有使用主题吗?还是有使用字体插件?默认的字体应该是没问题的。近几次更新应该只改了 emoji 的字体,大概不会影响到界面字体。
-
求超链接下划实线,一直现实的 css
2024-12-25 10:40.protyle-wysiwyg span[data-type=a] { border-bottom: 1px solid; }
把这个放进 设置 - 外观 - 代码片段 里面,新建 css 代码并且启用。
-
更新到 3.1.17 后 S3 同步一直失败
2024-12-24 23:49我翻译一下报错信息:
S3 操作错误:删除对象,解析认证方案:解析接入点(?):接入点规则错误,无效地域:地域不是有效的 DNS 名称(提供者:S3)
你检查一下你的 S3 配置有没有哪里出了问题,或者你的后端服务提供商改了连接参数?或是短暂的网络问题,等一会重试吧。
-
API 获取并处理块的一些疑问
2024-12-24 14:22经过研究和 V 大在 issue 的回复,现在整理出要更新块使用的插件 API。
// 代码在插件环境中使用,这里略过前面的处理,直接到提交事务部分 // 这部分代码本来不是一个方法,这里封装过了 // 仅需要更新一个块 function updateOneBlock(blockId: string, updatedDom: string, originalDom: string, protyle: Protyle["protyle"]) { // protyle是{detail}获取的detail.protyle,这里获取当前编辑器的实例 // blockId是{detail}获取的当前块的块id,仅适用于一个块 // updatedDom和originalDom是修改后的Dom和修改前的Dom,用于撤回操作 protyle.getInstance().updateTransaction(blockId, updatedDom, originalDom); // 操作后需要等待操作完成刷新界面,但是这部分获取有点问题,不知道什么时候事务完成 // 如果使用getIns().isuploading()获取,好像无法判断当前是否完成事务 // 这里刷新界面,建议自行设置延时,示例中不进行处理了 protyle.getInstance().reload(true); } // 需要更新多个块 function updateMultiBlock(doOperations: IOperation[], undoOperations: IOperation[], protyle: Protyle["protyle"]) { // 这里的protyle不变 protyle.getInstance().transaction(doOperations, undoOperations); // 这里用到的do和undo分别是自行封装的IOperation数组,其中的action是必须项,可用id标识修改块,data标识更新前后的dom // 可参考前面Achuan-2给出的/api/transactions代码,不过需要单独处理do和undo // 之后要不要刷新还没有进行测试,这里给出刷新代码 protyle.getInstance().reload(true); } // 封装doOperation和undoOperation的方法 // 这里只收一组数据,多组数据请自行处理 function setTrans(blockId: String, updatedDom: string, originalDom: string) { let doOperations: IOperations[] = []; let undoOperations: IOperations[] = []; doOperations.push({ action: "update", id: blockId, data: updatedDom }); undoOperations.push({ action: "update", id: blockId, data: originalDom }); let transaction = [doOperations, undoOperations]; return transaction; }
这里给出的基本上都是思路,具体实现需要根据使用环境进行修改。
撤回需要从 eventBus 获取当前的 protyle 实例,即
detail.protyle.getInstance()
,用这个实例提交事务updateTransaction
或者updateBatchTransaction
,或是直接使用transaction
提交自己封装好的 do 和 undo 操作。在 do 和 undo 操作或者事务
updateTransaction
中需要提交修改前后的 dom,以此写入撤回栈,完成撤回操作。如果直接通过/api/transactions
调用事务无法写入前端的撤回。如果不获取当前的
protyle
实例而直接使用Protyle.prototype.updateTransaction
来提交事务,可以更新块但是无法写入撤回栈。调用后端 api 和使用插件
Protyle
api 只能二选一,并且任何时候如果将要修改的块 id 传入到blockId
属性会立即触发数据错误弹窗(退出 or 重建索引)。而传入id
属性不会。对于非更新操作也可类推。
-
API 获取并处理块的一些疑问
2024-12-23 19:43大佬,抱歉打扰一下,我发现
/api/transactions
进行的 update 操作(见 Achuan-2 的回帖)突然就没有写入块 protyle 的undo
属性,导致撤回操作不能生效。请问这个应该怎么排查问题,代码和实现思路基本上和代码块一致。还是说应该检查一下思源的 respond 来判断有没有成功更新?
在 protyle 里面的
transactionsTime
、undo
、updated
这些变量都没有更新,还保持着更新前的状态。 -
v3.1.16 导出相关问题
2024-12-23 17:43 -
求助个人 Server 如何读取 S3 数据
2024-12-23 12:57云端存储的数据都是加密过的,你想在云端看到数据是做不到的。
可以看一下集市里面的发布助手插件,可以把笔记发布到个人博客。可以配合 picgo 插件上传本地图片。
-
思源从 AI 复制出来的数学符号无法识别渲染的一种解决方法
2024-12-22 22:45集市里我记得这几天刚上了个插件可以对粘贴的文本进行操作,说是可以把 latex 格式转成 katex 格式粘贴,可以试试
-
更新版本後之前修改的 css 失效了
2024-12-22 11:18 -
更新版本後之前修改的 css 失效了
2024-12-22 11:13如果是放在代码片段里面的理论上不应该会失效,如果是修改了 css 文件的话有可能会跟着版本更新修改文件,这时候就有可能失效。
如果先前是修改了文件的话建议在代码片段里面写。就是设置-外观-代码片段-css,这里就是普通的 css 格式就可以了,写完记得启用。
-
剪藏相关疑问
2024-12-21 19:20剪藏需要浏览器插件,在浏览器这边用插件发起剪藏(思源在运行中),完毕之后在选中的笔记本下能够看到刚刚剪藏的内容。移动端需要支持扩展的浏览器并且思源在运行中。