aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-11-27 12:11:45 -0500
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-12-29 12:33:15 -0500
commit277e13f22fe892bf4203696248f8304c20dca957 (patch)
treee8b86d3b66e28ccfadc23539cfbb6c14016bf648
parentca2aca19c5500cd6b55f90a8792ba13a4c064ae4 (diff)
Add schema file for options
-rw-r--r--ext/bg/data/options-schema.json533
1 files changed, 533 insertions, 0 deletions
diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json
new file mode 100644
index 00000000..c086052b
--- /dev/null
+++ b/ext/bg/data/options-schema.json
@@ -0,0 +1,533 @@
+{
+ "$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",
+ "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": [
+ "version",
+ "general",
+ "audio",
+ "scanning",
+ "dictionaries",
+ "parsing",
+ "anki"
+ ],
+ "properties": {
+ "version": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "general": {
+ "type": "object",
+ "required": [
+ "enable",
+ "resultOutputMode",
+ "debugInfo",
+ "maxResults",
+ "showAdvanced",
+ "popupDisplayMode",
+ "popupWidth",
+ "popupHeight",
+ "popupHorizontalOffset",
+ "popupVerticalOffset",
+ "popupHorizontalOffset2",
+ "popupVerticalOffset2",
+ "popupHorizontalTextPosition",
+ "popupVerticalTextPosition",
+ "showGuide",
+ "compactTags",
+ "compactGlossaries",
+ "mainDictionary",
+ "popupTheme",
+ "popupOuterTheme",
+ "customPopupCss",
+ "customPopupOuterCss",
+ "enableWanakana",
+ "enableClipboardMonitor"
+ ],
+ "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"
+ },
+ "showGuide": {
+ "type": "boolean",
+ "default": true
+ },
+ "compactTags": {
+ "type": "boolean",
+ "default": false
+ },
+ "compactGlossaries": {
+ "type": "boolean",
+ "default": false
+ },
+ "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
+ },
+ "enableClipboardMonitor": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "audio": {
+ "type": "object",
+ "required": [
+ "enabled",
+ "sources",
+ "volume",
+ "autoPlay",
+ "customSourceUrl",
+ "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"
+ }
+ },
+ "volume": {
+ "type": "number",
+ "minimum": 0,
+ "maximum": 100,
+ "default": 100
+ },
+ "autoPlay": {
+ "type": "boolean",
+ "default": false
+ },
+ "customSourceUrl": {
+ "type": "string",
+ "default": ""
+ },
+ "textToSpeechVoice": {
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "scanning": {
+ "type": "object",
+ "required": [
+ "middleMouse",
+ "touchInputEnabled",
+ "selectText",
+ "alphanumeric",
+ "autoHideResults",
+ "delay",
+ "length",
+ "modifier",
+ "deepDomScan",
+ "popupNestingMaxDepth",
+ "enablePopupSearch",
+ "enableOnPopupExpressions",
+ "enableOnSearchPage"
+ ],
+ "properties": {
+ "middleMouse": {
+ "type": "boolean",
+ "default": true
+ },
+ "touchInputEnabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "selectText": {
+ "type": "boolean",
+ "default": true
+ },
+ "alphanumeric": {
+ "type": "boolean",
+ "default": true
+ },
+ "autoHideResults": {
+ "type": "boolean",
+ "default": false
+ },
+ "delay": {
+ "type": "number",
+ "minimum": 0,
+ "default": 20
+ },
+ "length": {
+ "type": "integer",
+ "minimum": 1,
+ "default": 10
+ },
+ "modifier": {
+ "type": "string",
+ "enum": ["none", "alt", "ctrl", "shift"],
+ "default": "shift"
+ },
+ "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
+ }
+ }
+ },
+ "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",
+ "readingMode"
+ ],
+ "properties": {
+ "enableScanningParser": {
+ "type": "boolean",
+ "default": true
+ },
+ "enableMecabParser": {
+ "type": "boolean",
+ "default": false
+ },
+ "selectedParser": {
+ "type": ["string", "null"],
+ "default": null
+ },
+ "readingMode": {
+ "type": "string",
+ "enum": ["hiragana", "katakana", "romaji"],
+ "default": "hiragana"
+ }
+ }
+ },
+ "anki": {
+ "type": "object",
+ "required": [
+ "enable",
+ "server",
+ "tags",
+ "sentenceExt",
+ "screenshot",
+ "terms",
+ "kanji",
+ "fieldTemplates"
+ ],
+ "properties": {
+ "enable": {
+ "type": "boolean",
+ "default": false
+ },
+ "server": {
+ "type": "string",
+ "default": "http://127.0.0.1:8765"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": [
+ "yomichan"
+ ]
+ },
+ "sentenceExt": {
+ "type": "integer",
+ "minimum": 0,
+ "default": 200
+ },
+ "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": ""
+ }
+ }
+ }
+ },
+ "fieldTemplates": {
+ "type": ["string", "null"],
+ "default": null
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "profileCurrent": {
+ "type": "integer",
+ "minimum": 0,
+ "default": 0
+ },
+ "global": {
+ "type": "object",
+ "required": [
+ "database"
+ ],
+ "properties": {
+ "database": {
+ "type": "object",
+ "required": [
+ "prefixWildcardsSupported"
+ ],
+ "properties": {
+ "prefixWildcardsSupported": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ }
+ }
+ }
+ }
+}