Definitions
This page is dedicated to showcasing how definitions can be easily chosen, overwritten and customized overall.
Note
This page is primarily intended for monolingual dictionary users, as the sheer amount of possible monolingual dictionaries may require specific customizations for each individual dictionary.
Dictionary Placement¶
This section deals with how the custom Yomichan Templates categorizes dictionaries, and how to properly customize them for your setup.
Expected Dictionary Placement¶
Dictionaries from Yomichan are sorted into the following fields:
-
PrimaryDefinition
: A dictionary specified by the user. Bilingual by default.This can be changed in many different ways.
-
SecondaryDefinition
: All bilingual dictionaries outside of the one inPrimaryDefinition
-
ExtraDefinitions
: All monolingual dictionaries outside of the one inPrimaryDefinition
-
UtilityDictionaries
: All traditionally-formatted dictionaries that do not belong in any of the above categories (in other words, does not provide the meaning of the word).An example is the JMdict Surface Forms dictionary
Note
This does not include pitch accent dictionaries, frequency lists, or kanji dictionaries, as these are not traditionally-formatted dictionaries.
The way that the dictionaries are sorted into the appropriate fields is by assigning a category to each individual dictionary.
Verifying Categories¶
You can check that your dictionaries are correctly categorized with the
{jpmn-test-dict-type}
marker.
Under the Anki Templates code, replace Card field
with {jpmn-test-dict-type}
and press Test
.
An example output of the above (on the word 結構) is the following:
「旺文社国語辞典 第十一版」: monolingual
「明鏡国語辞典 第二版」: monolingual
「ハイブリッド新辞林」: monolingual
「新明解国語辞典 第五版」: monolingual
「デジタル大辞泉」: monolingual
「NHK日本語発音アクセント新辞典」: utility
「JMDict Surface Forms」: utility
「JMdict (English)」: bilingual
「JMdict (English)」: bilingual
「JMdict (English)」: bilingual
「JMdict (English)」: bilingual
「JMdict (English)」: bilingual
「新和英」: bilingual
If a dictionary is miscategorized,
you will have to edit bilingual-dict-regex
or utility-dict-regex
at the top of the template code.
Monolingual dictionaries are considered to be dictionaries that aren't either
of the two above, so no handlebars code has to be changed if one were to
use more monolingual dictionaries.
To see how to edit the regex, go to this section.
Ignoring a Dictionary¶
If you want to see the dictionary on Yomichan but not have it show on Anki,
you can use the ignored-dict-regex
option.
To see how to edit the option, see the section below.
Conversely, if you want to not see the dictionary on Yomichan but want it to show up on Anki, see here.
Note
It is recommended to not use this option, so you have as much information as possible within the note. If you wish to not see a dictionary, it might be easier to collapse the dictionary.
Editing the dictionary regex¶
To modify a regex string:
-
Determine the exact tag your dictionary has. To see this, take a word that has a definition in the desired dictionary, and test
{jpmn-test-dict-type}
like above. The string inside the quotes 「」 is exactly the tag of the dictionary. -
Add the dictionary tag to the string, by replacing
ADD_x_DICTIONARIES_HERE
. For example, if your bilingual dictionary tag isAmazing Dictionary
, changeADD_BILINGUAL_DICTIONARIES_HERE
toAmazing Dictionary
.If you want to add more than one dictionary, they have to be joined with the
|
character. For example, if you want to add the bilingual dictionariesAmazing Dictionary
andSomewhat-Okay-Dictionary
, changeADD_BILINGUAL_DICTIONARIES_HERE
toAmazing Dictionary|Somewhat-Okay-Dictionary
.For completeness, here is the modified line for the second example:
Primary Definition Selection¶
Automatic Selection (Bilingual or Monolingual)¶
The dictionary for the primary definition is the first bilingual dictionary (that appears on Yomichan) by default.
This can be changed to the first monolingual dictionary by changing the following Yomichan template option to monolingual
:
{{~! valid values: "bilingual", "monolingual" ~}}
{{~#set "opt-first-definition-type" "monolingual"}}{{/set~}}
Manual Selection¶
Sometimes, you may want to override the primary definition, or highlight the definition that makes sense with the context.
By default, selecting (highlighting) the text will do nothing, to prevent any unexpected errors from happening. However, the user can set the following Yomichan template option to allow selecting text to override the automatic dictionary selection behavior:
Setting this option will enable the following behavior:
-
If nothing is selected, then the first dictionary is chosen just like normal.
-
If a dictionary is selected, then that dictionary will replace the first definition.
To disable this, set
opt-selection-text-dictionary
tofalse
. -
If a section of text is selected, then that dictionary will replace the first definition. Additionally, that section of text will be highlighted (bolded).
To disable this, set
opt-selection-text-glossary
tofalse
.Additionally, if you do not want to use the entire dictionary, and prefer that only the selected text is shown in the first definition, then set
opt-selection-text-glossary-attempt-bold
tofalse
.Where automatic bolding can fail (click here)
Automatic bolding may not always work: if the highlighted text could not be automatically detected from the custom template code, then it will fallback to simply using the highlighted text (as if you used the
{selection-text}
marker).This is most likely to fail if you select formatted parts of text, such as (but not limited to):
- line breaks
- furigana
- across multiple items in a list (common with JMdict)
Where dictionary selection can fail (click here)
This may occasionally select the wrong dictionary, but this only happens if the selected text also appears in a dictionary above the selected text.
For example, suppose you have two bilingual dictionaries. and for the word タコ, you highlight the word "octopus" and create the card. Both bilingual dictionaries will list "octopus", so even if you highlight the word "octopus" in the second bilingual dictionary, only the first bilingual dictionary will be chosen.
This is usually not a problem even if the same text appears in a dictionary above because it's the same definition regardless. Additionally, monolingual dictionaries almost never have the exact same definition for the same word. However, if you still want a specific dictionary, highlight the dictionary tag as shown above.
UI Options¶
Hiding the first line of a definition¶
See also: How to remove the numbers in the definition
The first line of the definition has various elements that can be hidden with CSS.
- Nothing is hidden. This is the default behavior.
- This hides all the text to the right of the dictionary tag.
CSS to hide extra text (click here)
New in version 0.11.0.0
(latest version: 0.11.0.4
)
The following CSS only affects only the dictionary with the tag 「旺文社国語辞典 第十一版」. To use this on more than one dictionary, copy/paste the CSS multiple times, and replace the dictionary tag.
-
Under
extra/style.scss
, add the following code: -
(Optional) Under
extra/field.scss
, add the following code:
- Removes only the dictionary tag. This doesn't look very good on most dictionaries.
CSS to hide dictionary tag(s) (click here)
The following CSS only affects only the dictionary with the tag 「旺文社国語辞典 第十一版」. To use this on more than one dictionary, copy/paste the CSS multiple times, and replace the dictionary tag.
-
Under
extra/style.scss
, add the following code: -
(Optional) Under
extra/field.scss
, add the following code:
CSS to hide JMdict's dictionary tag (click here)
If you are on a modern version of JMdict, the dictionary will contain additional tags to the right of the dictionary tag by default, such as (n), (vs), etc. The instructions above will remove all of these tags.
You may want to only remove the dictionary tag without removing the other information tags.
If your JMdict dictionary tag is exactly JMdict (English)
, then this is already the
default behavior.
However, if your dictionary tag is different, do the following
(you may have to replace JMdict
with your exact JMdict dictionary tag):
-
Under
extra/style.scss
, add the following code: -
(Optional) Under
extra/field.scss
, add the following code:
- Hides the entire first line. This is a combination of the last two, meaning it hides the dictionary tag and the text to the right.
CSS to hide the entire first line (click here)
New in version 0.11.0.0
(latest version: 0.11.0.4
)
The following SCSS only affects only the dictionary with the tag 「旺文社国語辞典 第十一版」. To use this on more than one dictionary, copy/paste the SCSS multiple times, and replace the dictionary tag.
-
Under
extra/style.scss
, add the following code: -
(Optional) Under
extra/field.scss
, add the following code:
Note
The above examples are SCSS, and not CSS. If you are using CSS, do not flatten the classes after the first line.
Example Raw CSS:
Removing the numbers in the primary definition¶
Currently, I am not aware of an easy way to only remove the numbers if there is only one item (and having them remain for multple definitions) with only CSS.
The following CSS completely nukes the numbers regardless of how many items there are in the list.
Instructions (click here)
-
Under
extra/style.scss
, add the following code:
Collapsing dictionaries¶
Warning
New as of version 0.11.1.0
. This version is currently bleeding edge, so this feature cannot be used unless you compile the templates from the dev branch.
This allows you collapse dictionaries within the Secondary Definition or Extra Definitions section.
TODO gif
Note
There are many options for the above the above module, such as overriding what dictionaries should be collapsed or not. These will not be documented here, but will be documented in the runtime options file.