Skip to content

Instantly share code, notes, and snippets.

@tomodutch
Created October 3, 2022 04:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomodutch/0fa4bdfaccbdb9d656ae8218cdba4fb5 to your computer and use it in GitHub Desktop.
Save tomodutch/0fa4bdfaccbdb9d656ae8218cdba4fb5 to your computer and use it in GitHub Desktop.
{
"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