Skip to content

Instantly share code, notes, and snippets.

@marethyu
Last active February 26, 2021 03:11
Show Gist options
  • Select an option

  • Save marethyu/ac777ff31db8b6c3abc765ca16f0aeb1 to your computer and use it in GitHub Desktop.

Select an option

Save marethyu/ac777ff31db8b6c3abc765ca16f0aeb1 to your computer and use it in GitHub Desktop.
{
"version": 0,
"date": "2021-02-25 09:07:34",
"url": "chrome-extension://ogmnaimimemjmbakcfefmnahgdfhfami/",
"manifest": {
"author": "Alex Yatskov",
"background": {
"page": "bg/background.html",
"persistent": true
},
"browser_action": {
"default_icon": {
"16": "mixed/img/icon16.png",
"19": "mixed/img/icon19.png",
"32": "mixed/img/icon32.png",
"38": "mixed/img/icon38.png",
"48": "mixed/img/icon48.png",
"64": "mixed/img/icon64.png",
"128": "mixed/img/icon128.png"
},
"default_popup": "bg/context.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": [
"mixed/js/core.js",
"mixed/js/yomichan.js",
"mixed/js/comm.js",
"mixed/js/api.js",
"mixed/js/dynamic-loader.js",
"mixed/js/frame-client.js",
"mixed/js/text-scanner.js",
"mixed/js/document-util.js",
"mixed/js/hotkey-handler.js",
"fg/js/dom-text-scanner.js",
"fg/js/popup.js",
"fg/js/text-source-range.js",
"fg/js/text-source-element.js",
"fg/js/popup-factory.js",
"fg/js/frame-offset-forwarder.js",
"fg/js/popup-proxy.js",
"fg/js/popup-window.js",
"fg/js/frontend.js",
"fg/js/content-script-main.js"
],
"match_about_blank": true,
"matches": [
"http://*/*",
"https://*/*",
"file://*/*"
]
}
],
"content_security_policy": "default-src 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *",
"description": "Japanese dictionary with Anki integration",
"differential_fingerprint": "1.4901452084b9fd8371d054d51be29494f2997d3071ab91a8782ccdcd50206823",
"icons": {
"16": "mixed/img/icon16.png",
"19": "mixed/img/icon19.png",
"32": "mixed/img/icon32.png",
"38": "mixed/img/icon38.png",
"48": "mixed/img/icon48.png",
"64": "mixed/img/icon64.png",
"128": "mixed/img/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"
],
"options_ui": {
"open_in_tab": true,
"page": "bg/settings2.html"
},
"permissions": [
"<all_urls>",
"storage",
"clipboardWrite",
"unlimitedStorage",
"nativeMessaging",
"webRequest",
"webRequestBlocking"
],
"sandbox": {
"content_security_policy": "sandbox allow-scripts; default-src 'self'; script-src 'self' 'unsafe-eval'",
"pages": [
"bg/template-renderer.html"
]
},
"update_url": "https://clients2.google.com/service/update2/crx",
"version": "21.1.31.1",
"web_accessible_resources": [
"fg/float.html",
"bg/template-renderer.html"
]
},
"environment": {
"browser": "chrome",
"platform": {
"os": "win"
}
},
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36",
"permissions": {
"origins": [
"<all_urls>",
"chrome://favicon/*",
"file:///*",
"http://*/*",
"https://*/*"
],
"permissions": [
"clipboardRead",
"clipboardWrite",
"nativeMessaging",
"storage",
"unlimitedStorage",
"webRequest",
"webRequestBlocking"
]
},
"options": {
"version": 8,
"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": false,
"popupScaleRelativeToVisualViewport": true,
"showGuide": true,
"compactTags": false,
"glossaryLayoutMode": "default",
"mainDictionary": "研究社 新和英大辞典 第5版",
"popupTheme": "default",
"popupOuterTheme": "default",
"customPopupCss": "",
"customPopupOuterCss": "",
"enableWanakana": true,
"showPitchAccentDownstepNotation": true,
"showPitchAccentPositionNotation": true,
"showPitchAccentGraph": true,
"showIframePopupsInRootFrame": false,
"useSecurePopupFrameUrl": true,
"usePopupShadowDom": true,
"usePopupWindow": false,
"popupCurrentIndicatorMode": "triangle",
"popupActionBarVisibility": "auto",
"popupActionBarLocation": "top"
},
"audio": {
"enabled": true,
"sources": [
"jpod101",
"jpod101-alternate",
"jisho",
"text-to-speech"
],
"volume": 100,
"autoPlay": false,
"customSourceUrl": "",
"textToSpeechVoice": "Google 日本語",
"customSourceType": "audio"
},
"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
}
},
{
"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
}
}
],
"preventMiddleMouse": {
"onWebPages": false,
"onPopupPages": false,
"onSearchPages": false,
"onSearchQuery": false
},
"touchInputEnabled": true,
"pointerEventsEnabled": false,
"selectText": true,
"alphanumeric": true,
"autoHideResults": false,
"delay": 20,
"hideDelay": 0,
"length": 10,
"deepDomScan": false,
"popupNestingMaxDepth": 5,
"enablePopupSearch": true,
"enableOnPopupExpressions": false,
"enableOnSearchPage": true,
"enableSearchTags": false,
"layoutAwareScan": false
},
"translation": {
"convertHalfWidthCharacters": "true",
"convertNumericCharacters": "true",
"convertAlphabeticCharacters": "true",
"convertHiraganaToKatakana": "false",
"convertKatakanaToHiragana": "variant",
"collapseEmphaticSequences": "false",
"textReplacements": {
"searchOriginal": true,
"groups": []
}
},
"dictionaries": {
"研究社 新和英大辞典 第5版": {
"priority": 4,
"enabled": true,
"allowSecondarySearches": false
},
"KANJIDIC (English)": {
"priority": 0,
"enabled": true,
"allowSecondarySearches": false
},
"Netflix": {
"priority": 0,
"enabled": true,
"allowSecondarySearches": false
},
"Anime & Jdrama Freq:": {
"priority": 0,
"enabled": true,
"allowSecondarySearches": false
},
"JMnedict": {
"priority": 3,
"enabled": true,
"allowSecondarySearches": false
},
"KireiCake": {
"priority": 3,
"enabled": true,
"allowSecondarySearches": false
},
"ヨガ日本語アクセント辞典": {
"priority": 0,
"enabled": true,
"allowSecondarySearches": false
},
"JMdict (English)": {
"priority": 3,
"enabled": true,
"allowSecondarySearches": false
},
"大辞泉": {
"priority": 1,
"enabled": true,
"allowSecondarySearches": false
},
"三省堂 スーパー大辞林": {
"priority": 1,
"enabled": true,
"allowSecondarySearches": false
},
"新明解国語辞典 第五版": {
"priority": 2,
"enabled": true,
"allowSecondarySearches": false
},
"Kanjium Pitch Accents": {
"priority": 0,
"enabled": true,
"allowSecondarySearches": false
}
},
"parsing": {
"enableScanningParser": true,
"enableMecabParser": false,
"selectedParser": "scan",
"termSpacing": true,
"readingMode": "hiragana"
},
"anki": {
"enable": true,
"server": "http://127.0.0.1:8765",
"tags": [
"yomichan"
],
"screenshot": {
"format": "png",
"quality": 92
},
"terms": {
"deck": "Mining",
"model": "Mining-model1",
"fields": {
"Front": "{expression}",
"Reading": "{reading}",
"Glossary": "{pitch-accent-positions} {test}",
"Audio": "{audio}",
"Graph": "{pitch-accent-graphs}"
}
},
"kanji": {
"deck": "",
"model": "",
"fields": {}
},
"duplicateScope": "collection",
"checkForDuplicates": true,
"fieldTemplates": "{{#*inline \"test\"}}\n {{~#scope~}}\n {{~#set \"first-dictionary\" null}}{{/set~}}\n {{~#if modeKanji~}}\n ...\n {{~else if (op \"||\" group merge)~}}\n {{~#each definition.definitions~}}\n {{~#if (op \"===\" null (get \"first-dictionary\"))~}}\n{{~#set \"first-dictionary\" dictionary~}}{{~/set~}}\n {{~/if~}}\n {{~#if (op \"===\" dictionary (get \"first-dictionary\"))~}}\n{{> glossary-single brief=../brief compactGlossaries=../compactGlossaries data=../.}}\n {{~/if~}}\n {{~/each~}}\n {{~else~}}\n {{~> glossary-single definition brief=brief compactGlossaries=compactGlossaries data=.~}}\n {{~/if~}}\n {{~/scope~}}\n{{/inline}}\n \n{{#*inline \"glossary-single\"}}\n {{~#unless brief~}}\n {{~#if definitionTags~}}{{#each definitionTags}}{{#unless @last}}{{/unless}}{{/each}} {{/if~}}\n {{~#if only~}}({{#each only}}{{{.}}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}}\n {{~/unless~}}\n {{~#if glossary.[1]~}}\n {{~#if compactGlossaries~}}\n {{#each glossary}}{{#multiLine}}{{#regexReplace \"^[^\\n]*\\n\" \"\"}}{{.}}{{/regexReplace}}{{/multiLine}}{{#unless @last}} | {{/unless}}{{/each}}\n {{~else~}}\n <ul>{{#each glossary}}<li>{{#multiLine}}{{.}}{{/multiLine}}</li>{{/each}}</ul>\n {{~/if~}}\n {{~else~}}\n {{~#multiLine}}{{#regexReplace \"^[^\\n]*\\n\" \"\"}}{{glossary.[0]}}{{/regexReplace}}{{/multiLine~}}\n {{~/if~}}\n{{/inline}}\n \n{{#*inline \"audio\"}}\n {{~#if definition.audioFileName~}}\n [sound:{{definition.audioFileName}}]\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 <img src=\"{{definition.screenshotFileName}}\" />\n{{/inline}}\n \n{{#*inline \"document-title\"}}\n {{~context.document.title~}}\n{{/inline}}\n \n{{! Pitch Accents }}\n{{#*inline \"pitch-accent-item-downstep-notation\"}}\n {{~#scope~}}\n <span>\n {{~#set \"style1a\"~}}display:inline-block;position:relative;{{~/set~}}\n {{~#set \"style1b\"~}}padding-right:0.1em;margin-right:0.1em;{{~/set~}}\n {{~#set \"style2a\"~}}display:block;user-select:none;pointer-events:none;position:absolute;top:0.1em;left:0;right:0;height:0;border-top:0.1em solid;{{~/set~}}\n {{~#set \"style2b\"~}}right:-0.1em;height:0.4em;border-right:0.1em solid;{{~/set~}}\n {{~#each (getKanaMorae reading)~}}\n {{~#set \"style1\"}}{{#get \"style1a\"}}{{/get}}{{/set~}}\n {{~#set \"style2\"}}{{/set~}}\n {{~#if (isMoraPitchHigh @index ../position)}}\n {{~#set \"style2\"}}{{#get \"style2a\"}}{{/get}}{{/set~}}\n {{~#if (op \"!\" (isMoraPitchHigh (op \"+\" @index 1) ../position))~}}\n {{~#set \"style1\" (op \"+\" (get \"style1\") (get \"style1b\"))}}{{/set~}}\n {{~#set \"style2\" (op \"+\" (get \"style2\") (get \"style2b\"))}}{{/set~}}\n {{~/if~}}\n {{~/if~}}\n <span style=\"{{#get \"style1\"}}{{/get}}\">{{{.}}}<span style=\"{{#get \"style2\"}}{{/get}}\"></span></span>\n {{~/each~}}\n </span>\n {{~/scope~}}\n{{/inline}}\n \n{{#*inline \"pitch-accent-item-graph-position-x\"}}{{#op \"+\" 25 (op \"*\" index 50)}}{{/op}}{{/inline}}\n{{#*inline \"pitch-accent-item-graph-position-y\"}}{{#op \"+\" 25 (op \"?:\" (isMoraPitchHigh index position) 0 50)}}{{/op}}{{/inline}}\n{{#*inline \"pitch-accent-item-graph-position\"}}{{> pitch-accent-item-graph-position-x index=index position=position}} {{> pitch-accent-item-graph-position-y index=index position=position}}{{/inline}}\n{{#*inline \"pitch-accent-item-graph\"}}\n {{~#scope~}}\n {{~#set \"morae\" (getKanaMorae reading)}}{{/set~}}\n {{~#set \"morae-count\" (property (get \"morae\") \"length\")}}{{/set~}}\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 {{#op \"+\" 50 (op \"*\" 50 (get \"morae-count\"))}}{{/op}} 100\" style=\"display:inline-block;height:2em;\">\n <defs>\n <g id=\"term-pitch-accent-graph-dot\"><circle cx=\"0\" cy=\"0\" r=\"15\" style=\"fill:#ffffff;stroke:#ffffff;stroke-width:5;\" /></g>\n <g id=\"term-pitch-accent-graph-dot-downstep\"><circle cx=\"0\" cy=\"0\" r=\"15\" style=\"fill:none;stroke:#ffffff;stroke-width:5;\" /><circle cx=\"0\" cy=\"0\" r=\"5\" style=\"fill:none;stroke:#ffffff;stroke-width:5;\" /></g>\n <g id=\"term-pitch-accent-graph-triangle\"><path d=\"M0 13 L15 -13 L-15 -13 Z\" style=\"fill:none;stroke:#ffffff;stroke-width:5;\" /></g>\n </defs>\n <path style=\"fill:none;stroke:#ffffff;stroke-width:5;\" d=\"\n {{~#set \"cmd\" \"M\"}}{{/set~}}\n {{~#each (get \"morae\")~}}\n {{~#get \"cmd\"}}{{/get~}}\n {{~> pitch-accent-item-graph-position index=@index position=../position~}}\n {{~#set \"cmd\" \"L\"}}{{/set~}}\n {{~/each~}}\n \"></path>\n <path style=\"fill:none;stroke:#ffffff;stroke-width:5;stroke-dasharray:5 5;\" d=\"M{{> pitch-accent-item-graph-position index=(op \"-\" (get \"morae-count\") 1) position=position}} L{{> pitch-accent-item-graph-position index=(get \"morae-count\") position=position}}\"></path>\n {{#each (get \"morae\")}}\n <use href=\"{{#if (op \"&&\" (isMoraPitchHigh @index ../position) (op \"!\" (isMoraPitchHigh (op \"+\" @index 1) ../position)))}}#term-pitch-accent-graph-dot-downstep{{else}}#term-pitch-accent-graph-dot{{/if}}\" x=\"{{> pitch-accent-item-graph-position-x index=@index position=../position}}\" y=\"{{> pitch-accent-item-graph-position-y index=@index position=../position}}\"></use>\n {{/each}}\n <use href=\"#term-pitch-accent-graph-triangle\" x=\"{{> pitch-accent-item-graph-position-x index=(get \"morae-count\") position=position}}\" y=\"{{> pitch-accent-item-graph-position-y index=(get \"morae-count\") position=position}}\"></use>\n</svg>\n {{~/scope~}}\n{{/inline}}\n \n{{#*inline \"pitch-accent-item-position\"~}}\n <span>[{{position}}]</span>\n{{~/inline}}\n \n{{#*inline \"pitch-accent-item\"}}\n {{~#if (op \"==\" format \"downstep-notation\")~}}\n {{~> pitch-accent-item-downstep-notation~}}\n {{~else if (op \"==\" format \"graph\")~}}\n {{~> pitch-accent-item-graph~}}\n {{~else if (op \"==\" format \"position\")~}}\n {{~> pitch-accent-item-position~}}\n {{~/if~}}\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)~}}{{~/if~}}\n {{~#each pitches~}}\n {{~#each pitches~}}\n {{~#if (op \">\" ../../pitchCount 1)~}}{{~/if~}}\n {{~> pitch-accent-item-disambiguation~}}\n {{~> pitch-accent-item format=../../format~}}\n {{~#if (op \">\" ../../pitchCount 1)~}}{{~/if~}}\n {{~/each~}}\n {{~/each~}}\n {{~#if (op \">\" pitchCount 1)~}}{{~/if~}}\n {{~else~}}\n {{~/if~}}\n{{/inline}}\n \n{{#*inline \"pitch-accents\"}}\n {{~> pitch-accent-list format='downstep-notation'~}}\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 definition.clipboardImageFileName~}}\n <img src=\"{{definition.clipboardImageFileName}}\" />\n {{~/if~}}\n{{/inline}}\n \n{{#*inline \"clipboard-text\"}}\n {{~#if definition.clipboardText~}}{{definition.clipboardText}}{{~/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{{~> (lookup . \"marker\") ~}}",
"suspendNewCards": false
},
"sentenceParsing": {
"scanExtent": 200,
"enableTerminationCharacters": true,
"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
}
]
},
"inputs": {
"hotkeys": [
{
"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
}
]
},
"popupWindow": {
"width": 400,
"height": 250,
"left": 0,
"top": 0,
"useLeft": false,
"useTop": false,
"windowType": "popup",
"windowState": "normal"
},
"clipboard": {
"enableBackgroundMonitor": false,
"enableSearchPageMonitor": false,
"autoSearchContent": true,
"maximumSearchLength": 1000
}
}
}
],
"profileCurrent": 0,
"global": {
"database": {
"prefixWildcardsSupported": false
},
"useSettingsV2": true
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment