diff --git a/README.md b/README.md index 0da2c61795..2c838645ac 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ updates automatically. ## Migrating from Yomichan +### Exporting Data + If you are an existing user of Yomichan, you can export your dictionary collection and settings such that they can be imported into Yomitan to reflect your setup exactly as it was. You can export your settings from Yomichan's Settings page. Go to the `Backup` section and click on `Export Settings`. @@ -81,7 +83,26 @@ You can export your settings from Yomichan's Settings page. Go to the `Backup` s Yomichan doesn't have first-class support to export the dictionary collection. Please follow the instructions provided in the following link to export your data: https://github.com/themoeway/yomichan-data-exporter#steps-to-export-the-data -You can them import the exported files into Yomitan from the `Backup` section of the `Settings` page. Please see [the section on importing dictionaries](#importing-dictionaries) further below for more explicit steps. +You can then import the exported files into Yomitan from the `Backup` section of the `Settings` page. Please see [the section on importing dictionaries](#importing-dictionaries) further below for more explicit steps. + +### Custom Templates + +If you do not use custom templates for Anki note creation, this section can be skipped. + +Due to security concerns, an alternate implementation of Handlebars is being used which behaves slightly differently. +This revealed a bug in four of Yomitan's template helpers, which have now been fixed in the default templates. If your +custom templates use the following helpers, please ensure their use matches the corrected forms. + +Helper | Example | Corrected +-------|---------|---------- +`formatGlossary` | `{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}` | `{{formatGlossary ../dictionary .}}` +`furigana` | `{{#furigana}}{{{definition}}}{{/furigana}}` | `{{furigana definition}}` +`furiganaPlain` | `{{~#furiganaPlain}}{{{.}}}{{/furiganaPlain~}}` | `{{~furiganaPlain .~}}` +`dumpObject` | `{{#dumpObject}}{{{.}}}{{/dumpObject}}` | `{{dumpObject .}}` + +Authors of custom templates may be interested to know that other helpers previously used and documented in the block +form (e.g. `{{#set "key" "value"}}{{/set}}`), while not broken by this change, may also be replaced with the less verbose +form (e.g. `{{set "key" "value"}}`). The default templates and helper documentation have been changed to reflect this. ## Dictionaries diff --git a/docs/templates.md b/docs/templates.md index dcdf9d1b67..030ca3d247 100644 --- a/docs/templates.md +++ b/docs/templates.md @@ -235,9 +235,9 @@ Creates a set of all unique tags for the definition and returns a text represent -### `eachUpTo` +### `#eachUpTo` -Similar to the built-in `each` function, but iterates up to a maximum count. +Similar to the built-in `#each` function, but iterates up to a maximum count. If the iterable is falsy or empty, the `else` condition will be used.
@@ -314,7 +314,7 @@ If an unknown operator is specified, the `undefined` value is returned.
Syntax: - {{#op operator operand1 [operand2] [operand3]}}{{/op}} + {{op operator operand1 [operand2] [operand3]}} * _`operator`_
One of the unary, binary, or ternary operators. @@ -329,7 +329,7 @@ If an unknown operator is specified, the `undefined` value is returned. Example: ```handlebars - {{#if (op "===" value1 value2)}}Values are equal{{/op~}}
+ {{#if (op "===" value1 value2)}}Values are equal{{/if~}}
{{~#op "-" value1}}{{/op~}}
{{~op "?:" value1 "a" "b"}} ``` @@ -399,7 +399,7 @@ Assigns a value to the custom state stack.
-### `scope` +### `#scope` Pushes a new variable scope to the custom state stack. Variable assignments are applied to the most recent scope, @@ -538,7 +538,7 @@ Returns an array of the mora for a kana string. ### `typeof` -Returns the type of a value. +Returns the type of a value. Use of `#typeof` in the block form may be nonportable.
Syntax: