diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-01-08 14:08:36 -0800 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-01-08 14:08:36 -0800 | 
| commit | 984b5326a9753c47ef43defa88d664f9a371729a (patch) | |
| tree | 71461baddd20aab614d7c3d0219c977b2c8e8e69 | |
| parent | d7b4aa681c4ade5fe2bf838b3f7c6e44737e8ab1 (diff) | |
cleanup
| -rw-r--r-- | ext/bg/js/util.js | 111 | ||||
| -rw-r--r-- | ext/bg/js/yomichan.js | 69 | 
2 files changed, 90 insertions, 90 deletions
| diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index 1212fa44..52a52cf8 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -44,28 +44,6 @@ function promiseCallback(promise, callback) {      });  } -function sortTags(tags) { -    return tags.sort((v1, v2) => { -        const order1 = v1.order; -        const order2 = v2.order; -        if (order1 < order2) { -            return -1; -        } else if (order1 > order2) { -            return 1; -        } - -        const name1 = v1.name; -        const name2 = v2.name; -        if (name1 < name2) { -            return -1; -        } else if (name1 > name2) { -            return 1; -        } - -        return 0; -    }); -} -  function sortTermDefs(definitions) {      return definitions.sort((v1, v2) => {          const sl1 = v1.source.length; @@ -139,6 +117,95 @@ function splitField(field) {      return field.length === 0 ? [] : field.split(' ');  } +function sortTags(tags) { +    return tags.sort((v1, v2) => { +        const order1 = v1.order; +        const order2 = v2.order; +        if (order1 < order2) { +            return -1; +        } else if (order1 > order2) { +            return 1; +        } + +        const name1 = v1.name; +        const name2 = v2.name; +        if (name1 < name2) { +            return -1; +        } else if (name1 > name2) { +            return 1; +        } + +        return 0; +    }); +} + +function formatField(field, definition, mode) { +    const markers = [ +        'audio', +        'character', +        'dictionary', +        'expression', +        'expression-furigana', +        'glossary', +        'glossary-list', +        'kunyomi', +        'onyomi', +        'reading', +        'sentence', +        'tags', +        'url', +    ]; + +    for (const marker of markers) { +        let value = definition[marker] || null; +        switch (marker) { +            case 'expression': +                if (mode === 'term_kana' && definition.reading) { +                    value = definition.reading; +                } +                break; +            case 'expression-furigana': +                if (mode === 'term_kana' && definition.reading) { +                    value = definition.reading; +                } else { +                    value = `<ruby>${definition.expression}<rt>${definition.reading}</rt></ruby>`; +                } +                break; +            case 'reading': +                if (mode === 'term_kana') { +                    value = null; +                } +                break; +            case 'glossary-list': +                if (definition.glossary) { +                    if (definition.glossary.length > 1) { +                        value = '<ol style="white-space: pre; text-align: left; overflow-x: auto;">'; +                        for (const gloss of definition.glossary) { +                            value += `<li>${gloss}</li>`; +                        } +                        value += '</ol>'; +                    } else { +                        value = `<p style="white-space: pre; overflow-x: auto;">${definition.glossary.join('')}</p>`; +                    } +                } +                break; +            case 'tags': +                if (definition.tags) { +                    value = definition.tags.map(t => t.name); +                } +                break; +        } + +        if (value !== null && typeof(value) !== 'string') { +            value = value.join(', '); +        } + +        field = field.replace(`{${marker}}`, value || ''); +    } + +    return field; +} +  function loadJson(url) {      return new Promise((resolve, reject) => {          const xhr = new XMLHttpRequest(); diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js index f04e120c..69397a61 100644 --- a/ext/bg/js/yomichan.js +++ b/ext/bg/js/yomichan.js @@ -120,73 +120,6 @@ class Yomichan {          chrome.tabs.sendMessage(tabId, {action, params}, () => null);      } -    formatField(field, definition, mode) { -        const markers = [ -            'audio', -            'character', -            'dictionary', -            'expression', -            'expression-furigana', -            'glossary', -            'glossary-list', -            'kunyomi', -            'onyomi', -            'reading', -            'sentence', -            'tags', -            'url', -        ]; - -        for (const marker of markers) { -            let value = definition[marker] || null; -            switch (marker) { -                case 'expression': -                    if (mode === 'term_kana' && definition.reading) { -                        value = definition.reading; -                    } -                    break; -                case 'expression-furigana': -                    if (mode === 'term_kana' && definition.reading) { -                        value = definition.reading; -                    } else { -                        value = `<ruby>${definition.expression}<rt>${definition.reading}</rt></ruby>`; -                    } -                    break; -                case 'reading': -                    if (mode === 'term_kana') { -                        value = null; -                    } -                    break; -                case 'glossary-list': -                    if (definition.glossary) { -                        if (definition.glossary.length > 1) { -                            value = '<ol style="white-space: pre; text-align: left; overflow-x: auto;">'; -                            for (const gloss of definition.glossary) { -                                value += `<li>${gloss}</li>`; -                            } -                            value += '</ol>'; -                        } else { -                            value = `<p style="white-space: pre; overflow-x: auto;">${definition.glossary.join('')}</p>`; -                        } -                    } -                    break; -                case 'tags': -                    if (definition.tags) { -                        value = definition.tags.map(t => t.name); -                    } -                    break; -            } - -            if (value !== null && typeof(value) !== 'string') { -                value = value.join(', '); -            } - -            field = field.replace(`{${marker}}`, value || ''); -        } - -        return field; -    } -      formatNote(definition, mode) {          const note = {fields: {}, tags: this.options.ankiCardTags}; @@ -218,7 +151,7 @@ class Yomichan {          }          for (const name in fields) { -            note.fields[name] = this.formatField(fields[name], definition, mode); +            note.fields[name] = formatField(fields[name], definition, mode);          }          return note; |