已上传至 DataviewJS 的传参与复用 蓝奏云链接,选择“打字示例库”。库内置日语五十音题目档、打字 JS 和一个 彩蛋。若阅读本帖有疑问,可先阅读“DataviewJS 的传参与复用”。
默认行为:
-
读取某个文档内容作题目。题目格式:空格 + 英文冒号 + 空格分隔,一行一个。
第 1 列 col0 为答案,第 2 列 col1 为提示。题目档格式示例,点击展开
a : あ a : ア
因读取正文后使用
.replace()
替换掉了一些格式,详见外部 JS 代码,所以也可以是:a[一些注释] : あ[一些注释] a : ア
-
聚焦输入框时,回车发送答案。
- 正确将朗读答案后进入下一题,错误将朗读答案并弹出正确答案。
- 任何时候可按向上键朗读答案。
-
选框勾选是否自动发音,下一题起效。选框位置如题图,平时隐藏、鼠标悬停时显示。
-
点击“导出”导出为 csv。
内部 DataviewJS 代码
const ss = {
col: 0, auto: !1, mute: !1, w: '40px', le: 'ja', /*本行参数均可不填*/
0: '文件目录/!五十音.md', get: p=> p
}; await dv.view('JS 目录/dv-打字', { ss, dao: !0 })
各自定义属性含义:
ss[0]
:题目档路径。ss.get
:可自行编程实现多样汇总,详见外部 JS 代码。ss.le
:朗读语种。不填则按向上键亦无发音。ss.col
:朗读答案还是提示,0
为答案,1
为提示。ss.auto
:是否默认勾选自动发音,!1
为关,!0
为开。ss.mute
:取消自动发音选框,除按向上键外不朗读,!1
为关,!0
为开。ss.w
:输入框宽度。dao
:是否显示导出按钮,!1
为关,!0
为开。
朗读使用有道 API,搜索得支持的语种如下:
{ 'zh-CHS': '中文', 'en': '英语', 'ja': '日语', 'ko': '韩语', 'fr': '法语', 'de': '德语', 'ru': '俄语', 'es': '西语',
'pt': '葡语', 'it': '意大利语', 'vi': '越南语', 'id': '印尼语', 'ar': '阿拉伯语', 'nl': '荷兰语', 'th': '泰语' }
因通过搜索引擎获取信息,不清楚有道 API 有没有文档,欢迎告知。
几个内部代码的例子:
例 1
const ss = {
mute: !0, col: 1, le: 'ja',
0: '文件目录/!五十音.md', get: p=> p
}
await dv.view('JS 目录/dv-打字', { ss, dao: !1 })
例 2
const ss = {
0: '文件目录/小鹤双拼韵母.md', get: p=> p
}
await dv.view('JS 目录/dv-打字', { ss, dao: !1 })
例 3
const ss = {
auto: !0, w: '120px', le: 'en',
0: '核心词句/2024-04-18.md', get: p=> p
}
await dv.view('JS 目录/dv-打字', { ss, dao: !0 })
虽然但是,之前以为无法自己实现,已经付费 uTools 打字练习插件永久会员,谁懂阿!