이 프로젝트는 다음과 같은 템플릿 기반 클로즈 구현을 제공합니다.
이것은 카드 템플릿의 JavaScript와 Anki의 내장 (멋진) 선택적 카드 생성 기능의 새로운 응용 프로그램을 통해 순전히 달성됩니다. 이것의 큰 이점은 기존 메모에서 이미 카드를 가지고있을 수있는 클로즈 카드를 생성 할 수 있다는 것입니다. Anki의 Cloze Note 유형에 의존하지 않거나 다른 음표 유형에 의존하지 않으므로 카드를 새 노트 유형으로 마이그레이션 할 필요가 없습니다. Anki Desktop, Ankimobile 및 Ankidroid와 호환됩니다.
시작하는 것은 쉽습니다. 공유 데크를 다운로드하거나 수동으로 템플릿을 설정하기위한 지침을 따라갈 수 있습니다.
그러나 JavaScript 및 카드 템플릿으로 Anki 기능을 복제하는 것이 목표는 아닙니다. 목표는 끝없는 유연성입니다. 여기에있는 지침을 기반으로 새 필드 및 카드 템플릿을 추가하여 기존의 메모 유형 ( "Cloze Nothing")에 클로즈 카드를 추가 할 수 있습니다. 단순히 가이드로 사용하여 템플릿을 완전히 수정할 수도 있습니다.
기본 설정을 사용하면 Anki의 Cloze 기능이 복제됩니다. 그러나 템플릿은 구성 가능하며 쉽게 할 수없는 일을 할 수 있습니다. 아래는 템플릿의 유용한 기능 과이 접근법에 대한 요약입니다.
[...] 또는 [hint] 로 대체합니다. 템플릿을 사용하면이를 사용자 정의 할 수 있습니다. 예를 들어, 밑줄을 사용하고 형식을 ___ 로 만들 수 있습니다. 또는 ___ [hint] 에서와 같이 항상 힌트를 포함시킬 수 있습니다. 또한 고정 된 수의 3 자 대신 각 비 공간 캐릭터를 교체 할 수 있습니다. 그래서 당신은 ((c1::ab cdef::hint)) 가 __ ____ [hint] 가 될 수 있습니다.((c1::`a`bc `d`ef)) a__ d__ 로 렌더링 될 수 있습니다. 처음에뿐만 아니라 콘텐츠의 일부를 선택적으로 공개 할 수 있습니다. a((c1::bc)) d((c1::ef)) 수행 할 수도 있지만 백틱 구문이 더 편리 할 수 있습니다.이 접근법을 따를 때 필요한 일부 (최소) 수동 작업을 자동화하는 옵션 플러그인도 제공됩니다.
시작하기위한 두 가지 옵션이 있습니다.
클로즈 카드를보다 쉽게 편집 할 수 있도록 플러그인을 설치하는 것이 좋습니다.
Anki의 Cloze 템플릿과 유사하게 클로즈 컨텐츠를 포함하는 필드가 필요합니다. 컨벤션에서 나중에 플러그인을 사용하려는 경우 필드 이름을 Cloze 로 끝내는 것이 좋습니다. 지침에서 제안한대로 ExpressionCloze 를 지명한다고 가정 해 봅시다. Cloze 컨텐츠는 Anki의 Cloze 템플릿과 비슷한 방식 으로이 필드에서 입력됩니다. 유일한 차이점은 {{c1::text}} 형식 대신에 사용한다는 것입니다 ((c1::text)) . 그런 다음 각 클로즈 카드를 활성화하려면 필드가 필요합니다. 따라서 3 개의 클로즈를 지원하고 싶다고 가정 해 봅시다. ExpressionCloze1 , ExpressionCloze2 및 ExpressionCloze3 필드를 추가합니다. 해당 클로즈 카드를 활성화하기 위해 원하는 텍스트를이 필드에 입력합니다. 컨벤션에서 플러그인은 1 사용합니다.
예를 들어, Ik Heb Honger 표현의 각 단어에 대해 Cloze 카드를 작성한다고 가정 해 봅시다. 당신은 다음과 같은 필드를 쓸 것입니다.
이 예제의 HTML 렌더링에 대해서는 전면 및 후면 카드 예제를 참조하십시오.
각 클로즈 필드의 비어 있지 않은 값은 1 이므로 각 c1 에서 c3 에 대해 카드가 생성됩니다. ExpressionCloze3 에서 1 삭제하면 c1 및 c2 에 대해서만 카드가 생성됩니다.
이 모든 것이 어떻게 작동하는지 파헤쳐 봅시다. 앞서 언급 한 지침에는 첫 번째 클로즈 카드에 대한 다음 템플릿이 있습니다. 카드 전면의 전체 내용은 ExpressionCloze 및 ExpressionCloze1 기반으로 한 조건부 태그로 둘러싸여 있습니다. 이는 Anki 카드 생성이 작동하는 방식으로 인해 카드를 만들려면 두 필드가 모두 비어 있지 않아야 함을 의미합니다. 따라서이 필드 중 하나가 비어 있으면 해당 카드가 생성되지 않습니다. ommitted 스크립트는 단순히 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의 시스템에서와 같이 Cloze 결실의 힌트를 지원합니다. 예를 들어, 아래 예제의 경우 heb [...] 대신 [verb] 로 대체됩니다.
((c1::Ik)) ((c2::heb::verb)) ((c3::honger)).
카드 템플릿을 수동으로 설정하는 방법에 대한 자세한 내용은 지침을 참조하십시오. 또는 공유 데크를 출발점으로 사용하고 필요를 충족시키기 위해 수정 방법에 대한 참조로 지침을 사용할 수 있습니다.
템플릿에는 클로즈 삭제가 렌더링되는 방법을 제어하기위한 여러 설정이 있습니다. 자세한 내용은 구성을 참조하십시오.
플러그인은이 접근법을 따를 때 클로즈 삭제를보다 쉽게 편집 할 수 있도록 두 가지 작업을 수행합니다.
[...] 버튼에 연결되어 Anki의 Cloze 유형을 기반으로 한 다른 음표에서 사용할 수 있습니다.ExpressionCloze 필드 (또는 유사하게 명명 된 필드)에서 다른 필드 ExpressionCloze1 , ExpressionCloze2 등과 동기화하는 해당 클로즈 카드를 동기화합니다. [...] 버튼은 Anki의 Cloze 유형을 기반으로 노트 유형 중 하나에서 사용될 때 동일하게 작동합니다. 그렇지 않으면 필드 이름이 ExpressionCloze 와 같이 클로즈 로 끝나면 ((c1::text)) 와 같이 선택한 텍스트를 랩핑합니다. 이것은 곱슬 괄호 대신 괄호를 사용하는 것을 제외하고는 클로즈가있는 Anki의 정상적인 행동과 동일합니다.
[...] 버튼에는 Cloze 에서 종료 된 빈 필드에 초점이 맞는 동안 누르면 다른 필드의 텍스트를 Cloze 접미사에서 빼고 다른 필드의 텍스트를 복사하는 추가 유용한 기능이 있습니다. 예를 들어, ExpressionCloze 에 중점을 두면서 버튼을 클릭하면 텍스트가 Expression 에서 복사됩니다.
[...] 버튼을 사용하지 않고 클로즈 필드를 수정할 수도 있습니다. 플러그인은 ((c1::text)) 와 같은 패턴을 변경하고 식별합니다. 해당 클로즈 필드는 클로즈 결실의 존재에 따라 비어 있거나 1 포함합니다. 예를 들어 ((c1::Ik)) ((c2::heb)) ((c3::honger)). 로 ExpressionCloze 채우는 경우. 그런 다음 각 ExpressionCloze1 , ExpressionCloze2 및 ExpressionCloze3 에 대해 1 채 웁니다. ((c1::Ik)) ((c2::heb)) honger. 그런 다음 ExpressionCloze3 비워집니다.
플러그인은 편집 -> Cloze ally의 브라우저에 두 가지 작업을 추가합니다. 둘 다 브라우저에서 선택한 메모에서 작동합니다.
이것은 자동으로 전체 필드에서 망토를 만듭니다. 예를 들어, ExpressionCloze 와 Expression 이라는 필드가 있다고 가정합니다. ExpressionCloze 가 비어 있으면,이 동작은 Expression 내용을 ExpressionCloze 로 복사하고 ((c1::content)) 와 같은 망토로 만들어집니다. 또한 Cloze 카드가 생성되도록 ExpressionCloze1 업데이트합니다. 이것은 전체 콘텐츠를 클로즈하려는 짧은 콘텐츠가있는 메모가 많을 때 유용합니다. 하나보다 대량으로 클로즈즈하는 것이 훨씬 더 효율적입니다.
이것은 본질적으로 Cloze를 사용하여 제작 카드를 만들고 있습니다 (예 : 모국어의 의미가 주어지면 배우고있는 언어로 표현을 생성하십시오). 그렇다면 Cloze를 사용하는 대신 프로덕션 카드 템플릿을 만드는 것이 어떻습니까? 경우에 따라 이것은 Cloze를 사용하는 것보다 더 효과적 일 수 있습니다. 그러나 Cloze가 유용 할 수있는 몇 가지 이유가 있습니다.
이것은 기본적으로 Cloze 필드가 카드 생성을 담당하는 해당 필드와 동기화되도록합니다. 예를 들어, ExpressionCloze ((c1::Ik)) ((c2::heb)) ((c3::honger)). 이렇게하면 ExpressionCloze1 , ExpressionCloze2 및 ExpressionCloze3 이 각각 1 으로 채워질 수 있습니다. 그러나 ExpressionCloze4 존재하면 비워집니다. 플러그인을 사용하면 컨텐츠를 변경할 때 이러한 필드가 업데이트되도록 플러그인을 사용하는 동안이 동작을 사용하는 것이 일반적으로 필요하지 않습니다. 그러나 플러그인을 사용하기 전에 가져 오기 또는 메모를 편집하는 경우 필드를 동기화 할 수있는 필드를 수정하는 데 사용될 수 있습니다.
Anki는 이미 Cloze를 지원하고 있습니다. 그렇다면 왜 Cloze를 사용합니까?
장점 :
단점 :
type: 답변에서 유형을 활성화하려면 접두사가 지원되지 않습니다. 카드 템플릿은 Anki 데스크탑, Ankimobile 및 Ankidroid와 호환됩니다.
플러그인은 Anki Desktop 2.1에서 작동합니다. 2.0 지원을 추가 할 계획이 없습니다.
클로즈 (모두 숨기기) 및 클로즈 오버 클래퍼와 같은 다른 클로즈 플러그인과 플러그인의 상호 작용을 아직 테스트하지 않았습니다. 문제가 발생하면 문제를 제기하면 문제를 해결하기 위해 최선을 다하겠습니다.
다음 플러그인은이 플러그인과 호환성 문제가있는 것으로보고되었습니다.
Anki 's Cloze 시스템 자체에서 나온 영감 외에도 여기에있는 기능에 대한 영감을 제공하는 몇 가지 관련 Anki Cloze 플러그인이 있습니다. Anki에 넣은 사고와 새로운 아이디어를 개발하는 데 도움이 된이 플러그인에 대한 모든 저자에게 감사드립니다.
저작권 2019-2021 Matthew Hayes
Apache 라이센스, 버전 2.0 ( "라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 것 외에는이 파일을 사용할 수 없습니다. 라이센스 사본을 얻을 수 있습니다
http://www.apache.org/licenses/license-2.0
해당 법률에 의해 요구되거나 서면에 동의하지 않는 한, 라이센스에 따라 배포 된 소프트웨어는 명시 적 또는 묵시적 보증 또는 조건없이 "그대로"기준으로 배포됩니다. 라이센스에 따른 특정 언어 통치 권한 및 제한 사항에 대한 라이센스를 참조하십시오.