sunsonliu

Results 275 comments of sunsonliu

https://github.com/user-attachments/assets/2b9e7dab-9ab1-4eb8-a34c-0103bdd75302 额,还是不行哦。。。测试代码如下: ``` cherryObj.setMarkdown("输入内容"); // 在字符串随机位置插入字符 function insertStr(soure, index, str) { return soure.slice(0, index) + str + soure.slice(index); } setTimeout(()=>{cherryObj.setMarkdown(insertStr(cherryObj.getValue(), Math.floor(Math.random() * cherryObj.getValue().length), " hello "),1);},5000); setTimeout(()=>{cherryObj.setMarkdown(insertStr(cherryObj.getValue(), Math.floor(Math.random() * cherryObj.getValue().length),...

![img](https://private-user-images.githubusercontent.com/998441/481471294-0fb33abf-0d05-4945-98ea-c70764d3d085.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTYyNjQwNDYsIm5iZiI6MTc1NjI2Mzc0NiwicGF0aCI6Ii85OTg0NDEvNDgxNDcxMjk0LTBmYjMzYWJmLTBkMDUtNDk0NS05OGVhLWM3MDc2NGQzZDA4NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwODI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDgyN1QwMzAyMjZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1jZmRhOGJjZTllYzQ2NzczZmE2YzE5NDJlMjI5OGFkNDIzYzhlOWY1MjM0MjIyZTAyNmMxYmZhN2ZhOWIxZTRkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.qaxNzdIwb4d7AWXpJ1z2IxSYY7qqBmPrW_16WdnKN04) 额,这不是“获取新输入的内容”的问题,是需要利用OT算法根据三个版本的内容拿到最终变更结果的问题,这三个版本内容分别为:V1 上一次服务器下发的版本;V2 本地文档最新内容;V3 当前服务器下发的版本。 通过 diff1 = V2 - V1; diff2 = V3 - V1; diffTarget = merge(diff1, diff2),获取最终版本 VTarget = V2.patch(diffTarget),然后 通过 cherry.setMarkdown(VTarget , 1) 完成更新。这一步就是上面流程图里的**第12步**和**第13步**的工作。 具体的如何获得diff,如何解决diff冲突,如何将最终diff更新到文档里,基本都是OT算法的核心能力了,可以了解下OT算法并应用哈。 另外需要注意,**第7步**服务端也要通过OT算法解决冲突哈。

https://github.com/yjs/yjs 可以参考这个哈(这个并非单纯的OT算法的实现,而是有自己的一套机制,但似乎据说性能反而更高)

确定这个content是符合预期的吗?

视频里的信息太少,看不出来问题,建议先确认每次更新时的内容是否符合预期哈

https://github.com/user-attachments/assets/5e50efc6-3914-42b9-82fe-a28be0c8736b 这边试了下是ok的。。。

https://prismjs.com/test#language=bash 在prism官网没有重现出来,推测升级prism版本可破

感谢反馈,确实有个OpenAI的配置( https://github.com/Tencent/cherry-markdown/blob/dev/packages/cherry-markdown/src/Cherry.config.js#L158 ),可以尝试下是否满足要求哈。 不过确实可以考虑再增强下我们对LLM的支持

这个我在dev分支本地试了下,并没有重现出来(Chrome 版本 106.0.5231.2),可能需要提供更多的信息来定位~

可以许愿不🤭,新搜索可以考虑支持 正则搜索、正则替换、在命中处插入光标 等高阶功能