DataviewJS 打字背诵练习

image

已上传至 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 打字练习插件永久会员,谁懂阿!

2 个赞