2019年4月24日 星期三

在 Anki 匯入網路資料,製作自己的單字表

Anki 是好用的用科學方式讓你背單字的初音軟體
網路上可以看到打包好的大量 Anki package 直接匯入來使用
但是更多的時候網路上面雖然有單字表,卻不是 Anki 格式
這時我們就要一些手段來把他匯入 Anki
這篇文章使用了一個例子,說明了如何把網路上的單字表匯入成 Anki

這個教學中,使用桌面版 Anki 2.1.11 作為例子
使用網路上找到 N1, N2 的和英單字表
http://www.tanos.co.uk/jlpt/jlpt1/vocab/
http://www.tanos.co.uk/jlpt/jlpt2/vocab/
(註:雖然有這個網站有提供 .anki 包,但是對這個版本太舊了)

首先,我們可以找一個可以直接複製貼上表格的 excel 類軟體
例如 google doc 就是個不錯的選擇,像這樣

然後轉換成  csv
接著我們要定義這個表格的資料形式

首先,新增一個類型
我們直接從基本型產生一個類型
把他命名叫 JLPT 好了
接著就是如何定義欄位
因為這個表格的直排分別是「漢字、發音、英文翻譯」
我們就定義三個欄位叫

  • kanji(漢字 / かんじ)
  • yomikata(読み方 / よみかた)
  • meaning
字體隨便選一個顯示比較漂亮的就好
然後我們定義如何顯示正反面的卡片,點選卡片的按鈕
這需要一些 html 的知識才能修改他
此外,也需要用到額外的 Anki 自己定義的語法,如下
  • {{^欄位}}這個文字只有在欄位是空的時候表示{{/欄位}}
  • {{#欄位}}這個文字只有在欄位不是空的時候表示{{/欄位}}
  • {{欄位}} → 直接顯示那個欄位文字
如果不想深究的,下面我直接貼上我這個例子中用的樣板跟樣式的程式碼
正面
<div class="front">{{^kanji}}{{yomikata}}{{/kanji}}{{#kanji}}{{kanji}}{{/kanji}}</div>
樣式
.card {
 font-family: "Noto Sans CJK JP Medium", sans-serif;
 font-size: 24px;
 text-align: center;
 color: #ffd;  
 background-color: #333;
 line-height: 1.6;
}
.front {
  color: #ddf;
}
.yomikata {
  color: #dfd;
}
反面
{{FrontSide}}
<hr id=answer>
{{#kanji}}<div class="yomikata">【{{yomikata}}】</div>{{/kanji}}
<div class="meaning">{{meaning}}</div>


最後,我們匯入剛剛的 csv 就搞定了

1 則留言:

  1. 謝謝分享。但想請教一下:

    -在google sheet 下載(as csv)後,是否有需要再轉字碼為「UTF8」(譬如打開記事本→另存新檔→UTF8)?

    過去用EXCEL操作,往往需要轉字碼的步驟。倘若google sheet不需要,則方便很多!

    回覆刪除