該項目提供了基於模板的披肩實現:
這僅是通過卡模板中的JavaScript和Anki內置(很棒)選擇性卡生成功能的新穎應用來實現的。最大的好處是,您可以從現有筆記中生成披肩卡,您可能已經擁有卡。它不依賴Anki的披肩註釋類型或任何其他便箋類型,這意味著您不必將卡遷移到新的便箋類型。它與Anki桌面,Ankimobile和Ankidroid兼容。
入門很容易。您可以下載共享甲板,也可以按照指令手動設置模板。
但是,使用JavaScript和卡模板複製ANKI功能並不是目標。目標是無盡的靈活性。您可以根據此處的說明添加新字段和卡模板,將其固定卡添加到任何現有的註釋類型(“披肩所有物品”)中。您也可以完全使用它們作為指南來完全修改模板。
使用默認設置,這複製了Anki的披肩功能。但是,該模板是高度可配置的,可以讓您做一些您無法輕鬆做的事情。以下是模板和這種方法的一些有用特徵的摘要。
[...]或[hint]替換了每個clozed值。這些模板可讓您自定義。例如,您可以使用下劃線,並使格式為___ 。或者,您可以隨時包括___ [hint]中的提示。同樣,您可以更換每個非空間字符的3個字符的固定數量。因此,您可以擁有((c1::ab cdef::hint))成為__ ____ [hint] 。((c1::`a`bc `d`ef))被渲染為a__ d__ 。您可以選擇性地揭示內容的任何部分,而不僅僅是一開始。請注意,您也可以執行a((c1::bc)) d((c1::ef)) ,但是背部語法可能更方便。還提供了一個可選的插件,該插件可以自動化一些遵循此方法時需要的其他(最小)手動工作。
入門有兩個選擇:
還建議安裝插件,以使您更容易編輯披肩卡,但不需要。
與Anki的披肩模板類似,您需要一個字段才能包含披肩內容。出於慣例,如果您想以後要使用該插件,最好將字段名稱結束。假設您將其命名為ExpressionCloze ,如說明中所建議的。與Anki的披肩模板相似的方式,在此字段中輸入了披肩內容。唯一的區別是,您使用((c1::text)) {{c1::text}} 。然後,您需要字段才能啟用每張披肩卡。因此,假設您想支持三個clozes。您將添加fields ExpressionCloze1 , ExpressionCloze2和ExpressionCloze3 。您輸入要進入這些字段的任何文本以啟用相應的披肩卡。插件使用1 。
例如,假設您想為IK Heb Honger表達式中的每個單詞創建披肩卡。您會這樣寫字段:
有關此示例的HTML渲染,請參見前後卡示例。
由於每個披肩字段的非空值為1 ,因此將為c1至c3中的每一個生成一張卡。如果您從ExpressionCloze3中刪除了1則僅對c1和c2生成卡。
讓我們挖掘一切的工作原理。前面引用的說明具有以下第一張披肩卡的模板。請注意,卡的正面的整個內容都被基於ExpressionCloze和ExpressionCloze1條件標籤包圍。這意味著,由於Anki卡生成的工作方式,這兩個字段都必須不發空才能創建卡。因此,如果這些字段中的任何一個都是空的,則未生成相應的卡。符合腳本只需查看data-card的值以終止的數字,然後相應地更新Cloze <div>中的內容。因此,如果data-card的值是ExpressionCloze2 ,則它知道隱藏((c2::text))並顯示其他。
{{#ExpressionCloze}}
{{#ExpressionCloze1}}
<div id="cloze" data-card="{{Card}}" data-cloze-show-before="all" data-cloze-show-after="all">
{{ExpressionCloze}}
</div>
{{Meaning}}
<script>
// .. ommitted ...
</script>
{{/ExpressionCloze1}}
{{/ExpressionCloze}}
這些模板還支持在Anki系統中的縮寫刪除中的提示。例如,對於下面的示例, heb將被[verb]而不是[...]替換。
((c1::Ik)) ((c2::heb::verb)) ((c3::honger)).
有關如何手動設置卡模板的完整詳細信息,請參閱說明。另外,您可以將共享甲板用作起點,並將指令用作如何修改它以滿足您的需求的參考。
該模板具有多種設置,用於控制如何渲染覆蓋刪除。有關詳細信息,請參見配置。
該插件做了兩件事,使您更容易遵循此方法時更容易編輯Cloze Deletions:
[...]按鈕掛鉤,因此除了基於Anki的披肩類型外,您還可以在其他筆記上使用它。ExpressionCloze字段(或類似命名字段)的編輯同步到其他字段ExpressionCloze1 , ExpressionCloze2等,以啟用相應的披肩卡。 [...]按鈕在基於Anki的披肩類型的一種註釋類型之一上使用時的行為相同。但是,如果字段名稱像ExpressionCloze一樣披肩結束,則它將包裹所選的文本,例如((c1::text)) 。這與Anki的正常行為相同,除非它使用括號而不是捲曲括號。
[...]按鈕具有一個有用的功能,如果您在Cloze in Cloze的空字段中按焦點,則將其從另一個字段中復制帶有相同名稱的文本,減去cloze後綴。例如,如果您在專注於ExpressionCloze浮動時單擊按鈕,則它將從Expression中復製文本。
您也可以在不使用[...]按鈕的情況下修改披肩字段。該插件監視更改並標識((c1::text))之類的模式。它使相應的披肩場是空的,要么根據披肩缺失的存在,要么包含1 。例如,如果您用((c1::Ik)) ((c2::heb)) ((c3::honger)). ExpressionCloze然後,它將填充1 ExpressionCloze1 , ExpressionCloze2和ExpressionCloze3 。如果您將其編輯為((c1::Ik)) ((c2::heb)) honger.然後它將使ExpressionCloze3為空。
該插件在編輯下的瀏覽器中添加了兩個操作 - > cloze nothing。他們倆都在瀏覽器中選擇的任何音符上運行。
這會自動從整個領域披肩。例如,假設您有一個名為ExpressionCloze和Expression字段。如果ExpressionCloze為空,則此動作會導致Expression複製到ExpressionCloze中,並將其製成像((c1::content))的披肩。它還更新了ExpressionCloze1導致生成披肩卡。當您有很多筆記內容簡短的內容時,這很有用。將它們批量覆蓋比一一更有效。
請注意,這本質上是在使用披肩製作生產卡(即以您的母語含義,以您正在學習的語言產生表達式)。那麼,為什麼不只是製作生產卡模板而不是使用披肩呢?在某些情況下,這可能比使用披肩更有效。但是,披肩有用的原因有兩個:
基本上,這只是確保披肩字段與負責卡生成的相應字段保持同步。例如,如果ExpressionCloze具有((c1::Ik)) ((c2::heb)) ((c3::honger)).然後,這將確保ExpressionCloze1 , ExpressionCloze2和ExpressionCloze3各自填充1 。但是,如果存在,則ExpressionCloze4將空白。使用插件時,通常不需要使用此操作,因為插件可確保在更改內容時更新這些字段。但是,如果您進行導入或在使用插件之前編輯註釋,則可以用來修復以同步為單位的字段。
安基已經對披肩擁有內置的支持。那為什麼要披肩呢?
優點:
缺點:
type:前綴以啟用答案中的類型。 卡模板與Anki桌面,Ankimobile和Ankidroid兼容。
該插件可與Anki Desktop 2.1一起使用。我沒有添加2.0支持的計劃。
我尚未測試插件與其他披肩插件(例如Cloze(隱藏)和披肩重疊器的交互作用。如果您遇到問題,請提出問題,我會盡力解決問題。
據報導,以下插件與此插件具有兼容性問題:
除了從Anki的Cloze System本身中汲取靈感外,還有一些相關的Anki Cloze插件,為此處找到的功能提供了一些靈感。感謝所有作者對Anki的思想以及這些有助於發展新想法的插件。
版權2019-2021 Matthew Hayes
根據Apache許可證(版本2.0(“許可”)獲得許可;除了符合許可外,您不得使用此文件。您可以在
http://www.apache.org/licenses/license-2.0
除非適用法律要求或以書面形式同意,否則根據許可證分配的軟件是按照“原樣”分發的,沒有任何明示或暗示的任何形式的保證或條件。請參閱許可證,以獲取執行許可條款和限制的特定語言。