Milkyway-Cloze-Plus:对Milkyway-Cloze 的 功能升级 【双语阅读,生词辅助】


image
可添加用户,每个用户单独的 badList;互不干扰;
待测试后,更新至github;

GitHub Page已更新;更新后,控制台会报错
解决办法:

  • F12 - 应用程序 - 本地存储 - https://mingri159.github.io - badList;右键 复制值 至记事本(暂时保存);
  • badList 这一项右键删除后,刷新页面;
  • 将记事本中暂存的内容,复制到输入框,点【导入badList】即可恢复;

另一种方法,控制台写入以下代码,回车,刷新页面;

var users = ["default"]; //初始化用户
localStorage.setItem("all-users", JSON.stringify(users));

主要原因是读取不到localStorage的 all-users,本次更新新加的数据,以前没有,js代码读不到数据,就不继续执行了;
用代码写进去;刷新页面后,检测到数据,程序就不会卡住了;

1 个赞

最新版是不是有问题,我更新后点击都没反应。试了一下github上的静态网页版也是一样,绝大多数按钮点击后都没反应。

按#63步骤,可恢复

没咋看明白,不过我换浏览器到edge就OK了

帮我测试一下另外一种方法,控制台写入以下代码,回车,刷新页面;

var users = ["default"]; //初始化用户
localStorage.setItem("all-users", JSON.stringify(users));

我之前折腾chrome的时候把一周的浏览器数据给清了,然后已经能正常运行MCP。
在console里运行了一下这两行,报了个错“Uncaught SyntaxError: Identifier ‘users’ has already been declared”。

1 个赞

上一条最开始写的是let,我试了报错,又编辑成了var ,不知怎么又变回了let;
能用就好;

加了检测localStorage的 all-users,没有的话自动写入;
#63楼 问题已修复;

总感觉badList怪怪的 :smile:,起个masteredList、knownListt等等…

用badList是相对简便的方法;
名称是延续了Milkway-Cloze原项目的;

也有道理;那就改用knownList吧;

友情提示:

那今晚(11.1)10:30更新吧,请提前导出正在使用的badList(以防万一);
【只要不刷新网页,都还是可以使用的】
【明天把badList重新导入就行了】(以防万一)
【导入前,可先查看转换后的结果,如果数据一致就不用导入了】
【虽然也会用程序把 localStoragebadList 转换为 knownList

1 个赞

1 个赞

输入框初始字体

由于可导入txt文件json文件,所以上方输入框的存在意义已经淡化了;也设置了调整字体的按钮;还有用于隐藏顶部区域的【:balloon:Nav +

冒泡提示;
熟词列表;

加了图标后,按钮作用应该很明显了,熟悉使用就行了;

直接通过鼠标左键或右键在左侧窗口双击单词 标为生词。比复制了粘在上边窗口,然后加入badList列表要省事啊。

吐槽:这是一句话还是两句话啊,这个【比】字,使句子意思好怪哦

直接通过鼠标左键或右键在左侧窗口双击单词 标为生词。

这个 暂时搁置;
左键双击,目前可以将未标注的词,标注为红色、获取网络发音、复制到剪贴板;

比复制了粘在上边窗口,然后加入badList列表要省事啊。

生词弹窗右侧释义列表,右键单击【黄色的单词(标注的生词)】可直接屏蔽;Ctrl+Z 可撤回屏蔽;

1 个赞

就你吐槽的那句,【比】的前面掉了个对前句的代词【这】或【这样】 :smile:,这样也好,可以体验下别人困惑的感觉。
生词弹窗右侧释义列表 ,右键单击【黄色的单词(标注的生词 )】可直接屏蔽 是把生词变成熟词,只是希望有个快捷的标注生词的操作(Ctrl+Z也只能把刚变屏蔽的再放开)。

不管怎样,还是很感谢分享免费开源的软件!!

我的意思是前面在说“标为生词”,后面又说 “加入badList”,这是两个东西,不是同一类型的;我的意识里无法做比较,所以觉得怪;嘛,现在倒是清楚了你的意思了;

如果是变成黄色字体那样,可以很容易做到,但标注出来,没意义,
(双击的效果由原来的)红色改黄色?
这个红色的单词,当导出为json文件时,也会一同保存,以后可【Load Words】同步到新文章中;
如果词典文件没这个单词 ,也不会显示释义;还不如直接去查了词典;
况且,目前除了2000的屏蔽词,其他绝绝大多数都会被标注为生词;

意思是需要 更便捷的取消屏蔽的方式;还是单纯的标注为生词
不要嫌我啰嗦,我的意识里,这是两个东西,我得问清楚了;

标为“生词”、“熟词”,这是我从一个普通用户(只关注功能应用,不关注软件实现方式)的视角来说的。
从软件实现的方式,你是把已掌握的(熟词)归为badList屏蔽了,我所说的“生词”是打开的文章单词集合减去badList集合后,剩下的部分,列在右侧生词列表中。不打开一篇文章的话,软件是没有“生词”之说的。

所以,我前面说的更便捷的标注生词,对应到软件实现,就是便捷的取消屏蔽,是操作badList表。

1 个赞

最近几天,我老婆和小孩(上初二)也在用这个软件学英语,他们根本不懂开发,在他们看来界面就是软件的一切,既然可以通过右键单击,从右侧生词列表里删除学会的单词,那么在左侧文章区域里,通过鼠标操作把不认识的词再加到右边是顺理成章的事。

目前程序的逻辑已经是这样的,如果没有被标出来,那就只有两种情况,

  1. 该单词被屏蔽了;
  2. 词典文件缺少该单词;

这时候就应该去查专业的词典了;

右侧的单词释义,仅供参考;推荐去查专业的词典
这是点击生词会自动复制到剪贴板这个功能的出发点,就是为了方便唤起MDict自动查词(需MDictCapture);

都已经屏蔽掉了,说明已经认识了,为什么要取消;
屏蔽时须三思;

如果觉得对小朋友来说屏蔽词表2000太多的话,
那就先点【查看已屏蔽】,
然后过一遍这个list,删去已经认识的,
最后把还不会的词【取消屏蔽】(单词间空格或回车隔开)

经由knownList过滤后,标注出来的已经是全部的生词了,如果还有不认识的,那就是最上边说的两点了,添加到右侧也没有意义;倒还不如双击变成红色,可以瞩目点;

1 个赞

要是把这里的JS加载到dicttango里的某一部词典,让例句里的单词按表高亮倒是很有用