2021-08-21-补记Wiznote Lite开源代码阅读相关内容-6-Wiznote Lite开源版本前端存在的问题
1.Wiznote Lite的bug描述
对Wiznote Lite代码剖析后,我在前端react部分增加了输入密码的环节,后端electron传递该参数至wiznote-sdk-js模块中,最终实现了对云端数据加密、本地数据不加密的魔改。
然而,在使用中发现了一个bug,该bug即使我用github上原版的进行编译,编译成功后也同样存在。应该是react部分存在一些问题,像是又将markdown变成了html 。
当时该bug的记录如下:
当前遇到两个bug。
web端loadNote/getNoteMarkdown、saveNote/setNoteMarkdown等,electron端通过调用wiznote-sdk-js的接口传递回后,在electron端输出笔记内容都正常转为markdown内容,但在web端显示时出现错误,具体体现为:
- 虽然html端已经将
&
,<
,>
转化为了&
,<
,>
,但在web端仍然显示回了&
,<
,>
,这样在重新保存时会将错误的内容写回本地。再次读取时本地也出现错误:本地html原始为&
->&amp;
,<
->&lt
,>
->&gt
,再次读取时web端同本地html内容。- 在本地html中双引号为
"
, web端显示为&qout;
,同样是变成了html的格式。在输出时看到,electron在wiznote-sdk-js输出时结果都是正常的,应当是web的问题。准备通过浏览器调试web端,但单独web端浏览器调试时,使用OnlineApi作为接口,而OnlineApi不完全(已经增加了一部分接口),导致浏览器载入时出问题,暂时无法调试。
后续可能继续尝试通过增加OnlineApi的接口。
否则则可以尝试换过去版本编译测试,或者在github上提issue。
这里“html端”的意思是本地数据保存成html的形式。
单独调试web端(npm run react-start
),虽然增加了几个OnlineApi中函数,但还未完全解决,现在看到的情况是界面出现后,很快变成如下状态(2021-08-21:还未继续修改):
2.bug截图
- 使用自改加密版本写的时候,发现bug:
note_data.ts中:
node_modules/wiznote-sdk-js-share/src/note_analysis.ts:
meta:这里出现双引号bug。为什么读出来时没有替换成功?不对,替换成功了,只是没有包含双引号的替换。这是这个项目的bug。
- 第二次发现bug:
3. bug测试日志
使用log打印出前端react在调用后端数据时,后端传递的实际数据,发现读取数据是正常的。
以下为2021年8月5日补充测试现象。
**现象**:倒数第二行的大于号,db读取输出仍然正常,web端显示出问题,再次修改保存则本地端原先内容也出现问题。
[2021-08-02 17:37:37.907] [info] xxxxx sync done
[2021-08-02 17:37:39.358] [info] In db.getNoteMaarkdown:markdown = # 测试html markdown问题
<
this.lafdjlafj->->
dsfsf
<
T
SSDSATDSFSFS
>
<
[2021-08-02 17:39:45.637] [info] In db.getNoteMaarkdown:markdown = # 测试html markdown问题
<
this.lafdjlafj->->
dsfsf
<
T
SSDSATDSFSFS
<
<>