diff options
| -rw-r--r-- | ext/bg/background.html | 1 | ||||
| -rw-r--r-- | ext/bg/js/handlebars.js | 55 | ||||
| -rw-r--r-- | ext/bg/js/util.js | 41 | ||||
| -rw-r--r-- | ext/bg/settings.html | 1 | 
4 files changed, 57 insertions, 41 deletions
| diff --git a/ext/bg/background.html b/ext/bg/background.html index 3cfd894e..61bc17a0 100644 --- a/ext/bg/background.html +++ b/ext/bg/background.html @@ -11,6 +11,7 @@          <script src="/mixed/js/audio.js"></script>          <script src="/bg/js/templates.js"></script>          <script src="/bg/js/util.js"></script> +        <script src="/bg/js/handlebars.js"></script>          <script src="/bg/js/dictionary.js"></script>          <script src="/mixed/js/japanese.js"></script>          <script src="/bg/js/options.js"></script> diff --git a/ext/bg/js/handlebars.js b/ext/bg/js/handlebars.js new file mode 100644 index 00000000..42b36927 --- /dev/null +++ b/ext/bg/js/handlebars.js @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2016  Alex Yatskov <alex@foosoft.net> + * Author: Alex Yatskov <alex@foosoft.net> + * + * 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 <http://www.gnu.org/licenses/>. + */ + + +function handlebarsEscape(text) { +    return Handlebars.Utils.escapeExpression(text); +} + +function handlebarsDumpObject(options) { +    const dump = JSON.stringify(options.fn(this), null, 4); +    return handlebarsEscape(dump); +} + +function handlebarsKanjiLinks(options) { +    let result = ''; +    for (const c of options.fn(this)) { +        if (jpIsKanji(c)) { +            result += `<a href="#" class="kanji-link">${c}</a>`; +        } else { +            result += c; +        } +    } + +    return result; +} + +function handlebarsMultiLine(options) { +    return options.fn(this).split('\n').join('<br>'); +} + +function handlebarsRegister() { +    Handlebars.partials = Handlebars.templates; +    Handlebars.registerHelper('dumpObject', handlebarsDumpObject); +    Handlebars.registerHelper('kanjiLinks', handlebarsKanjiLinks); +    Handlebars.registerHelper('multiLine', handlebarsMultiLine); +} + +function handlebarsRender(template, data) { +    return Handlebars.templates[template](data); +} diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index 0a4592ea..6e86c2a6 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -98,44 +98,3 @@ function jsonRequest(url, action, params) {          }      });  } - -/* - * Helpers - */ - -function handlebarsEscape(text) { -    return Handlebars.Utils.escapeExpression(text); -} - -function handlebarsDumpObject(options) { -    const dump = JSON.stringify(options.fn(this), null, 4); -    return handlebarsEscape(dump); -} - -function handlebarsKanjiLinks(options) { -    let result = ''; -    for (const c of options.fn(this)) { -        if (jpIsKanji(c)) { -            result += `<a href="#" class="kanji-link">${c}</a>`; -        } else { -            result += c; -        } -    } - -    return result; -} - -function handlebarsMultiLine(options) { -    return options.fn(this).split('\n').join('<br>'); -} - -function handlebarsRegister() { -    Handlebars.partials = Handlebars.templates; -    Handlebars.registerHelper('dumpObject', handlebarsDumpObject); -    Handlebars.registerHelper('kanjiLinks', handlebarsKanjiLinks); -    Handlebars.registerHelper('multiLine', handlebarsMultiLine); -} - -function handlebarsRender(template, data) { -    return Handlebars.templates[template](data); -} diff --git a/ext/bg/settings.html b/ext/bg/settings.html index 8135ca9a..9b21b4d8 100644 --- a/ext/bg/settings.html +++ b/ext/bg/settings.html @@ -277,6 +277,7 @@          <script src="/mixed/lib/handlebars.min.js"></script>          <script src="/bg/js/templates.js"></script>          <script src="/bg/js/util.js"></script> +        <script src="/bg/js/handlebars.js"></script>          <script src="/bg/js/dictionary.js"></script>          <script src="/mixed/js/japanese.js"></script>          <script src="/bg/js/options.js"></script> |