Closed ksyx closed 3 months ago
感觉是offset计算出了点问题,这个页面上很多部分都没有成功注入offset
感觉是offset计算出了点问题,这个页面上很多部分都没有成功注入offset
是,这个感觉目前还没有什么好的改进方案
maybe可以对于这个case针对性地锤一下。我预期页面里面应该90%的元素是可以评论的。这个页面里面绝大部分都评论不了,是一个比较alerting的信号
maybe可以对于这个case针对性地锤一下。我预期页面里面应该90%的元素是可以评论的。这个页面里面绝大部分都评论不了,是一个比较alerting的信号
好,这个我重点关注下
ksyx 你好,感谢你的反馈!现已查明这是由于 offset 计算插件的一个缺陷导致的问题:
该插件会维护一个 last_processed_line_idx
字段,用于标明当前块处理器已处理到的原文件行数,这是为了避免块被重复消费而引入的;在后续版本中,引入了一个 parseBlocks
流程,该流程用于预渲染指定块,以确认该块是否是一个单独的块(还是后续有其他块也属于该块)。此 parseBlocks
函数会递归调用本插件的块处理器,但由于 last_processed_line_idx
在该函数调用之前已更新,因此此函数预期在本插件的块处理器中直接被跳过,而不会有任何效果。
然而在 lang/pas-cpp
页面中,当处理到 - [附 A:Pascal 与 C++ 运算符与数学函数语法对比表](#附-apascal-与-c-运算符与数学函数语法对比表-pascal-vs-c-operator-syntax-table)
(原文件第 17 行)时,该处理器错误的选取了内容完全相同但位于原文件第 222 行的内容,并据此更新了 last_processed_line_idx
,由此导致此两行之间的所有块未被正常解析。
目前引入了 is_in_prerender
标志,当进入预渲染流程时,直接跳过本块处理器,问题已经得到解决。目前尚未观察到由此产生的其他问题,如果有相关问题,请随时提出新的 issue,谢谢。