Open beanliu opened 1 year ago
补充下具体的workaround diff(注意''不是空格):
diff --git a/src/background/modules/bg-popup-process.ts b/src/background/modules/bg-popup-process.ts
index 297be71..d690a3f 100644
--- a/src/background/modules/bg-popup-process.ts
+++ b/src/background/modules/bg-popup-process.ts
@@ -107,9 +107,9 @@ function addMarkedData(mark: any, markedData: any, footnoteContent: string) {
/* 生成替换字符串 */
if(imgSrc) { // 图片
let insert1 = '', insert2 = ''; // 非行内图片单独占行(即使它与文字一起标注)
- if(!isInlineImg && markText.indexOf('[插图]') > 0) // 不为行内图片且'[插图]'前有内容
+ if(!isInlineImg && markText.indexOf('') > 0) // 不为行内图片且'[插图]'前有内容
insert1 = '\n\n'
- if(!isInlineImg && markText.indexOf('[插图]') != (markText.length - 4)) // 不为行内图片且'[插图]'后有内容
+ if(!isInlineImg && markText.indexOf('') != (markText.length - 1)) // 不为行内图片且'[插图]'后有内容
insert2 = '\n\n'
replacement = `${insert1}![${alt}](${imgSrc})${insert2}`
}else if (footnote) { //注释
@@ -119,14 +119,14 @@ function addMarkedData(mark: any, markedData: any, footnoteContent: string) {
footnoteContent += `<p id="${footnoteId}">${footnoteNum}. ${footnote}<a href="#${footnoteId}-ref">↩</a></p>\n`;
}else if (code) { //代码块
let insert1 = '', insert2 = ''
- if(markText.indexOf('[插图]') > 0) //'[插图]'前有内容
+ if(markText.indexOf('') > 0) //'[插图]'前有内容
insert1 = '\n\n'
- if(markText.indexOf('[插图]') != (markText.length - 4)) //'[插图]'后有内容
+ if(markText.indexOf('') != (markText.length - 1)) //'[插图]'后有内容
insert2 = '\n\n'
replacement = `${insert1}${Config.codePre}\n${code}\n${Config.codeSuf}${insert2}`
}
if (replacement) { // 替换
- markText = markText.replace(/\[插图\]/, replacement);
+ markText = markText.replace(//, replacement);
if (abstract) mark.abstract = markText; // 新字符串赋值回 mark
else mark.markText = markText;
} else console.log(mark, markedData);
@@ -147,7 +147,7 @@ export function addRangeIndexST(marks: any, markedDataLength: number) {
let {abstract, range: markRange} = marks[i];
let markText = abstract ? abstract : marks[i].markText;
// 获取当前标注中的“[插图]”位置
- let indexes = getIndexes(markText, '[插图]');
+ let indexes = getIndexes(markText, '');
let markedDataIdxes = [];
// 遍历当前标注中的“[插图]”位置
for (const idx of indexes) {
diff --git a/src/content/modules/content-markedData.ts b/src/content/modules/content-markedData.ts
index ed191df..9a33963 100644
--- a/src/content/modules/content-markedData.ts
+++ b/src/content/modules/content-markedData.ts
@@ -94,14 +94,14 @@ function countTargets() {
if(sectionListItem_title && sectionListItem_title.textContent == curChapTitle){
console.log("找到当前章节的标注");
foundChap = true;
- if ($(element).text().indexOf('[插图]')>=0) {
+ if ($(element).text().indexOf('')>=0) {
targetCnt++;
}
}else if(foundChap == true && sectionListItem_title
&& sectionListItem_title.textContent != curChapTitle){
break; // 不再属于当前章节,退出循环
}else if(foundChap == true){ // 本章内的内容
- if ($(element).text().indexOf('[插图]')>=0) {
+ if ($(element).text().indexOf('')>=0) {
targetCnt++;
}
}
感谢反馈。我这里看好像还是在用“[插图]”做占位符,不过我添加了一个配置项,如果确实有变动,可在配置项中自定义。
添加了一个配置项,如果确实有变动,可在配置项中自定义。
取决于这个变化背后具体的原因,理论上还存在这么一种情况:两个占位符同时存在于一本书的不同标注中。如果没有更好的信息获取渠道来确认,或许可以先等等看有无更多类似反馈。
感谢作者花时间开发并开源维护这个项目,相当好用🙏
扩展是否为最新版本(与扩展商店中的版本相同)
出现该问题的书本及章节(不方便公开的话可直接发邮箱告知)
贝叶斯的博弈
描述问题
导出标注时,文字当中包含的数学符号图片无法转换成Markdown的图片链接。
复现步骤
随意标注一段带符号图片的文字,然后导出本章标注。
期待的正常行为
数学符号图片应当被转换成对应的Markdown链接。
额外信息
尝试debug了下这个问题,发现可能是
/book/bookmarklist
接口行为变化导致的,具体而言是包含插图的标注数据格式变化。 比如一段包含插图的标注 "这个公式[插图]表明..." 在这个接口下变成 "这个公式表明...",其中 "[插图]" 变成了一个 U+FFFC,导致相关处理代码无法插入图片链接。 把bg-popup-process.ts
以及content-markedData.ts
中相关的逻辑做相应调整并本地测试了下可以解决这个问题,但我不确定这个问题是否具有广泛性,所以在这里先提个 issue 周知下,如果有遇到相同问题的人可以尝试下这个 workaround。