diff options
author | StefanVukovic99 <stefanvukovic44@gmail.com> | 2024-01-20 02:25:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-20 01:25:23 +0000 |
commit | 2b87c919bcd879c7f356308bc522b95f33e35f3b (patch) | |
tree | 1301aa8bf3d9b91ad96bbe9372a66dceba190346 /ext/data | |
parent | 48f1d012ad5045319d4e492dfbefa39da92817b2 (diff) |
Dictionary deinflections (#503)
* wip
* wip
* fix v3
* wip
* fix tests
* fix maxitems
* hide deinflection definitions
* fix anki template
* undo unnecessary change
* delete console.log
* refactor
* add set false to handlebars
* lint
* fix tests
* fix comments
* fix
* use Map in areArraysEqualIgnoreOrder
* move inflection source icons to css
* lint
* improve naming
* fix tests
* add test
* typescript
* use for of
* wip
* comments
* anki template upgrade
* update descriptions
Diffstat (limited to 'ext/data')
4 files changed, 94 insertions, 7 deletions
diff --git a/ext/data/schemas/dictionary-term-bank-v3-schema.json b/ext/data/schemas/dictionary-term-bank-v3-schema.json index 8243f2a7..066229c3 100644 --- a/ext/data/schemas/dictionary-term-bank-v3-schema.json +++ b/ext/data/schemas/dictionary-term-bank-v3-schema.json @@ -400,7 +400,7 @@ }, { "type": "string", - "description": "String of space-separated rule identifiers for the definition which is used to validate delinflection. Valid rule identifiers are: v1: ichidan verb; v5: godan verb; vs: suru verb; vk: kuru verb; adj-i: i-adjective. An empty string corresponds to words which aren't inflected, such as nouns." + "description": "String of space-separated rule identifiers for the definition which is used to validate deinflection. An empty string should be used for words which aren't inflected." }, { "type": "number", @@ -535,6 +535,24 @@ } } ] + }, + { + "type": "array", + "description": "Deinflection of the term to an uninflected term.", + "items": [ + { + "type": "string", + "description": "The uninflected term." + }, + { + "type": "array", + "description": "A chain of inflection rules that produced the inflected term", + "items": { + "type": "string", + "description": "A single inflection rule." + } + } + ] } ] } diff --git a/ext/data/schemas/options-schema.json b/ext/data/schemas/options-schema.json index 8cf00400..24f3a6b0 100644 --- a/ext/data/schemas/options-schema.json +++ b/ext/data/schemas/options-schema.json @@ -823,7 +823,8 @@ "enabled", "allowSecondarySearches", "definitionsCollapsible", - "partsOfSpeechFilter" + "partsOfSpeechFilter", + "useDeinflections" ], "properties": { "name": { @@ -850,6 +851,10 @@ "partsOfSpeechFilter": { "type": "boolean", "default": true + }, + "useDeinflections": { + "type": "boolean", + "default": true } } } diff --git a/ext/data/templates/anki-field-templates-upgrade-v24.handlebars b/ext/data/templates/anki-field-templates-upgrade-v24.handlebars new file mode 100644 index 00000000..2288737c --- /dev/null +++ b/ext/data/templates/anki-field-templates-upgrade-v24.handlebars @@ -0,0 +1,52 @@ +{{#*inline "phonetic-transcriptions"}} + {{~#if (op ">" definition.phoneticTranscriptions.length 0)~}} + <ul> + {{~#each definition.phoneticTranscriptions~}} + {{~#each phoneticTranscriptions~}} + <li> + {{~set "any" false~}} + {{~#each tags~}} + {{~#if (get "any")}}, {{else}}<i>({{/if~}} + {{name}} + {{~set "any" true~}} + {{~/each~}} + {{~#if (get "any")}})</i> {{/if~}} + {{ipa~}} + </li> + {{~/each~}} + {{~/each~}} + </ul> + {{~/if~}} +{{/inline}} + +{{<<<<<<<}} +{{#*inline "conjugation"}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 0)~}} + {{~set "multiple" false~}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 1)~}} + {{~set "multiple" true~}} + {{~/if~}} + {{~#if (get "multiple")~}}<ul>{{/if~}} + {{~#each definition.inflectionRuleChainCandidates~}} + {{~#if (op ">" inflectionRules.length 0)~}} + {{~#if (get "multiple")~}}<li>{{/if~}} + {{~#each inflectionRules~}} + {{~#if (op ">" @index 0)}} « {{/if~}} + {{.}} + {{~/each~}} + {{~#if (get "multiple")~}}</li>{{/if~}} + {{~/if~}} + {{~/each~}} + {{~#if (get "multiple")~}}</ul>{{/if~}} + {{~/if~}} +{{/inline}} +{{=======}} +{{#*inline "conjugation"}} + {{~#if definition.reasons~}} + {{~#each definition.reasons~}} + {{~#if (op ">" @index 0)}} « {{/if~}} + {{.}} + {{~/each~}} + {{~/if~}} +{{/inline}} +{{>>>>>>>>}} diff --git a/ext/data/templates/default-anki-field-templates.handlebars b/ext/data/templates/default-anki-field-templates.handlebars index f23b9d0b..818677ce 100644 --- a/ext/data/templates/default-anki-field-templates.handlebars +++ b/ext/data/templates/default-anki-field-templates.handlebars @@ -261,11 +261,23 @@ {{/inline}} {{#*inline "conjugation"}} - {{~#if definition.reasons~}} - {{~#each definition.reasons~}} - {{~#if (op ">" @index 0)}} « {{/if~}} - {{.}} - {{~/each~}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 0)~}} + {{~set "multiple" false~}} + {{~#if (op ">" definition.inflectionRuleChainCandidates.length 1)~}} + {{~set "multiple" true~}} + {{~/if~}} + {{~#if (get "multiple")~}}<ul>{{/if~}} + {{~#each definition.inflectionRuleChainCandidates~}} + {{~#if (op ">" inflectionRules.length 0)~}} + {{~#if (get "multiple")~}}<li>{{/if~}} + {{~#each inflectionRules~}} + {{~#if (op ">" @index 0)}} « {{/if~}} + {{.}} + {{~/each~}} + {{~#if (get "multiple")~}}</li>{{/if~}} + {{~/if~}} + {{~/each~}} + {{~#if (get "multiple")~}}</ul>{{/if~}} {{~/if~}} {{/inline}} |