Created
October 3, 2022 04:59
-
-
Save tomodutch/0fa4bdfaccbdb9d656ae8218cdba4fb5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"version": 0, | |
"date": "2022-10-03 04:58:32", | |
"url": "chrome-extension://ogmnaimimemjmbakcfefmnahgdfhfami/", | |
"manifest": { | |
"author": "Alex Yatskov", | |
"background": { | |
"page": "background.html", | |
"persistent": true | |
}, | |
"browser_action": { | |
"default_icon": { | |
"16": "images/icon16.png", | |
"19": "images/icon19.png", | |
"32": "images/icon32.png", | |
"38": "images/icon38.png", | |
"48": "images/icon48.png", | |
"64": "images/icon64.png", | |
"128": "images/icon128.png" | |
}, | |
"default_popup": "action-popup.html", | |
"default_title": "Yomichan" | |
}, | |
"commands": { | |
"openInfoPage": { | |
"description": "Open the info page" | |
}, | |
"openPopupWindow": { | |
"description": "Open the popup window" | |
}, | |
"openSearchPage": { | |
"description": "Open the search page", | |
"suggested_key": { | |
"default": "Alt+Insert" | |
} | |
}, | |
"openSettingsPage": { | |
"description": "Open the settings page" | |
}, | |
"toggleTextScanning": { | |
"description": "Toggle text scanning on/off", | |
"suggested_key": { | |
"default": "Alt+Delete" | |
} | |
} | |
}, | |
"content_scripts": [ | |
{ | |
"all_frames": true, | |
"js": [ | |
"js/core.js", | |
"js/yomichan.js", | |
"js/app/frontend.js", | |
"js/app/popup.js", | |
"js/app/popup-factory.js", | |
"js/app/popup-proxy.js", | |
"js/app/popup-window.js", | |
"js/app/theme-controller.js", | |
"js/comm/api.js", | |
"js/comm/cross-frame-api.js", | |
"js/comm/frame-ancestry-handler.js", | |
"js/comm/frame-client.js", | |
"js/comm/frame-offset-forwarder.js", | |
"js/data/sandbox/string-util.js", | |
"js/dom/dom-text-scanner.js", | |
"js/dom/document-util.js", | |
"js/dom/text-source-element.js", | |
"js/dom/text-source-range.js", | |
"js/input/hotkey-handler.js", | |
"js/language/text-scanner.js", | |
"js/script/dynamic-loader.js", | |
"js/app/content-script-main.js" | |
], | |
"match_about_blank": true, | |
"matches": [ | |
"http://*/*", | |
"https://*/*", | |
"file://*/*" | |
], | |
"run_at": "document_idle" | |
} | |
], | |
"content_security_policy": "default-src 'self'; img-src blob: 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *", | |
"description": "Japanese dictionary with Anki integration", | |
"differential_fingerprint": "1.539873214c72c6ad165fa4f098ae3a9b5c94a062f06d64b5950902b7a03cd30c", | |
"icons": { | |
"16": "images/icon16.png", | |
"19": "images/icon19.png", | |
"32": "images/icon32.png", | |
"38": "images/icon38.png", | |
"48": "images/icon48.png", | |
"64": "images/icon64.png", | |
"128": "images/icon128.png" | |
}, | |
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAug/0Wtc35jGyy+Jkf4Kt9DUAzvziCJbhwlwzdro0cPnN+2K6Y2rCBVgAJln7SffCKVWa0k6BM3D7m7yydAECgSo8VUn2zUgInXpfQAuI2dG+6OEi0SOu2SkXJFvvAMjM/JAXY0zQRofnxeDRqvT7EtHW9lLwtgLTBuJObuq5zCHAPFa3PZ5ZORvUEmQZ2HDxUxaUZzsFW4kZ/rxPaNXTWe+qM30wqvlk79DBUJVq9zlzsDGM6G5qWcCk3vT5MEGuZVK7IPi6w9dPfOA3myicuywhDxumteg6wFraarMMAR2Stc80Yb9pCZT5Jav9e7eG97DuBAh97IOKrfI6mU8CkwIDAQAB", | |
"manifest_version": 2, | |
"minimum_chrome_version": "57.0.0.0", | |
"name": "Yomichan", | |
"optional_permissions": [ | |
"clipboardRead", | |
"nativeMessaging", | |
"webNavigation" | |
], | |
"options_ui": { | |
"open_in_tab": true, | |
"page": "settings.html" | |
}, | |
"permissions": [ | |
"<all_urls>", | |
"storage", | |
"clipboardWrite", | |
"unlimitedStorage", | |
"webRequest", | |
"webRequestBlocking" | |
], | |
"sandbox": { | |
"content_security_policy": "sandbox allow-scripts; default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'unsafe-inline'", | |
"pages": [ | |
"template-renderer.html" | |
] | |
}, | |
"update_url": "https://clients2.google.com/service/update2/crx", | |
"version": "22.9.9.2", | |
"web_accessible_resources": [ | |
"popup.html", | |
"template-renderer.html" | |
] | |
}, | |
"environment": { | |
"browser": "chrome", | |
"platform": { | |
"os": "android" | |
} | |
}, | |
"userAgent": "Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Mobile Safari/537.36", | |
"permissions": { | |
"origins": [ | |
"<all_urls>", | |
"chrome://favicon/*", | |
"file:///*", | |
"http://*/*", | |
"http://docs.google.com/*", | |
"https://*/*", | |
"https://docs.google.com/*" | |
], | |
"permissions": [ | |
"clipboardWrite", | |
"storage", | |
"unlimitedStorage", | |
"webRequest", | |
"webRequestBlocking" | |
] | |
}, | |
"options": { | |
"version": 20, | |
"profiles": [ | |
{ | |
"name": "Default", | |
"conditionGroups": [], | |
"options": { | |
"general": { | |
"enable": true, | |
"resultOutputMode": "group", | |
"debugInfo": false, | |
"maxResults": 32, | |
"showAdvanced": true, | |
"popupDisplayMode": "default", | |
"popupWidth": 400, | |
"popupHeight": 250, | |
"popupHorizontalOffset": 0, | |
"popupVerticalOffset": 10, | |
"popupHorizontalOffset2": 10, | |
"popupVerticalOffset2": 0, | |
"popupHorizontalTextPosition": "below", | |
"popupVerticalTextPosition": "before", | |
"popupScalingFactor": 1, | |
"popupScaleRelativeToPageZoom": true, | |
"popupScaleRelativeToVisualViewport": false, | |
"showGuide": true, | |
"compactTags": false, | |
"glossaryLayoutMode": "default", | |
"mainDictionary": "KireiCake", | |
"popupTheme": "dark", | |
"popupOuterTheme": "site", | |
"customPopupCss": "", | |
"customPopupOuterCss": "", | |
"enableWanakana": true, | |
"showPitchAccentDownstepNotation": true, | |
"showPitchAccentPositionNotation": true, | |
"showPitchAccentGraph": true, | |
"showIframePopupsInRootFrame": false, | |
"useSecurePopupFrameUrl": true, | |
"usePopupShadowDom": true, | |
"usePopupWindow": false, | |
"popupCurrentIndicatorMode": "triangle", | |
"popupActionBarVisibility": "auto", | |
"popupActionBarLocation": "top", | |
"frequencyDisplayMode": "split-tags-grouped", | |
"termDisplayMode": "ruby", | |
"sortFrequencyDictionary": null, | |
"sortFrequencyDictionaryOrder": "descending" | |
}, | |
"popupWindow": { | |
"width": 400, | |
"height": 250, | |
"left": 0, | |
"top": 0, | |
"useLeft": false, | |
"useTop": false, | |
"windowType": "popup", | |
"windowState": "normal" | |
}, | |
"audio": { | |
"enabled": true, | |
"sources": [ | |
{ | |
"type": "custom-json", | |
"url": "http://localhost:8770/?expression={expression}&reading={reading}", | |
"voice": "" | |
}, | |
{ | |
"type": "jpod101", | |
"url": "", | |
"voice": "" | |
} | |
], | |
"volume": 100, | |
"autoPlay": false | |
}, | |
"scanning": { | |
"inputs": [ | |
{ | |
"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, | |
"scanOnPenMove": true, | |
"scanOnPenReleaseHover": false, | |
"scanOnTouchPress": true, | |
"scanOnTouchRelease": false, | |
"preventPenScrolling": 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, | |
"scanOnPenMove": true, | |
"scanOnPenReleaseHover": false, | |
"scanOnTouchPress": true, | |
"scanOnTouchRelease": false, | |
"preventPenScrolling": true | |
} | |
} | |
], | |
"preventMiddleMouse": { | |
"onWebPages": false, | |
"onPopupPages": false, | |
"onSearchPages": false, | |
"onSearchQuery": false | |
}, | |
"touchInputEnabled": true, | |
"pointerEventsEnabled": false, | |
"selectText": true, | |
"alphanumeric": false, | |
"autoHideResults": false, | |
"delay": 20, | |
"hideDelay": 0, | |
"length": 10, | |
"deepDomScan": false, | |
"popupNestingMaxDepth": 0, | |
"enablePopupSearch": false, | |
"enableOnPopupExpressions": false, | |
"enableOnSearchPage": true, | |
"enableSearchTags": false, | |
"layoutAwareScan": false, | |
"matchTypePrefix": false, | |
"hidePopupOnCursorExit": false, | |
"hidePopupOnCursorExitDelay": 0, | |
"normalizeCssZoom": true | |
}, | |
"translation": { | |
"convertHalfWidthCharacters": "false", | |
"convertNumericCharacters": "false", | |
"convertAlphabeticCharacters": "false", | |
"convertHiraganaToKatakana": "false", | |
"convertKatakanaToHiragana": "variant", | |
"collapseEmphaticSequences": "false", | |
"textReplacements": { | |
"searchOriginal": true, | |
"groups": [ | |
[ | |
{ | |
"pattern": "(.)々", | |
"ignoreCase": false, | |
"replacement": "$1$1" | |
} | |
] | |
] | |
} | |
}, | |
"dictionaries": [ | |
{ | |
"name": "JMdict (English)", | |
"priority": 5, | |
"enabled": true, | |
"allowSecondarySearches": false, | |
"definitionsCollapsible": "not-collapsible" | |
}, | |
{ | |
"name": "Kanjium Pitch Accents", | |
"priority": 0, | |
"enabled": true, | |
"allowSecondarySearches": false, | |
"definitionsCollapsible": "not-collapsible" | |
}, | |
{ | |
"name": "KANJIDIC (English)", | |
"priority": 0, | |
"enabled": true, | |
"allowSecondarySearches": false, | |
"definitionsCollapsible": "not-collapsible" | |
}, | |
{ | |
"name": "JMnedict", | |
"priority": 0, | |
"enabled": false, | |
"allowSecondarySearches": false, | |
"definitionsCollapsible": "not-collapsible" | |
}, | |
{ | |
"name": "JPDB", | |
"priority": 0, | |
"enabled": true, | |
"allowSecondarySearches": false, | |
"definitionsCollapsible": "not-collapsible" | |
}, | |
{ | |
"name": "Innocent Corpus", | |
"priority": 0, | |
"enabled": false, | |
"allowSecondarySearches": false, | |
"definitionsCollapsible": "not-collapsible" | |
} | |
], | |
"parsing": { | |
"enableScanningParser": true, | |
"enableMecabParser": false, | |
"selectedParser": "scan", | |
"termSpacing": true, | |
"readingMode": "hiragana" | |
}, | |
"anki": { | |
"enable": true, | |
"server": "http://localhost:8765", | |
"tags": [ | |
"yomichan" | |
], | |
"screenshot": { | |
"format": "jpeg", | |
"quality": 92 | |
}, | |
"terms": { | |
"deck": "Japanese::Sentences", | |
"model": "JapaneseYomichan", | |
"fields": { | |
"Expression": "{expression}", | |
"ExpressionReading": "{furigana-plain}", | |
"ExpressionPitchAccent": "{pitch-accents}", | |
"ExpressionAudio": "{audio}", | |
"Sentence": "{sentence}", | |
"SentenceReading": "{sentence-furigana}", | |
"Definition": "{glossary}", | |
"SentenceAudio": "", | |
"Frequency": "{freq}", | |
"ClozedSentence": "{cloze-prefix}<span class=\"cloze-body\">{cloze-body}</span>{cloze-suffix}" | |
} | |
}, | |
"kanji": { | |
"deck": "Japanese::EncounteredKanji", | |
"model": "YomichanKanji", | |
"fields": { | |
"Character": "{character}", | |
"Kunyomi": "{kunyomi}", | |
"Onyomi": "{onyomi}", | |
"Glossary": "{glossary}", | |
"Sentence": "{sentence}" | |
} | |
}, | |
"duplicateScope": "deck", | |
"checkForDuplicates": false, | |
"fieldTemplates": "{{#*inline \"glossary-single\"}}\n {{~#unless brief~}}\n {{~#scope~}}\n {{~#set \"any\" false}}{{/set~}}\n {{~#each definitionTags~}}\n {{~#if (op \"||\" (op \"!\" @root.compactTags) (op \"!\" redundant))~}}\n {{~#if (get \"any\")}}, {{else}}<i>({{/if~}}\n {{name}}\n {{~#set \"any\" true}}{{/set~}}\n {{~/if~}}\n {{~/each~}}\n {{~#unless noDictionaryTag~}}\n {{~#if (op \"||\" (op \"!\" @root.compactTags) (op \"!==\" dictionary (get \"previousDictionary\")))~}}\n {{~#if (get \"any\")}}, {{else}}<i>({{/if~}}\n {{dictionary}}\n {{~#set \"any\" true}}{{/set~}}\n {{~/if~}}\n {{~/unless~}}\n {{~#if (get \"any\")}})</i> {{/if~}}\n {{~/scope~}}\n {{~#if only~}}({{#each only}}{{.}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}}\n {{~/unless~}}\n {{~#if (op \"<=\" glossary.length 1)~}}\n {{#each glossary}}{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}{{/each}}\n {{~else if @root.compactGlossaries~}}\n {{#each glossary}}{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}{{#unless @last}} | {{/unless}}{{/each}}\n {{~else~}}\n <ul>{{#each glossary}}<li>{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}</li>{{/each}}</ul>\n {{~/if~}}\n {{~#set \"previousDictionary\" dictionary~}}{{~/set~}}\n{{/inline}}\n\n{{#*inline \"audio\"}}\n {{~#if (hasMedia \"audio\")~}}\n [sound:{{#getMedia \"audio\"}}{{/getMedia}}]\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"character\"}}\n {{~definition.character~}}\n{{/inline}}\n\n{{#*inline \"dictionary\"}}\n {{~definition.dictionary~}}\n{{/inline}}\n\n{{#*inline \"expression\"}}\n {{~#if merge~}}\n {{~#if modeTermKana~}}\n {{~#each definition.reading~}}\n {{{.}}}\n {{~#unless @last}}、{{/unless~}}\n {{~else~}}\n {{~#each definition.expression~}}\n {{{.}}}\n {{~#unless @last}}、{{/unless~}}\n {{~/each~}}\n {{~/each~}}\n {{~else~}}\n {{~#each definition.expression~}}\n {{{.}}}\n {{~#unless @last}}、{{/unless~}}\n {{~/each~}}\n {{~/if~}}\n {{~else~}}\n {{~#if modeTermKana~}}\n {{~#if definition.reading~}}\n {{definition.reading}}\n {{~else~}}\n {{definition.expression}}\n {{~/if~}}\n {{~else~}}\n {{definition.expression}}\n {{~/if~}}\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"furigana\"}}\n {{~#if merge~}}\n {{~#each definition.expressions~}}\n <span class=\"expression-{{termFrequency}}\">{{~#furigana}}{{{.}}}{{/furigana~}}</span>\n {{~#unless @last}}、{{/unless~}}\n {{~/each~}}\n {{~else~}}\n {{#furigana}}{{{definition}}}{{/furigana}}\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"furigana-plain\"}}\n {{~#if merge~}}\n {{~#each definition.expressions~}}\n <span class=\"expression-{{termFrequency}}\">{{~#furiganaPlain}}{{{.}}}{{/furiganaPlain~}}</span>\n {{~#unless @last}}、{{/unless~}}\n {{~/each~}}\n {{~else~}}\n {{#furiganaPlain}}{{{definition}}}{{/furiganaPlain}}\n {{~/if~}}\n{{/inline}}\n\n{{~#*inline \"glossary\"~}}\n <div style=\"text-align: left;\">\n {{~#scope~}}\n {{~#if (op \"===\" definition.type \"term\")~}}\n {{~> glossary-single definition brief=brief noDictionaryTag=noDictionaryTag ~}}\n {{~else if (op \"||\" (op \"===\" definition.type \"termGrouped\") (op \"===\" definition.type \"termMerged\"))~}}\n {{~#if (op \">\" definition.definitions.length 1)~}}\n <ol>{{~#each definition.definitions~}}<li>{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}</li>{{~/each~}}</ol>\n {{~else~}}\n {{~#each definition.definitions~}}{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}{{~/each~}}\n {{~/if~}}\n {{~else if (op \"===\" definition.type \"kanji\")~}}\n {{~#if (op \">\" definition.glossary.length 1)~}}\n <ol>{{#each definition.glossary}}<li>{{.}}</li>{{/each}}</ol>\n {{~else~}}\n {{~#each definition.glossary~}}{{.}}{{~/each~}}\n {{~/if~}}\n {{~/if~}}\n {{~/scope~}}\n </div>\n{{~/inline~}}\n\n{{#*inline \"glossary-no-dictionary\"}}\n {{~> glossary noDictionaryTag=true ~}}\n{{/inline}}\n\n{{#*inline \"glossary-brief\"}}\n {{~> glossary brief=true ~}}\n{{/inline}}\n\n{{#*inline \"kunyomi\"}}\n {{~#each definition.kunyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}}\n{{/inline}}\n\n{{#*inline \"onyomi\"}}\n {{~#each definition.onyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}}\n{{/inline}}\n\n{{#*inline \"reading\"}}\n {{~#unless modeTermKana~}}\n {{~#if merge~}}\n {{~#each definition.reading~}}\n {{{.}}}\n {{~#unless @last}}、{{/unless~}}\n {{~/each~}}\n {{~else~}}\n {{~definition.reading~}}\n {{~/if~}}\n {{~/unless~}}\n{{/inline}}\n\n{{#*inline \"sentence\"}}\n {{~#if definition.cloze}}{{definition.cloze.sentence}}{{/if~}}\n{{/inline}}\n\n{{#*inline \"cloze-prefix\"}}\n {{~#if definition.cloze}}{{definition.cloze.prefix}}{{/if~}}\n{{/inline}}\n\n{{#*inline \"cloze-body\"}}\n {{~#if definition.cloze}}{{definition.cloze.body}}{{/if~}}\n{{/inline}}\n\n{{#*inline \"cloze-suffix\"}}\n {{~#if definition.cloze}}{{definition.cloze.suffix}}{{/if~}}\n{{/inline}}\n\n{{#*inline \"tags\"}}\n {{~#mergeTags definition group merge}}{{this}}{{/mergeTags~}}\n{{/inline}}\n\n{{#*inline \"url\"}}\n <a href=\"{{definition.url}}\">{{definition.url}}</a>\n{{/inline}}\n\n{{#*inline \"screenshot\"}}\n {{~#if (hasMedia \"screenshot\")~}}\n <img src=\"{{#getMedia \"screenshot\"}}{{/getMedia}}\" />\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"document-title\"}}\n {{~context.document.title~}}\n{{/inline}}\n\n{{! Pitch Accents }}\n{{#*inline \"pitch-accent-item\"}}\n {{~#pronunciation format=format reading=reading downstepPosition=position nasalPositions=nasalPositions devoicePositions=devoicePositions~}}{{~/pronunciation~}}\n{{/inline}}\n\n{{#*inline \"pitch-accent-item-disambiguation\"}}\n {{~#scope~}}\n {{~#set \"exclusive\" (spread exclusiveExpressions exclusiveReadings)}}{{/set~}}\n {{~#if (op \">\" (property (get \"exclusive\") \"length\") 0)~}}\n {{~#set \"separator\" \"\"~}}{{/set~}}\n <em>({{#each (get \"exclusive\")~}}\n {{~#get \"separator\"}}{{/get~}}{{{.}}}\n {{~/each}} only) </em>\n {{~/if~}}\n {{~/scope~}}\n{{/inline}}\n\n{{#*inline \"pitch-accent-list\"}}\n {{~#if (op \">\" pitchCount 0)~}}\n {{~#if (op \">\" pitchCount 1)~}}<ol>{{~/if~}}\n {{~#each pitches~}}\n {{~#each pitches~}}\n {{~#if (op \">\" ../../pitchCount 1)~}}<li>{{~/if~}}\n {{~> pitch-accent-item-disambiguation~}}\n {{~> pitch-accent-item format=../../format~}}\n {{~#if (op \">\" ../../pitchCount 1)~}}</li>{{~/if~}}\n {{~/each~}}\n {{~/each~}}\n {{~#if (op \">\" pitchCount 1)~}}</ol>{{~/if~}}\n {{~else~}}\n No pitch accent data\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"pitch-accents\"}}\n {{~> pitch-accent-list format='text'~}}\n{{/inline}}\n\n{{#*inline \"pitch-accent-graphs\"}}\n {{~> pitch-accent-list format='graph'~}}\n{{/inline}}\n\n{{#*inline \"pitch-accent-positions\"}}\n {{~> pitch-accent-list format='position'~}}\n{{/inline}}\n{{! End Pitch Accents }}\n\n{{#*inline \"clipboard-image\"}}\n {{~#if (hasMedia \"clipboardImage\")~}}\n <img src=\"{{#getMedia \"clipboardImage\"}}{{/getMedia}}\" />\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"clipboard-text\"}}\n {{~#if (hasMedia \"clipboardText\")}}{{#getMedia \"clipboardText\"}}{{/getMedia}}{{/if~}}\n{{/inline}}\n\n{{#*inline \"conjugation\"}}\n {{~#if definition.reasons~}}\n {{~#each definition.reasons~}}\n {{~#if (op \">\" @index 0)}} « {{/if~}}\n {{.}}\n {{~/each~}}\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"frequencies\"}}\n {{~#if (op \">\" definition.frequencies.length 0)~}}\n <ul style=\"text-align: left;\">\n {{~#each definition.frequencies~}}\n <li>\n {{~#if (op \"!==\" ../definition.type \"kanji\")~}}\n {{~#if (op \"||\" (op \">\" ../uniqueExpressions.length 1) (op \">\" ../uniqueReadings.length 1))~}}(\n {{~#furigana expression reading~}}{{~/furigana~}}\n ) {{/if~}}\n {{~/if~}}\n {{~dictionary}}: {{frequency~}}\n </li>\n {{~/each~}}\n </ul>\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"stroke-count\"}}\n {{~#scope~}}\n {{~#set \"found\" false}}{{/set~}}\n {{~#each definition.stats.misc~}}\n {{~#if (op \"===\" name \"strokes\")~}}\n {{~#set \"found\" true}}{{/set~}}\n Stroke count: {{value}}\n {{~/if~}}\n {{~/each~}}\n {{~#if (op \"!\" (get \"found\"))~}}\n Stroke count: Unknown\n {{~/if~}}\n {{~/scope~}}\n{{/inline}}\n\n{{#*inline \"part-of-speech-pretty\"}}\n {{~#if (op \"===\" . \"v1\")~}}Ichidan verb\n {{~else if (op \"===\" . \"v5\")~}}Godan verb\n {{~else if (op \"===\" . \"vk\")~}}Kuru verb\n {{~else if (op \"===\" . \"vs\")~}}Suru verb\n {{~else if (op \"===\" . \"vz\")~}}Zuru verb\n {{~else if (op \"===\" . \"adj-i\")~}}I-adjective\n {{~else if (op \"===\" . \"n\")~}}Noun\n {{~else~}}{{.}}\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"part-of-speech\"}}\n {{~#scope~}}\n {{~#if (op \"!==\" definition.type \"kanji\")~}}\n {{~#set \"first\" true}}{{/set~}}\n {{~#each definition.expressions~}}\n {{~#each wordClasses~}}\n {{~#unless (get (concat \"used_\" .))~}}\n {{~> part-of-speech-pretty . ~}}\n {{~#unless (get \"first\")}}, {{/unless~}}\n {{~#set (concat \"used_\" .) true~}}{{~/set~}}\n {{~#set \"first\" false~}}{{~/set~}}\n {{~/unless~}}\n {{~/each~}}\n {{~/each~}}\n {{~#if (get \"first\")~}}Unknown{{~/if~}}\n {{~/if~}}\n {{~/scope~}}\n{{/inline}}\n\n{{#*inline \"search-query\"}}\n {{~#multiLine}}{{context.fullQuery}}{{/multiLine~}}\n{{/inline}}\n\n{{#*inline \"selection-text\"}}\n {{~#if (hasMedia \"selectionText\")}}{{#getMedia \"selectionText\"}}{{/getMedia}}{{/if~}}\n{{/inline}}\n\n{{#*inline \"sentence-furigana\"}}\n {{~#if definition.cloze~}}\n {{~#if (hasMedia \"textFurigana\" definition.cloze.sentence)~}}\n {{#getMedia \"textFurigana\" definition.cloze.sentence escape=false}}{{/getMedia}}\n {{~else~}}\n {{definition.cloze.sentence}}\n {{~/if~}}\n {{~/if~}}\n{{/inline}}\n\n{{#*inline \"freq\"}}\n {{~#scope~}}\n {{~#set \"min-freq\" 0}}{{/set~}}\n {{#each definition.frequencies}}\n {{~#if (op \"||\" (op \"===\" (get \"min-freq\") 0) (op \">\" (op \"+\" (get \"min-freq\")) (op \"+\" (regexMatch \"\\d\" \"g\" this.frequency))))}}\n {{~#set \"min-freq\" (op \"+\" (regexMatch \"\\d\" \"g\" this.frequency))}}{{/set~}}\n {{~/if~}}\n {{/each}}\n {{get \"min-freq\"}}\n {{~/scope~}}\n{{/inline}}\n\n{{~> (lookup . \"marker\") ~}}", | |
"suspendNewCards": false, | |
"displayTags": "never", | |
"duplicateScopeCheckAllModels": false, | |
"noteGuiMode": "browse", | |
"apiKey": "", | |
"downloadTimeout": 0 | |
}, | |
"sentenceParsing": { | |
"scanExtent": 200, | |
"terminationCharacters": [ | |
{ | |
"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 | |
}, | |
{ | |
"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 | |
} | |
], | |
"terminationCharacterMode": "custom" | |
}, | |
"inputs": { | |
"hotkeys": [ | |
{ | |
"action": "close", | |
"argument": "", | |
"key": "Escape", | |
"modifiers": [], | |
"scopes": [ | |
"popup" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "focusSearchBox", | |
"argument": "", | |
"key": "Escape", | |
"modifiers": [], | |
"scopes": [ | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "previousEntry", | |
"argument": "3", | |
"key": "PageUp", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "nextEntry", | |
"argument": "3", | |
"key": "PageDown", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "lastEntry", | |
"argument": "", | |
"key": "End", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "firstEntry", | |
"argument": "", | |
"key": "Home", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "previousEntry", | |
"argument": "1", | |
"key": "ArrowUp", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "nextEntry", | |
"argument": "1", | |
"key": "ArrowDown", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "historyBackward", | |
"argument": "", | |
"key": "KeyB", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "historyForward", | |
"argument": "", | |
"key": "KeyF", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "addNoteKanji", | |
"argument": "", | |
"key": "KeyK", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "addNoteTermKanji", | |
"argument": "", | |
"key": "KeyE", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "addNoteTermKana", | |
"argument": "", | |
"key": "KeyR", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "playAudio", | |
"argument": "", | |
"key": "KeyP", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "viewNote", | |
"argument": "", | |
"key": "KeyV", | |
"modifiers": [ | |
"alt" | |
], | |
"scopes": [ | |
"popup", | |
"search" | |
], | |
"enabled": true | |
}, | |
{ | |
"action": "copyHostSelection", | |
"argument": "", | |
"key": "KeyC", | |
"modifiers": [ | |
"ctrl" | |
], | |
"scopes": [ | |
"popup" | |
], | |
"enabled": true | |
} | |
] | |
}, | |
"clipboard": { | |
"enableBackgroundMonitor": false, | |
"enableSearchPageMonitor": false, | |
"autoSearchContent": true, | |
"maximumSearchLength": 1000 | |
}, | |
"accessibility": { | |
"forceGoogleDocsHtmlRendering": false | |
} | |
} | |
} | |
], | |
"profileCurrent": 0, | |
"global": { | |
"database": { | |
"prefixWildcardsSupported": false | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment