diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-12-20 12:20:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-20 12:20:29 -0500 |
commit | 7dd06e1a64bf563ac083ab2e3ca45fb71ed40a8b (patch) | |
tree | 16351e2ab538d499865fdc799d681219f528119c /ext/bg/js/anki-note-builder.js | |
parent | 113e3b68b8c8399e0899740a52cc7fa3b38658cc (diff) |
Indicate if first Anki card field is invalid (#1145)
* Add AnkiNoteBuilder.containsAnyMarker
* Flag first field as invalid when there is no marker
Diffstat (limited to 'ext/bg/js/anki-note-builder.js')
-rw-r--r-- | ext/bg/js/anki-note-builder.js | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/bg/js/anki-note-builder.js b/ext/bg/js/anki-note-builder.js index b6114e4b..094dd77b 100644 --- a/ext/bg/js/anki-note-builder.js +++ b/ext/bg/js/anki-note-builder.js @@ -22,6 +22,7 @@ class AnkiNoteBuilder { constructor({renderTemplate}) { this._renderTemplate = renderTemplate; + this._markerPattern = /\{([\w-]+)\}/g; } async createNote({ @@ -98,6 +99,12 @@ class AnkiNoteBuilder { return false; } + containsAnyMarker(field) { + const result = this._markerPattern.test(field); + this._markerPattern.lastIndex = 0; + return result; + } + getRootDeckName(deckName) { const index = deckName.indexOf('::'); return index >= 0 ? deckName.substring(0, index) : deckName; @@ -136,8 +143,7 @@ class AnkiNoteBuilder { } async _formatField(field, data, templates, errors=null) { - const pattern = /\{([\w-]+)\}/g; - return await this._stringReplaceAsync(field, pattern, async (g0, marker) => { + return await this._stringReplaceAsync(field, this._markerPattern, async (g0, marker) => { try { return await this._renderTemplate(templates, data, marker); } catch (e) { |