把英文书籍中符合难度的单词提取出来,然后用树莓派、闲置的屏幕、挂墙上的手机来背单词

2018-08-19 10:48:01 +08:00
 lxrmido

想法

家中有个树莓派一直在跑爬虫,最近淘宝买东西的时候顺手买了个 50 块的 3.5 寸屏幕插上去,然后发现屏幕无法关闭,于是便想拿它来做点什么,反正屏幕的耗电量才 0.5W 。

最近也一直在用薄荷阅读学英语,感觉背单词是学英语里最重要的一环。

于是思路就出来了:

单词从哪里来?

如何生成单词卡片数据?

作品

有了思路之后,做起来还是比较容易的。花了两个晚上把可用的版本做了出来,repo 地址:

https://github.com/lxrmido/WordCards

树莓派运行效果:

界面截图:

然后就是再抽空把需要的其他东西做出来,以及优化了

总结及体会

7224 次点击
所在节点    分享创造
73 条回复
mrfox
2018-08-27 22:19:34 +08:00
@lxrmido 感谢回复
改源码能力不足,已经在 app.ced33e8d.js 查找"#ffffff"(正好要改的解释的字体是白色的),其他 color 相关的也看了一遍,没找到
card-container 似乎是一体的,解释部分没明白怎么单独标记
mrfox
2018-08-28 03:03:48 +08:00
找了一晚上,发现 app.ced33e8d.js 里找不到,不过在源码里有,请问如何“重新编译前端代码”
lxrmido
2018-08-28 08:56:01 +08:00
@mrfox
进入 resource/frontend 目录
npm i
npm run build
mrfox
2018-08-28 16:22:07 +08:00
解决了一堆错误后,终于能 build 了

目前报这些错:
一、
Module Warning (from ./node_modules/eslint-loader/index.js):
error: Parsing error: Unexpected token < at src\App.vue:1:1:
> 1 | <template>
| ^
2 | <div id="app">
3 | <card-container ref="conCard" @setting="openSetting"></card-contai
ner>
4 | <setting-container
1 error found.
二、
\resource\frontend\src\lib\installer\api.js
error Parsing error: The keyword 'export' is reserved
三、
resource\frontend\src\lib\installer\index.js 和 main.js
error Parsing error: The keyword 'import' is reserved
mrfox
2018-08-28 16:39:30 +08:00
@lxrmido 不过虽然有这些报错,实际是起了作用,耶!谢谢指导

好奇 VUE 编译后变成的是压缩版本是为了提高效率或保护源码
lxrmido
2018-08-29 09:13:26 +08:00
@mrfox

只是因为浏览器不能直接解析 vue 所以需要编译,前端的源码保护是不存在的……
mrfox
2018-08-29 13:34:47 +08:00
@lxrmido 明白了
另外用 example 生成的单词表还没筛选完,昨天想做个实验看看处理第二个单词表是什么样的

另找了一个机器试了下两个短文,发现到第二个文章时,上一篇文章的生词还是会出来(不是在最后出来)
想知道如何设置才能达到先把生词都选出来最后统一再背的效果,谢谢
mrfox
2018-08-29 13:43:48 +08:00
似乎是对快捷键“前进”“后退”的理解有误,我再试试,再想想……前进不是向右么
mrfox
2018-08-29 15:13:10 +08:00
请问标记错的单词(忽略)如何回退再标成生词,目前的前进后退似乎是针对生词的
lxrmido
2018-08-29 16:56:28 +08:00
@mrfox

还没加这个设置……

标错了的单词也还没办法加回去……
mrfox
2018-08-31 18:15:53 +08:00
@lxrmido 看到更新了忽略过往单词的功能,鼓掌
理解没错的话,即比如用例子生成了 6K 词,筛选了 3K ( 2K 认识,1K 不认识),此时再用一个新的 TXT 创建词表的话,在这个 6K 里的词都不会再出来,只把 6K 外的词加入待处理,对吧
mrfox
2018-08-31 18:33:18 +08:00
本层的话请非小白非偏执忽略:
这段折腾了好久在快捷键上,开始用 autokey 什么的一直不成功
后来作者更新了快捷键功能也获得了启发,应该从 javascript 着手
想实现一键把单词标记星号并跳至下一个词(其实两键已经够用,流汗)
终于搞成了分享下
1. http://openjs.com/scripts/events/keyboard_shortcuts/
下载这个 js 可以定义快捷键
2. https://stackoverflow.com/questions/14226803/wait-5-seconds-before-executing-next-line
这个回答中 Kai Noack 的代码改一下加到上面的文件中,例:
shortcut.add("right",function() {
document.getElementsByClassName("btn star")[0].click();
delay(function(){
document.getElementsByClassName("btn next")[0].click();
}, 1000 );
});
其实答案评论里说什么 jquery 我也没看懂,都是试出来
比如花了不少时间才试出来按动按钮需要加[0]
还是需要系统学习啊
lxrmido
2018-08-31 23:33:33 +08:00
@mrfox
emmm ……分等级,最高级的时候是你看过的单词都不会加进去
sammo
2018-09-01 17:47:28 +08:00
单词展示器。词典片段展示器。和背不背单词无关
Chenyao
2018-09-01 22:47:50 +08:00
这个是发音的链接:
https://dict.youdao.com/dictvoice?audio=interested&type=2

这个是有道官网直接抓出来的。我造了另外另外一个背单词的轮子可以来玩: https://github.com/Chenyao2333/malleable
mrfox
2018-09-06 02:33:17 +08:00
https://imgur.com/a/JC249qL
释义长的话字体会突然变得很小
mrfox
2018-09-06 02:52:59 +08:00
lxrmido
2018-09-06 08:33:17 +08:00
@mrfox

因为放不下……有什么建议?
mrfox
2018-09-06 18:03:21 +08:00
@lxrmido 尝试建议一下
释义相对重要,例句参考的情况多些
简单的做法即不要求一页显示完,保持字体大小不变
一页显示全的话或者把给释义的区间再调大些
再或者释义超过 18 还昌 20 字换一行,超过 2 行的不显示全,加一个。。。符号让用户自己点开
mrfox
2018-09-06 18:31:11 +08:00
https://imgur.com/a/p7EmpHs
这个例子更明显些,释义字小而例句显示完了下面还有空间
可以考虑释义占正常字体大小两行的地方,超出的话加一个展开符号(如叠放向下的两个折线箭头)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX