Last active
July 10, 2021 18:55
-
-
Save cademcniven/12741d50624611b9a2a377708fc21a45 to your computer and use it in GitHub Desktop.
Yomichan Anki card template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{{#*inline "glossary-single"}} | |
{{~#unless brief~}} | |
{{~#scope~}} | |
{{~#set "any" false}}{{/set~}} | |
{{~#each definitionTags~}} | |
{{~#if (op "||" (op "!" @root.compactTags) (op "!" redundant))~}} | |
{{~#if (get "any")}}, {{else}}<i>({{/if~}} | |
{{name}} | |
{{~#set "any" true}}{{/set~}} | |
{{~/if~}} | |
{{~/each~}} | |
{{~#unless noDictionaryTag~}} | |
{{~#if (op "||" (op "!" @root.compactTags) (op "!==" dictionary (get "previousDictionary")))~}} | |
{{~#if (get "any")}}, {{else}}<i>({{/if~}} | |
{{dictionary}} | |
{{~#set "any" true}}{{/set~}} | |
{{~/if~}} | |
{{~/unless~}} | |
{{~#if (get "any")}})</i> {{/if~}} | |
{{~/scope~}} | |
{{~#if only~}}({{#each only}}{{.}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}} | |
{{~/unless~}} | |
{{~#if (op "<=" glossary.length 1)~}} | |
{{#each glossary}}{{#multiLine}}{{.}}{{/multiLine}}{{/each}} | |
{{~else if @root.compactGlossaries~}} | |
{{#each glossary}}{{#multiLine}}{{.}}{{/multiLine}}{{#unless @last}} | {{/unless}}{{/each}} | |
{{~else~}} | |
<ul>{{#each glossary}}<li>{{#multiLine}}{{.}}{{/multiLine}}</li>{{/each}}</ul> | |
{{~/if~}} | |
{{~#set "previousDictionary" dictionary~}}{{~/set~}} | |
{{/inline}} | |
{{#*inline "audio"}} | |
{{~#if definition.audioFileName~}} | |
[sound:{{definition.audioFileName}}] | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "character"}} | |
{{~definition.character~}} | |
{{/inline}} | |
{{#*inline "dictionary"}} | |
{{~definition.dictionary~}} | |
{{/inline}} | |
{{#*inline "expression"}} | |
{{~#if merge~}} | |
{{~#if modeTermKana~}} | |
{{~#each definition.reading~}} | |
{{{.}}} | |
{{~#unless @last}}、{{/unless~}} | |
{{~else~}} | |
{{~#each definition.expression~}} | |
{{{.}}} | |
{{~#unless @last}}、{{/unless~}} | |
{{~/each~}} | |
{{~/each~}} | |
{{~else~}} | |
{{~#each definition.expression~}} | |
{{{.}}} | |
{{~#unless @last}}、{{/unless~}} | |
{{~/each~}} | |
{{~/if~}} | |
{{~else~}} | |
{{~#if modeTermKana~}} | |
{{~#if definition.reading~}} | |
<span class="{{~#each (pitchCategories .)~}} | |
{{~#if @first}}{{.}}{{~/if}} | |
{{~/each~}}">{{definition.reading}}</span> | |
{{~else~}} | |
<span class="{{~#each (pitchCategories .)~}} | |
{{~#if @first}}{{.}}{{~/if}} | |
{{~/each~}}">{{definition.expression}}</span> | |
{{~/if~}} | |
{{~else~}} | |
<span class="{{~#each (pitchCategories .)~}} | |
{{~#if @first}}{{.}}{{~/if}} | |
{{~/each~}}">{{definition.expression}}</span> | |
{{~/if~}} | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "furigana"}} | |
{{~#if merge~}} | |
{{~#each definition.expressions~}} | |
<span class="expression-{{termFrequency}}">{{~#furigana}}{{{.}}}{{/furigana~}}</span> | |
{{~#unless @last}}、{{/unless~}} | |
{{~/each~}} | |
{{~else~}} | |
{{#furigana}}{{{definition}}}{{/furigana}} | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "furigana-plain"}} | |
{{~#if merge~}} | |
{{~#each definition.expressions~}} | |
<span class="expression-{{termFrequency}}">{{~#furiganaPlain}}{{{.}}}{{/furiganaPlain~}}</span> | |
{{~#unless @last}}、{{/unless~}} | |
{{~/each~}} | |
{{~else~}} | |
{{#furiganaPlain}}{{{definition}}}{{/furiganaPlain}} | |
{{~/if~}} | |
{{/inline}} | |
{{~#*inline "glossary"~}} | |
<div style="text-align: center;"> | |
{{~#scope~}} | |
{{~#if (op "===" definition.type "term")~}} | |
{{~> glossary-single definition brief=brief noDictionaryTag=noDictionaryTag ~}} | |
{{~else if (op "||" (op "===" definition.type "termGrouped") (op "===" definition.type "termMerged"))~}} | |
{{~#if (op ">" definition.definitions.length 1)~}} | |
<div>{{~#each definition.definitions~}}<div>{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}</div>{{~/each~}}</div> | |
{{~else~}} | |
{{~#each definition.definitions~}}{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}{{~/each~}} | |
{{~/if~}} | |
{{~else if (op "===" definition.type "kanji")~}} | |
{{~#if (op ">" definition.glossary.length 1)~}} | |
<ol>{{#each definition.glossary}}<li>{{.}}</li>{{/each}}</ol> | |
{{~else~}} | |
{{~#each definition.glossary~}}{{.}}{{~/each~}} | |
{{~/if~}} | |
{{~/if~}} | |
{{~/scope~}} | |
</div> | |
{{~/inline~}} | |
{{#*inline "glossary-no-dictionary"}} | |
{{~> glossary noDictionaryTag=true ~}} | |
{{/inline}} | |
{{#*inline "glossary-brief"}} | |
{{~> glossary brief=true ~}} | |
{{/inline}} | |
{{#*inline "kunyomi"}} | |
{{~#each definition.kunyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}} | |
{{/inline}} | |
{{#*inline "onyomi"}} | |
{{~#each definition.onyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}} | |
{{/inline}} | |
{{#*inline "reading"}} | |
{{~#unless modeTermKana~}} | |
{{~#if merge~}} | |
{{~#each definition.reading~}} | |
{{{.}}} | |
{{~#unless @last}}、{{/unless~}} | |
{{~/each~}} | |
{{~else~}} | |
{{~definition.reading~}} | |
{{~/if~}} | |
{{~/unless~}} | |
{{/inline}} | |
{{#*inline "sentence"}} | |
{{~#if definition.cloze}}{{definition.cloze.sentence}}{{/if~}} | |
{{/inline}} | |
{{#*inline "cloze-prefix"}} | |
{{~#if definition.cloze}}{{definition.cloze.prefix}}{{/if~}} | |
{{/inline}} | |
{{#*inline "cloze-body"}} | |
{{~#if definition.cloze}}{{definition.cloze.body}}{{/if~}} | |
{{/inline}} | |
{{#*inline "cloze-suffix"}} | |
{{~#if definition.cloze}}{{definition.cloze.suffix}}{{/if~}} | |
{{/inline}} | |
{{#*inline "tags"}} | |
{{~#mergeTags definition group merge}}{{this}}{{/mergeTags~}} | |
{{/inline}} | |
{{#*inline "url"}} | |
<a href="{{definition.url}}">{{definition.url}}</a> | |
{{/inline}} | |
{{#*inline "screenshot"}} | |
<img src="{{definition.screenshotFileName}}" /> | |
{{/inline}} | |
{{#*inline "document-title"}} | |
{{~context.document.title~}} | |
{{/inline}} | |
{{! Pitch Accents }} | |
{{#*inline "pitch-accent-item-downstep-notation"}} | |
{{~#scope~}} | |
<span> | |
{{~#set "style1a"~}}display:inline-block;position:relative;{{~/set~}} | |
{{~#set "style1b"~}}padding-right:0.1em;margin-right:0.1em;{{~/set~}} | |
{{~#set "style2a"~}}display:block;user-select:none;pointer-events:none;position:absolute;top:0.1em;left:0;right:0;height:0;border-top:0.1em solid;{{~/set~}} | |
{{~#set "style2b"~}}right:-0.1em;height:0.4em;border-right:0.1em solid;{{~/set~}} | |
{{~#each (getKanaMorae reading)~}} | |
{{~#set "style1"}}{{#get "style1a"}}{{/get}}{{/set~}} | |
{{~#set "style2"}}{{/set~}} | |
{{~#if (isMoraPitchHigh @index ../position)}} | |
{{~#set "style2"}}{{#get "style2a"}}{{/get}}{{/set~}} | |
{{~#if (op "!" (isMoraPitchHigh (op "+" @index 1) ../position))~}} | |
{{~#set "style1" (op "+" (get "style1") (get "style1b"))}}{{/set~}} | |
{{~#set "style2" (op "+" (get "style2") (get "style2b"))}}{{/set~}} | |
{{~/if~}} | |
{{~/if~}} | |
<span style="{{#get "style1"}}{{/get}}">{{{.}}}<span style="{{#get "style2"}}{{/get}}"></span></span> | |
{{~/each~}} | |
</span> | |
{{~/scope~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-item-graph-position-x"}}{{#op "+" 25 (op "*" index 50)}}{{/op}}{{/inline}} | |
{{#*inline "pitch-accent-item-graph-position-y"}}{{#op "+" 25 (op "?:" (isMoraPitchHigh index position) 0 50)}}{{/op}}{{/inline}} | |
{{#*inline "pitch-accent-item-graph-position"}}{{> pitch-accent-item-graph-position-x index=index position=position}} {{> pitch-accent-item-graph-position-y index=index position=position}}{{/inline}} | |
{{#*inline "pitch-accent-item-graph"}} | |
{{~#scope~}} | |
{{~#set "morae" (getKanaMorae reading)}}{{/set~}} | |
{{~#set "morae-count" (property (get "morae") "length")}}{{/set~}} | |
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {{#op "+" 50 (op "*" 50 (get "morae-count"))}}{{/op}} 100" style="display:inline-block;height:2em;"> | |
<defs> | |
<g id="term-pitch-accent-graph-dot"><circle cx="0" cy="0" r="15" style="fill:#fff;stroke:#fff;stroke-width:5;" /></g> | |
<g id="term-pitch-accent-graph-dot-downstep"><circle cx="0" cy="0" r="15" style="fill:none;stroke:#fff;stroke-width:5;" /><circle cx="0" cy="0" r="5" style="fill:none;stroke:#fff;stroke-width:5;" /></g> | |
<g id="term-pitch-accent-graph-triangle"><path d="M0 13 L15 -13 L-15 -13 Z" style="fill:none;stroke:#fff;stroke-width:5;" /></g> | |
</defs> | |
<path style="fill:none;stroke:#fff;stroke-width:5;" d=" | |
{{~#set "cmd" "M"}}{{/set~}} | |
{{~#each (get "morae")~}} | |
{{~#get "cmd"}}{{/get~}} | |
{{~> pitch-accent-item-graph-position index=@index position=../position~}} | |
{{~#set "cmd" "L"}}{{/set~}} | |
{{~/each~}} | |
"></path> | |
<path style="fill:none;stroke:#fff;stroke-width:5;stroke-dasharray:5 5;" d="M{{> pitch-accent-item-graph-position index=(op "-" (get "morae-count") 1) position=position}} L{{> pitch-accent-item-graph-position index=(get "morae-count") position=position}}"></path> | |
{{#each (get "morae")}} | |
<use href="{{#if (op "&&" (isMoraPitchHigh @index ../position) (op "!" (isMoraPitchHigh (op "+" @index 1) ../position)))}}#term-pitch-accent-graph-dot-downstep{{else}}#term-pitch-accent-graph-dot{{/if}}" x="{{> pitch-accent-item-graph-position-x index=@index position=../position}}" y="{{> pitch-accent-item-graph-position-y index=@index position=../position}}"></use> | |
{{/each}} | |
<use href="#term-pitch-accent-graph-triangle" x="{{> pitch-accent-item-graph-position-x index=(get "morae-count") position=position}}" y="{{> pitch-accent-item-graph-position-y index=(get "morae-count") position=position}}"></use> | |
</svg> | |
{{~/scope~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-item-position"~}} | |
[{{position}}] | |
{{~/inline}} | |
{{#*inline "pitch-accent-item"}} | |
{{~#if (op "==" format "downstep-notation")~}} | |
{{~> pitch-accent-item-downstep-notation~}} | |
{{~else if (op "==" format "graph")~}} | |
{{~> pitch-accent-item-graph~}} | |
{{~else if (op "==" format "position")~}} | |
{{~> pitch-accent-item-position~}} | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-item-disambiguation"}} | |
{{~#scope~}} | |
{{~#set "exclusive" (spread exclusiveExpressions exclusiveReadings)}}{{/set~}} | |
{{~#if (op ">" (property (get "exclusive") "length") 0)~}} | |
{{~#set "separator" ""~}}{{/set~}} | |
<em>({{#each (get "exclusive")~}} | |
{{~#get "separator"}}{{/get~}}{{{.}}} | |
{{~/each}} only) </em> | |
{{~/if~}} | |
{{~/scope~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-list"}} | |
{{~#if (op ">" pitchCount 0)~}} | |
{{~#if (op ">" pitchCount 1)~}}<div>{{~/if~}} | |
{{~#each pitches~}} | |
{{~#each pitches~}} | |
{{~#if (op ">" ../../pitchCount 1)~}}<div>{{~/if~}} | |
{{~> pitch-accent-item-disambiguation~}} | |
{{~> pitch-accent-item format=../../format~}} | |
{{~#if (op ">" ../../pitchCount 1)~}}</div>{{~/if~}} | |
{{~/each~}} | |
{{~/each~}} | |
{{~#if (op ">" pitchCount 1)~}}</div>{{~/if~}} | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "pitch-accents"}} | |
{{~> pitch-accent-list format='downstep-notation'~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-graphs"}} | |
{{~> pitch-accent-list format='graph'~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-positions"}} | |
{{~> pitch-accent-list format='position'~}} | |
{{/inline}} | |
{{! End Pitch Accents }} | |
{{#*inline "clipboard-image"}} | |
{{~#if definition.clipboardImageFileName~}} | |
<img src="{{definition.clipboardImageFileName}}" /> | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "clipboard-text"}} | |
{{~#if definition.clipboardText~}}{{definition.clipboardText}}{{~/if~}} | |
{{/inline}} | |
{{#*inline "conjugation"}} | |
{{~#if definition.reasons~}} | |
{{~#each definition.reasons~}} | |
{{~#if (op ">" @index 0)}} « {{/if~}} | |
{{.}} | |
{{~/each~}} | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "frequencies"}} | |
{{~#if (op ">" definition.frequencies.length 0)~}} | |
<div style="text-align: center;"> | |
{{~#each definition.frequencies~}} | |
{{~#if (op "!==" ../definition.type "kanji")~}} | |
{{~#if (op "||" (op ">" ../uniqueExpressions.length 1) (op ">" ../uniqueReadings.length 1))~}}( | |
{{~#furigana expression reading~}}{{~/furigana~}} | |
) {{/if~}} | |
{{~/if~}} | |
{{~dictionary}}: {{#if @last}}{{frequency~}}{{else}}{{frequency~}}, {{/if}} | |
{{~/each~}} | |
</div> | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "stroke-count"}} | |
{{~#scope~}} | |
{{~#set "found" false}}{{/set~}} | |
{{~#each definition.stats.misc~}} | |
{{~#if (op "===" name "strokes")~}} | |
{{~#set "found" true}}{{/set~}} | |
Stroke count: {{value}} | |
{{~/if~}} | |
{{~/each~}} | |
{{~#if (op "!" (get "found"))~}} | |
Stroke count: Unknown | |
{{~/if~}} | |
{{~/scope~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-categories"}} | |
{{~#each (pitchCategories .)~}} | |
{{.}}{{#unless @last}}, {{/unless}} | |
{{~/each~}} | |
{{/inline}} | |
{{#*inline "part-of-speech-pretty"}} | |
{{~#if (op "===" . "v1")~}}Ichidan verb | |
{{~else if (op "===" . "v5")~}}Godan verb | |
{{~else if (op "===" . "vk")~}}Kuru verb | |
{{~else if (op "===" . "vs")~}}Suru verb | |
{{~else if (op "===" . "vz")~}}Zuru verb | |
{{~else if (op "===" . "adj-i")~}}I-adjective | |
{{~else if (op "===" . "n")~}}Noun | |
{{~else~}}{{.}} | |
{{~/if~}} | |
{{/inline}} | |
{{#*inline "part-of-speech"}} | |
{{~#scope~}} | |
{{~#if (op "!==" definition.type "kanji")~}} | |
{{~#set "first" true}}{{/set~}} | |
{{~#each definition.expressions~}} | |
{{~#each wordClasses~}} | |
{{~#unless (get (concat "used_" .))~}} | |
{{~> part-of-speech-pretty . ~}} | |
{{~#unless (get "first")}}, {{/unless~}} | |
{{~#set (concat "used_" .) true~}}{{~/set~}} | |
{{~#set "first" false~}}{{~/set~}} | |
{{~/unless~}} | |
{{~/each~}} | |
{{~/each~}} | |
{{~#if (get "first")~}}Unknown{{~/if~}} | |
{{~/if~}} | |
{{~/scope~}} | |
{{/inline}} | |
{{#*inline "search-query"}} | |
{{~#multiLine}}{{context.fullQuery}}{{/multiLine~}} | |
{{/inline}} | |
{{#*inline "pitch-accent-categories"}} | |
{{~#each (pitchCategories .)~}} | |
{{~#if @first}}{{.}}{{~/if}} | |
{{~/each~}} | |
{{/inline}} | |
{{~> (lookup . "marker") ~}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment