diff --git a/ext/bg/background.html b/ext/bg/background.html
index e68c665b..c490df81 100644
--- a/ext/bg/background.html
+++ b/ext/bg/background.html
@@ -4,6 +4,7 @@
+
diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js
index 8f04c458..3fceef65 100644
--- a/ext/bg/js/dictionary.js
+++ b/ext/bg/js/dictionary.js
@@ -92,7 +92,7 @@ class Dictionary {
importTermDict(indexUrl) {
const indexDir = indexUrl.slice(0, indexUrl.lastIndexOf('/'));
- return Dictionary.loadJson(indexUrl).then((index) => {
+ return loadJson(indexUrl).then((index) => {
const entities = [];
for (const [name, value] of index.ents) {
entities.push({name, value});
@@ -111,7 +111,7 @@ class Dictionary {
for (let i = 0; i <= index.refs; ++i) {
const refUrl = `${indexDir}/ref_${i}.json`;
loaders.push(() => {
- return Dictionary.loadJson(refUrl).then((refs) => {
+ return loadJson(refUrl).then((refs) => {
const rows = [];
for (const [expression, reading, tags, ...glossary] of refs) {
rows.push({expression, reading, tags, glossary});
@@ -135,12 +135,12 @@ class Dictionary {
importKanjiDict(indexUrl) {
const indexDir = indexUrl.slice(0, indexUrl.lastIndexOf('/'));
- return Dictionary.loadJson(indexUrl).then((index) => {
+ return loadJson(indexUrl).then((index) => {
const loaders = [];
for (let i = 0; i <= index.refs; ++i) {
const refUrl = `${indexDir}/ref_${i}.json`;
loaders.push(() => {
- return Dictionary.loadJson(refUrl).then((refs) => {
+ return loadJson(refUrl).then((refs) => {
const rows = [];
for (const [character, onyomi, kunyomi, tags, ...glossary] of refs) {
rows.push({character, onyomi, kunyomi, tags, glossary});
@@ -159,13 +159,4 @@ class Dictionary {
return chain;
});
}
-
- static loadJson(url) {
- return new Promise((resolve, reject) => {
- const xhr = new XMLHttpRequest();
- xhr.addEventListener('load', () => resolve(JSON.parse(xhr.responseText)));
- xhr.open('GET', chrome.extension.getURL(url), true);
- xhr.send();
- });
- }
}
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index 8af0e31b..30045378 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -31,9 +31,9 @@ class Translator {
return;
}
- Translator.loadJson('bg/data/rules.json').then((rules) => {
+ loadJson('bg/data/rules.json').then((rules) => {
this.deinflector.setRules(rules);
- return Translator.loadJson('bg/data/tags.json');
+ return loadJson('bg/data/tags.json');
}).then((tagMeta) => {
this.tagMeta = tagMeta;
return this.dictionary.existsDb();
@@ -240,18 +240,4 @@ class Translator {
return 0;
});
}
-
- static isKanji(c) {
- const code = c.charCodeAt(0);
- return code >= 0x4e00 && code < 0x9fb0 || code >= 0x3400 && code < 0x4dc0;
- }
-
- static loadJson(url) {
- return new Promise((resolve, reject) => {
- const xhr = new XMLHttpRequest();
- xhr.addEventListener('load', () => resolve(JSON.parse(xhr.responseText)));
- xhr.open('GET', chrome.extension.getURL(url), true);
- xhr.send();
- });
- }
}
diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js
new file mode 100644
index 00000000..97906eda
--- /dev/null
+++ b/ext/bg/js/util.js
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2016 Alex Yatskov
+ * Author: Alex Yatskov
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+
+function loadJson(url) {
+ return new Promise((resolve, reject) => {
+ const xhr = new XMLHttpRequest();
+ xhr.addEventListener('load', () => resolve(JSON.parse(xhr.responseText)));
+ xhr.open('GET', chrome.extension.getURL(url), true);
+ xhr.send();
+ });
+}
+
+function isKanji(c) {
+ const code = c.charCodeAt(0);
+ return code >= 0x4e00 && code < 0x9fb0 || code >= 0x3400 && code < 0x4dc0;
+}
+
diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js
index fd9b84d3..716c622a 100644
--- a/ext/bg/js/yomichan.js
+++ b/ext/bg/js/yomichan.js
@@ -23,7 +23,7 @@ class Yomichan {
Handlebars.registerHelper('kanjiLinks', function(options) {
let result = '';
for (const c of options.fn(this)) {
- if (Translator.isKanji(c)) {
+ if (isKanji(c)) {
result += Handlebars.templates['kanji-link.html']({kanji: c}).trim();
} else {
result += c;