summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpraschke <stel@comfy.monster>2023-10-22 15:21:38 +0100
committerpraschke <stel@comfy.monster>2023-10-22 19:13:54 +0100
commitf88bded2f05b440a8aa7beb980d8c5d76b150011 (patch)
tree32e8ed18f9915af1bb6bcd525896a81d1605919e
parent3b886960050e9c41071e032b0cf92d0d5ab547f5 (diff)
docs: note changes to custom templates in the readme
-rw-r--r--README.md23
-rw-r--r--docs/templates.md12
2 files changed, 28 insertions, 7 deletions
diff --git a/README.md b/README.md
index 0da2c617..2c838645 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 dcdf9d1b..030ca3d2 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
</details>
-### `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.
<details>
@@ -314,7 +314,7 @@ If an unknown operator is specified, the `undefined` value is returned.
<details>
<summary>Syntax:</summary>
- <code>{{#op <i>operator</i> <i>operand1</i> <i>[operand2]</i> <i>[operand3]</i>}}{{/op}}</code>
+ <code>{{op <i>operator</i> <i>operand1</i> <i>[operand2]</i> <i>[operand3]</i>}}</code>
* _`operator`_ <br>
One of the unary, binary, or ternary operators.
@@ -329,7 +329,7 @@ If an unknown operator is specified, the `undefined` value is returned.
<summary>Example:</summary>
```handlebars
- {{#if (op "===" value1 value2)}}Values are equal{{/op~}}<br>
+ {{#if (op "===" value1 value2)}}Values are equal{{/if~}}<br>
{{~#op "-" value1}}{{/op~}}<br>
{{~op "?:" value1 "a" "b"}}
```
@@ -399,7 +399,7 @@ Assigns a value to the custom state stack.
</details>
-### `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.
<details>
<summary>Syntax:</summary>