diff options
Diffstat (limited to 'ext/data/schemas')
-rw-r--r-- | ext/data/schemas/custom-audio-list-schema.json | 33 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-index-schema.json | 85 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-kanji-bank-v1-schema.json | 33 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-kanji-bank-v3-schema.json | 44 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-kanji-meta-bank-v3-schema.json | 25 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-tag-bank-v3-schema.json | 32 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-term-bank-v1-schema.json | 36 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-term-bank-v3-schema.json | 125 | ||||
-rw-r--r-- | ext/data/schemas/dictionary-term-meta-bank-v3-schema.json | 105 | ||||
-rw-r--r-- | ext/data/schemas/options-schema.json | 1101 |
10 files changed, 1619 insertions, 0 deletions
diff --git a/ext/data/schemas/custom-audio-list-schema.json b/ext/data/schemas/custom-audio-list-schema.json new file mode 100644 index 00000000..2cb3ca78 --- /dev/null +++ b/ext/data/schemas/custom-audio-list-schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "required": [ + "type", + "audioSources" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "const": "audioSourceList" + }, + "audioSources": { + "type": "array", + "items": { + "type": "object", + "required": [ + "url" + ], + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + } + } +} diff --git a/ext/data/schemas/dictionary-index-schema.json b/ext/data/schemas/dictionary-index-schema.json new file mode 100644 index 00000000..09cff711 --- /dev/null +++ b/ext/data/schemas/dictionary-index-schema.json @@ -0,0 +1,85 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "description": "Index file containing information about the data contained in the dictionary.", + "required": [ + "title", + "revision" + ], + "properties": { + "title": { + "type": "string", + "description": "Title of the dictionary." + }, + "revision": { + "type": "string", + "description": "Revision of the dictionary. This value is only used for displaying information." + }, + "sequenced": { + "type": "boolean", + "default": false, + "description": "Whether or not this dictionary can be used as the primary dictionary. Primary dictionaries typically contain term/expression definitions." + }, + "format": { + "type": "integer", + "description": "Format of data found in the JSON data files.", + "enum": [1, 2, 3] + }, + "version": { + "type": "integer", + "description": "Alias for format.", + "enum": [1, 2, 3] + }, + "author": { + "type": "string", + "description": "Creator of the dictionary." + }, + "url": { + "type": "string", + "description": "URL for the source of the dictionary." + }, + "description": { + "type": "string", + "description": "Description of the dictionary data." + }, + "attribution": { + "type": "string", + "description": "Attribution information for the dictionary data." + }, + "tagMeta": { + "type": "object", + "description": "Tag information for terms and kanji. This object is obsolete and individual tag files should be used instead.", + "additionalProperties": { + "type": "object", + "description": "Information about a single tag. The object key is the name of the tag.", + "properties": { + "category": { + "type": "string", + "description": "Category for the tag." + }, + "order": { + "type": "number", + "description": "Sorting order for the tag." + }, + "notes": { + "type": "string", + "description": "Notes for the tag." + }, + "score": { + "type": "number", + "description": "Score used to determine popularity. Negative values are more rare and positive values are more frequent. This score is also used to sort search results." + } + }, + "additionalProperties": false + } + } + }, + "anyOf": [ + { + "required": ["format"] + }, + { + "required": ["version"] + } + ] +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-kanji-bank-v1-schema.json b/ext/data/schemas/dictionary-kanji-bank-v1-schema.json new file mode 100644 index 00000000..6dad5a7a --- /dev/null +++ b/ext/data/schemas/dictionary-kanji-bank-v1-schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Data file containing kanji information.", + "additionalItems": { + "type": "array", + "description": "Information about a single kanji character.", + "minItems": 4, + "items": [ + { + "type": "string", + "description": "Kanji character.", + "minLength": 1 + }, + { + "type": "string", + "description": "String of space-separated onyomi readings for the kanji character. An empty string is treated as no readings." + }, + { + "type": "string", + "description": "String of space-separated kunyomi readings for the kanji character. An empty string is treated as no readings." + }, + { + "type": "string", + "description": "String of space-separated tags for the kanji character. An empty string is treated as no tags." + } + ], + "additionalItems": { + "type": "string", + "description": "A meaning for the kanji character." + } + } +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-kanji-bank-v3-schema.json b/ext/data/schemas/dictionary-kanji-bank-v3-schema.json new file mode 100644 index 00000000..a5b82039 --- /dev/null +++ b/ext/data/schemas/dictionary-kanji-bank-v3-schema.json @@ -0,0 +1,44 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Data file containing kanji information.", + "additionalItems": { + "type": "array", + "description": "Information about a single kanji character.", + "minItems": 6, + "items": [ + { + "type": "string", + "description": "Kanji character.", + "minLength": 1 + }, + { + "type": "string", + "description": "String of space-separated onyomi readings for the kanji character. An empty string is treated as no readings." + }, + { + "type": "string", + "description": "String of space-separated kunyomi readings for the kanji character. An empty string is treated as no readings." + }, + { + "type": "string", + "description": "String of space-separated tags for the kanji character. An empty string is treated as no tags." + }, + { + "type": "array", + "description": "Array of meanings for the kanji character.", + "items": { + "type": "string", + "description": "A meaning for the kanji character." + } + }, + { + "type": "object", + "description": "Various stats for the kanji character.", + "additionalProperties": { + "type": "string" + } + } + ] + } +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-kanji-meta-bank-v3-schema.json b/ext/data/schemas/dictionary-kanji-meta-bank-v3-schema.json new file mode 100644 index 00000000..62479026 --- /dev/null +++ b/ext/data/schemas/dictionary-kanji-meta-bank-v3-schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Custom metadata for kanji characters.", + "additionalItems": { + "type": "array", + "description": "Metadata about a single kanji character.", + "minItems": 3, + "items": [ + { + "type": "string", + "minLength": 1 + }, + { + "type": "string", + "enum": ["freq"], + "description": "Type of data. \"freq\" corresponds to frequency information." + }, + { + "type": ["string", "number"], + "description": "Data for the character." + } + ] + } +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-tag-bank-v3-schema.json b/ext/data/schemas/dictionary-tag-bank-v3-schema.json new file mode 100644 index 00000000..ee5ca64d --- /dev/null +++ b/ext/data/schemas/dictionary-tag-bank-v3-schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Data file containing tag information for terms and kanji.", + "additionalItems": { + "type": "array", + "description": "Information about a single tag.", + "minItems": 5, + "items": [ + { + "type": "string", + "description": "Tag name." + }, + { + "type": "string", + "description": "Category for the tag." + }, + { + "type": "number", + "description": "Sorting order for the tag." + }, + { + "type": "string", + "description": "Notes for the tag." + }, + { + "type": "number", + "description": "Score used to determine popularity. Negative values are more rare and positive values are more frequent. This score is also used to sort search results." + } + ] + } +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-term-bank-v1-schema.json b/ext/data/schemas/dictionary-term-bank-v1-schema.json new file mode 100644 index 00000000..6ffb26e6 --- /dev/null +++ b/ext/data/schemas/dictionary-term-bank-v1-schema.json @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Data file containing term and expression information.", + "additionalItems": { + "type": "array", + "description": "Information about a single term/expression.", + "minItems": 5, + "items": [ + { + "type": "string", + "description": "Term or expression." + }, + { + "type": "string", + "description": "Reading of the term/expression, or an empty string if the reading is the same as the term/expression." + }, + { + "type": ["string", "null"], + "description": "String of space-separated tags for the definition. An empty string is treated as no tags." + }, + { + "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." + }, + { + "type": "number", + "description": "Score used to determine popularity. Negative values are more rare and positive values are more frequent. This score is also used to sort search results." + } + ], + "additionalItems": { + "type": "string", + "description": "Single definition for the term/expression." + } + } +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-term-bank-v3-schema.json b/ext/data/schemas/dictionary-term-bank-v3-schema.json new file mode 100644 index 00000000..4790e561 --- /dev/null +++ b/ext/data/schemas/dictionary-term-bank-v3-schema.json @@ -0,0 +1,125 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Data file containing term and expression information.", + "additionalItems": { + "type": "array", + "description": "Information about a single term/expression.", + "minItems": 8, + "items": [ + { + "type": "string", + "description": "Term or expression." + }, + { + "type": "string", + "description": "Reading of the term/expression, or an empty string if the reading is the same as the term/expression." + }, + { + "type": ["string", "null"], + "description": "String of space-separated tags for the definition. An empty string is treated as no tags." + }, + { + "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." + }, + { + "type": "number", + "description": "Score used to determine popularity. Negative values are more rare and positive values are more frequent. This score is also used to sort search results." + }, + { + "type": "array", + "description": "Array of definitions for the term/expression.", + "items": { + "oneOf": [ + { + "type": "string", + "description": "Single definition for the term/expression." + }, + { + "type": "object", + "description": "Single detailed definition for the term/expression.", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of the data for this definition.", + "enum": ["text", "image"] + } + }, + "oneOf": [ + { + "required": [ + "type", + "text" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": ["text"] + }, + "text": { + "type": "string", + "description": "Single definition for the term/expression." + } + } + }, + { + "required": [ + "type", + "path" + ], + "additionalProperties": false, + "properties": { + "type": { + "type": "string", + "enum": ["image"] + }, + "path": { + "type": "string", + "description": "Path to the image file in the archive." + }, + "width": { + "type": "integer", + "description": "Preferred width of the image.", + "minimum": 1 + }, + "height": { + "type": "integer", + "description": "Preferred width of the image.", + "minimum": 1 + }, + "title": { + "type": "string", + "description": "Hover text for the image." + }, + "description": { + "type": "string", + "description": "Description of the image." + }, + "pixelated": { + "type": "boolean", + "description": "Whether or not the image should appear pixelated at sizes larger than the image's native resolution.", + "default": false + } + } + } + ] + } + ] + } + }, + { + "type": "integer", + "description": "Sequence number for the term/expression. Terms/expressions with the same sequence number can be shown together when the \"resultOutputMode\" option is set to \"merge\"." + }, + { + "type": "string", + "description": "String of space-separated tags for the term/expression. An empty string is treated as no tags." + } + ] + } +}
\ No newline at end of file diff --git a/ext/data/schemas/dictionary-term-meta-bank-v3-schema.json b/ext/data/schemas/dictionary-term-meta-bank-v3-schema.json new file mode 100644 index 00000000..ffffb546 --- /dev/null +++ b/ext/data/schemas/dictionary-term-meta-bank-v3-schema.json @@ -0,0 +1,105 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "array", + "description": "Custom metadata for terms/expressions.", + "additionalItems": { + "type": "array", + "description": "Metadata about a single term/expression.", + "minItems": 3, + "items": [ + { + "type": "string", + "description": "Term or expression." + }, + { + "type": "string", + "enum": ["freq", "pitch"], + "description": "Type of data. \"freq\" corresponds to frequency information; \"pitch\" corresponds to pitch information." + }, + { + "description": "Data for the term/expression." + } + ], + "oneOf": [ + { + "items": [ + {}, + {"enum": ["freq"]}, + { + "oneOf": [ + { + "type": ["string", "number"], + "description": "Frequency information for the term or expression." + }, + { + "type": ["object"], + "required": [ + "reading", + "frequency" + ], + "additionalProperties": false, + "properties": { + "reading": { + "type": "string", + "description": "Reading for the term or expression." + }, + "frequency": { + "type": ["string", "number"], + "description": "Frequency information for the term or expression." + } + } + } + ] + } + ] + }, + { + "items": [ + {}, + {"enum": ["pitch"]}, + { + "type": ["object"], + "description": "Pitch accent information for the term or expression.", + "required": [ + "reading", + "pitches" + ], + "additionalProperties": false, + "properties": { + "reading": { + "type": "string", + "description": "Reading for the term or expression." + }, + "pitches": { + "type": "array", + "description": "List of different pitch accent information for the term and reading combination.", + "additionalItems": { + "type": "object", + "required": [ + "position" + ], + "additionalProperties": false, + "properties": { + "position": { + "type": "integer", + "description": "Mora position of the pitch accent downstep. A value of 0 indicates that the word does not have a downstep (heiban).", + "minimum": 0 + }, + "tags": { + "type": "array", + "description": "List of tags for this pitch accent.", + "items": { + "type": "string", + "description": "Tag for this pitch accent. This typically corresponds to a certain type of part of speech." + } + } + } + } + } + } + } + ] + } + ] + } +}
\ No newline at end of file diff --git a/ext/data/schemas/options-schema.json b/ext/data/schemas/options-schema.json new file mode 100644 index 00000000..f4f5d0ca --- /dev/null +++ b/ext/data/schemas/options-schema.json @@ -0,0 +1,1101 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "required": [ + "version", + "profiles", + "profileCurrent", + "global" + ], + "properties": { + "version": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "profiles": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "required": [ + "name", + "conditionGroups", + "options" + ], + "properties": { + "name": { + "type": "string", + "default": "Default" + }, + "conditionGroups": { + "type": "array", + "items": { + "type": "object", + "required": [ + "conditions" + ], + "properties": { + "conditions": { + "type": "array", + "items": { + "type": "object", + "required": [ + "type", + "operator", + "value" + ], + "properties": { + "type": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "value": {} + } + } + } + } + } + }, + "options": { + "type": "object", + "required": [ + "general", + "popupWindow", + "audio", + "scanning", + "translation", + "dictionaries", + "parsing", + "anki", + "sentenceParsing", + "inputs", + "clipboard" + ], + "properties": { + "general": { + "type": "object", + "required": [ + "enable", + "resultOutputMode", + "debugInfo", + "maxResults", + "showAdvanced", + "popupDisplayMode", + "popupWidth", + "popupHeight", + "popupHorizontalOffset", + "popupVerticalOffset", + "popupHorizontalOffset2", + "popupVerticalOffset2", + "popupHorizontalTextPosition", + "popupVerticalTextPosition", + "popupScalingFactor", + "popupScaleRelativeToPageZoom", + "popupScaleRelativeToVisualViewport", + "showGuide", + "compactTags", + "glossaryLayoutMode", + "mainDictionary", + "popupTheme", + "popupOuterTheme", + "customPopupCss", + "customPopupOuterCss", + "enableWanakana", + "showPitchAccentDownstepNotation", + "showPitchAccentPositionNotation", + "showPitchAccentGraph", + "showIframePopupsInRootFrame", + "useSecurePopupFrameUrl", + "usePopupShadowDom", + "usePopupWindow", + "popupCurrentIndicatorMode", + "popupActionBarVisibility", + "popupActionBarLocation" + ], + "properties": { + "enable": { + "type": "boolean", + "default": true + }, + "resultOutputMode": { + "type": "string", + "enum": ["group", "merge", "split"], + "default": "group" + }, + "debugInfo": { + "type": "boolean", + "default": false + }, + "maxResults": { + "type": "integer", + "minimum": 1, + "default": 32 + }, + "showAdvanced": { + "type": "boolean", + "default": false + }, + "popupDisplayMode": { + "type": "string", + "enum": ["default", "full-width"], + "default": "default" + }, + "popupWidth": { + "type": "number", + "minimum": 0, + "default": 400 + }, + "popupHeight": { + "type": "number", + "minimum": 0, + "default": 250 + }, + "popupHorizontalOffset": { + "type": "number", + "default": 0 + }, + "popupVerticalOffset": { + "type": "number", + "default": 10 + }, + "popupHorizontalOffset2": { + "type": "number", + "default": 10 + }, + "popupVerticalOffset2": { + "type": "number", + "default": 0 + }, + "popupHorizontalTextPosition": { + "type": "string", + "enum": ["below", "above"], + "default": "below" + }, + "popupVerticalTextPosition": { + "type": "string", + "enum": ["default", "before", "after", "left", "right"], + "default": "before" + }, + "popupScalingFactor": { + "type": "number", + "default": 1 + }, + "popupScaleRelativeToPageZoom": { + "type": "boolean", + "default": false + }, + "popupScaleRelativeToVisualViewport": { + "type": "boolean", + "default": true + }, + "showGuide": { + "type": "boolean", + "default": true + }, + "compactTags": { + "type": "boolean", + "default": false + }, + "glossaryLayoutMode": { + "type": "string", + "enum": ["default", "compact"], + "default": "default" + }, + "mainDictionary": { + "type": "string" + }, + "popupTheme": { + "type": "string", + "enum": ["default", "dark"], + "default": "default" + }, + "popupOuterTheme": { + "type": "string", + "enum": ["default", "dark", "auto"], + "default": "default" + }, + "customPopupCss": { + "type": "string", + "default": "" + }, + "customPopupOuterCss": { + "type": "string", + "default": "" + }, + "enableWanakana": { + "type": "boolean", + "default": true + }, + "showPitchAccentDownstepNotation": { + "type": "boolean", + "default": true + }, + "showPitchAccentPositionNotation": { + "type": "boolean", + "default": true + }, + "showPitchAccentGraph": { + "type": "boolean", + "default": false + }, + "showIframePopupsInRootFrame": { + "type": "boolean", + "default": false + }, + "useSecurePopupFrameUrl": { + "type": "boolean", + "default": true + }, + "usePopupShadowDom": { + "type": "boolean", + "default": true + }, + "usePopupWindow": { + "type": "boolean", + "default": false + }, + "popupCurrentIndicatorMode": { + "type": "string", + "enum": ["none", "asterisk", "triangle", "bar-left", "bar-right", "dot-left", "dot-right"], + "default": "triangle" + }, + "popupActionBarVisibility": { + "type": "string", + "enum": ["auto", "always"], + "default": "auto" + }, + "popupActionBarLocation": { + "type": "string", + "enum": ["left", "right", "top", "bottom"], + "default": "top" + } + } + }, + "popupWindow": { + "type": "object", + "required": [ + "width", + "height", + "left", + "top", + "useLeft", + "useTop", + "windowType", + "windowState" + ], + "properties": { + "width": { + "type": "integer", + "minimum": 0, + "default": 400 + }, + "height": { + "type": "integer", + "minimum": 0, + "default": 250 + }, + "left": { + "type": "integer", + "default": 0 + }, + "top": { + "type": "integer", + "default": 0 + }, + "useLeft": { + "type": "boolean", + "default": false + }, + "useTop": { + "type": "boolean", + "default": false + }, + "windowType": { + "type": "string", + "enum": ["normal", "popup"], + "default": "popup" + }, + "windowState": { + "type": "string", + "enum": ["normal", "maximized", "fullscreen"], + "default": "normal" + } + } + }, + "audio": { + "type": "object", + "required": [ + "enabled", + "sources", + "volume", + "autoPlay", + "customSourceUrl", + "customSourceType", + "textToSpeechVoice" + ], + "properties": { + "enabled": { + "type": "boolean", + "default": true + }, + "sources": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "jpod101", + "jpod101-alternate", + "jisho", + "text-to-speech", + "text-to-speech-reading", + "custom" + ], + "default": "jpod101" + }, + "default": [ + "jpod101" + ] + }, + "volume": { + "type": "number", + "minimum": 0, + "maximum": 100, + "default": 100 + }, + "autoPlay": { + "type": "boolean", + "default": false + }, + "customSourceUrl": { + "type": "string", + "default": "" + }, + "customSourceType": { + "type": "string", + "enum": ["audio", "json"], + "default": "audio" + }, + "textToSpeechVoice": { + "type": "string", + "default": "" + } + } + }, + "scanning": { + "type": "object", + "required": [ + "inputs", + "preventMiddleMouse", + "touchInputEnabled", + "pointerEventsEnabled", + "selectText", + "alphanumeric", + "autoHideResults", + "delay", + "hideDelay", + "length", + "deepDomScan", + "popupNestingMaxDepth", + "enablePopupSearch", + "enableOnPopupExpressions", + "enableOnSearchPage", + "enableSearchTags", + "layoutAwareScan" + ], + "properties": { + "inputs": { + "type": "array", + "default": [ + { + "include": "shift", + "exclude": "mouse0", + "types": { + "mouse": true, + "touch": false, + "pen": false + }, + "options": { + "showAdvanced": false, + "searchTerms": true, + "searchKanji": true, + "scanOnTouchMove": true, + "scanOnPenHover": true, + "scanOnPenPress": true, + "scanOnPenRelease": false, + "preventTouchScrolling": false + } + }, + { + "include": "", + "exclude": "", + "types": { + "mouse": false, + "touch": true, + "pen": true + }, + "options": { + "showAdvanced": false, + "searchTerms": true, + "searchKanji": true, + "scanOnTouchMove": true, + "scanOnPenHover": true, + "scanOnPenPress": true, + "scanOnPenRelease": false, + "preventTouchScrolling": true + } + } + ], + "items": { + "required": [ + "include", + "exclude", + "types", + "options" + ], + "properties": { + "include": { + "type": "string", + "default": "shift" + }, + "exclude": { + "type": "string", + "default": "" + }, + "types": { + "type": "object", + "required": [ + "mouse", + "touch", + "pen" + ], + "properties": { + "mouse": { + "type": "boolean", + "default": true + }, + "touch": { + "type": "boolean", + "default": true + }, + "pen": { + "type": "boolean", + "default": true + } + } + }, + "options": { + "type": "object", + "required": [ + "showAdvanced", + "searchTerms", + "searchKanji", + "scanOnTouchMove", + "scanOnPenHover", + "scanOnPenPress", + "scanOnPenRelease", + "preventTouchScrolling" + ], + "properties": { + "showAdvanced": { + "type": "boolean", + "default": false + }, + "searchTerms": { + "type": "boolean", + "default": true + }, + "searchKanji": { + "type": "boolean", + "default": true + }, + "scanOnTouchMove": { + "type": "boolean", + "default": true + }, + "scanOnPenHover": { + "type": "boolean", + "default": true + }, + "scanOnPenPress": { + "type": "boolean", + "default": true + }, + "scanOnPenRelease": { + "type": "boolean", + "default": false + }, + "preventTouchScrolling": { + "type": "boolean", + "default": true + } + } + } + } + } + }, + "preventMiddleMouse": { + "type": "object", + "required": [ + "onWebPages", + "onPopupPages", + "onSearchPages", + "onSearchQuery" + ], + "properties": { + "onWebPages": { + "type": "boolean", + "default": false + }, + "onPopupPages": { + "type": "boolean", + "default": false + }, + "onSearchPages": { + "type": "boolean", + "default": false + }, + "onSearchQuery": { + "type": "boolean", + "default": false + } + } + }, + "touchInputEnabled": { + "type": "boolean", + "default": true + }, + "pointerEventsEnabled": { + "type": "boolean", + "default": false + }, + "selectText": { + "type": "boolean", + "default": true + }, + "alphanumeric": { + "type": "boolean", + "default": true + }, + "autoHideResults": { + "type": "boolean", + "default": false + }, + "delay": { + "type": "number", + "minimum": 0, + "default": 20 + }, + "hideDelay": { + "type": "number", + "minimum": 0, + "default": 0 + }, + "length": { + "type": "integer", + "minimum": 1, + "default": 10 + }, + "deepDomScan": { + "type": "boolean", + "default": false + }, + "popupNestingMaxDepth": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "enablePopupSearch": { + "type": "boolean", + "default": false + }, + "enableOnPopupExpressions": { + "type": "boolean", + "default": false + }, + "enableOnSearchPage": { + "type": "boolean", + "default": true + }, + "enableSearchTags": { + "type": "boolean", + "default": false + }, + "layoutAwareScan": { + "type": "boolean", + "default": false + } + } + }, + "translation": { + "type": "object", + "required": [ + "convertHalfWidthCharacters", + "convertNumericCharacters", + "convertAlphabeticCharacters", + "convertHiraganaToKatakana", + "convertKatakanaToHiragana", + "collapseEmphaticSequences", + "textReplacements" + ], + "properties": { + "convertHalfWidthCharacters": { + "type": "string", + "enum": ["false", "true", "variant"], + "default": "false" + }, + "convertNumericCharacters": { + "type": "string", + "enum": ["false", "true", "variant"], + "default": "false" + }, + "convertAlphabeticCharacters": { + "type": "string", + "enum": ["false", "true", "variant"], + "default": "false" + }, + "convertHiraganaToKatakana": { + "type": "string", + "enum": ["false", "true", "variant"], + "default": "false" + }, + "convertKatakanaToHiragana": { + "type": "string", + "enum": ["false", "true", "variant"], + "default": "variant" + }, + "collapseEmphaticSequences": { + "type": "string", + "enum": ["false", "true", "full"], + "default": "false" + }, + "textReplacements": { + "type": "object", + "required": [ + "searchOriginal", + "groups" + ], + "properties": { + "searchOriginal": { + "type": "boolean", + "default": true + }, + "groups": { + "type": "array", + "items": { + "type": "array", + "items": { + "required": [ + "pattern", + "ignoreCase", + "replacement" + ], + "properties": { + "pattern": { + "type": "string", + "default": "" + }, + "ignoreCase": { + "type": "boolean", + "default": false + }, + "replacement": { + "type": "string", + "default": "" + } + } + } + } + } + } + } + } + }, + "dictionaries": { + "type": "object", + "additionalProperties": { + "type": "object", + "required": [ + "priority", + "enabled", + "allowSecondarySearches" + ], + "properties": { + "priority": { + "type": "number", + "default": 0 + }, + "enabled": { + "type": "boolean", + "default": true + }, + "allowSecondarySearches": { + "type": "boolean", + "default": false + } + } + } + }, + "parsing": { + "type": "object", + "required": [ + "enableScanningParser", + "enableMecabParser", + "selectedParser", + "termSpacing", + "readingMode" + ], + "properties": { + "enableScanningParser": { + "type": "boolean", + "default": true + }, + "enableMecabParser": { + "type": "boolean", + "default": false + }, + "selectedParser": { + "type": ["string", "null"], + "default": null + }, + "termSpacing": { + "type": "boolean", + "default": true + }, + "readingMode": { + "type": "string", + "enum": ["hiragana", "katakana", "romaji", "none"], + "default": "hiragana" + } + } + }, + "anki": { + "type": "object", + "required": [ + "enable", + "server", + "tags", + "screenshot", + "terms", + "kanji", + "duplicateScope", + "checkForDuplicates", + "fieldTemplates", + "suspendNewCards" + ], + "properties": { + "enable": { + "type": "boolean", + "default": false + }, + "server": { + "type": "string", + "default": "http://127.0.0.1:8765" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "yomichan" + ] + }, + "screenshot": { + "type": "object", + "required": [ + "format", + "quality" + ], + "properties": { + "format": { + "type": "string", + "enum": ["png", "jpeg"], + "default": "png" + }, + "quality": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "default": 92 + } + } + }, + "terms": { + "type": "object", + "required": [ + "deck", + "model", + "fields" + ], + "properties": { + "deck": { + "type": "string", + "default": "" + }, + "model": { + "type": "string", + "default": "" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "string", + "default": "" + } + } + } + }, + "kanji": { + "type": "object", + "required": [ + "deck", + "model", + "fields" + ], + "properties": { + "deck": { + "type": "string", + "default": "" + }, + "model": { + "type": "string", + "default": "" + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "string", + "default": "" + } + } + } + }, + "duplicateScope": { + "type": "string", + "default": "collection", + "enum": ["collection", "deck", "deck-root"] + }, + "checkForDuplicates": { + "type": "boolean", + "default": true + }, + "fieldTemplates": { + "type": ["string", "null"], + "default": null + }, + "suspendNewCards": { + "type": "boolean", + "default": false + } + } + }, + "sentenceParsing": { + "type": "object", + "required": [ + "scanExtent", + "enableTerminationCharacters", + "terminationCharacters" + ], + "properties": { + "scanExtent": { + "type": "integer", + "minimum": 0, + "default": 200 + }, + "enableTerminationCharacters": { + "type": "boolean", + "default": true + }, + "terminationCharacters": { + "type": "array", + "items": { + "type": "object", + "required": [ + "enabled", + "character1", + "character2", + "includeCharacterAtStart", + "includeCharacterAtEnd" + ], + "properties": { + "enabled": { + "type": "boolean", + "default": true + }, + "character1": { + "type": "string", + "default": "\"", + "minLength": 1, + "maxLength": 1 + }, + "character2": { + "type": ["string", "null"], + "default": "\"", + "minLength": 1, + "maxLength": 1 + }, + "includeCharacterAtStart": { + "type": "boolean", + "default": false + }, + "includeCharacterAtEnd": { + "type": "boolean", + "default": false + } + } + }, + "default": [ + {"enabled": true, "character1": "「", "character2": "」", "includeCharacterAtStart": false, "includeCharacterAtEnd": false}, + {"enabled": true, "character1": "『", "character2": "』", "includeCharacterAtStart": false, "includeCharacterAtEnd": false}, + {"enabled": true, "character1": "\"", "character2": "\"", "includeCharacterAtStart": false, "includeCharacterAtEnd": false}, + {"enabled": true, "character1": "'", "character2": "'", "includeCharacterAtStart": false, "includeCharacterAtEnd": false}, + {"enabled": true, "character1": ".", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": "!", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": "?", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": ".", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": "。", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": "!", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": "?", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true}, + {"enabled": true, "character1": "…", "character2": null, "includeCharacterAtStart": false, "includeCharacterAtEnd": true} + ] + } + } + }, + "inputs": { + "type": "object", + "required": [ + "hotkeys" + ], + "properties": { + "hotkeys": { + "type": "array", + "items": { + "type": "object", + "required": [ + "action", + "key", + "modifiers", + "scopes", + "enabled" + ], + "properties": { + "action": { + "type": "string", + "default": "" + }, + "key": { + "type": ["string", "null"], + "default": null + }, + "modifiers": { + "type": "array", + "items": { + "type": "string", + "enum": ["alt", "ctrl", "shift", "meta"], + "default": "alt" + } + }, + "scopes": { + "type": "array", + "items": { + "type": "string", + "enum": ["popup", "search", "web"], + "default": "popup" + }, + "default": ["popup", "search"] + }, + "enabled": { + "type": "boolean", + "default": true + } + } + }, + "default": [ + {"action": "close", "key": "Escape", "modifiers": [], "scopes": ["popup"], "enabled": true}, + {"action": "focusSearchBox", "key": "Escape", "modifiers": [], "scopes": ["search"], "enabled": true}, + {"action": "previousEntry3", "key": "PageUp", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "nextEntry3", "key": "PageDown", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "lastEntry", "key": "End", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "firstEntry", "key": "Home", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "previousEntry", "key": "ArrowUp", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "nextEntry", "key": "ArrowDown", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "historyBackward", "key": "KeyB", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "historyForward", "key": "KeyF", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "addNoteKanji", "key": "KeyK", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "addNoteTermKanji", "key": "KeyE", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "addNoteTermKana", "key": "KeyR", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "playAudio", "key": "KeyP", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "viewNote", "key": "KeyV", "modifiers": ["alt"], "scopes": ["popup", "search"], "enabled": true}, + {"action": "copyHostSelection", "key": "KeyC", "modifiers": ["ctrl"], "scopes": ["popup"], "enabled": true} + ] + } + } + }, + "clipboard": { + "type": "object", + "required": [ + "enableBackgroundMonitor", + "enableSearchPageMonitor", + "autoSearchContent", + "maximumSearchLength" + ], + "properties": { + "enableBackgroundMonitor": { + "type": "boolean", + "default": false + }, + "enableSearchPageMonitor": { + "type": "boolean", + "default": false + }, + "autoSearchContent": { + "type": "boolean", + "default": true + }, + "maximumSearchLength": { + "type": "integer", + "default": 1000, + "minimum": 0 + } + } + } + } + } + } + } + }, + "profileCurrent": { + "type": "integer", + "minimum": 0, + "default": 0 + }, + "global": { + "type": "object", + "required": [ + "database", + "useSettingsV2" + ], + "properties": { + "database": { + "type": "object", + "required": [ + "prefixWildcardsSupported" + ], + "properties": { + "prefixWildcardsSupported": { + "type": "boolean", + "default": false + } + } + }, + "useSettingsV2": { + "type": "boolean", + "default": true + } + } + } + } +} |