From 5837f6bc5b96a9a1215950ca270f5e10dff0a2c3 Mon Sep 17 00:00:00 2001 From: Marijn Haverbeke Date: Mon, 30 May 2016 17:47:58 +0200 Subject: [PATCH] Add an attrGet method to Token To make it easier to write code that consumes tokens for tasks other than generating HTML. --- lib/token.js | 14 ++++++++++++++ test/misc.js | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/token.js b/lib/token.js index 448ff49c2..54e1a5c0c 100644 --- a/lib/token.js +++ b/lib/token.js @@ -163,6 +163,20 @@ Token.prototype.attrSet = function attrSet(name, value) { }; +/** + * Token.attrGet(name) + * + * Get the value of attribute `name`, or null if it does not exist. + **/ +Token.prototype.attrGet = function attrGet(name) { + var idx = this.attrIndex(name), value = null; + if (idx >= 0) { + value = this.attrs[idx][1]; + } + return value; +}; + + /** * Token.attrJoin(name, value) * diff --git a/test/misc.js b/test/misc.js index de7297d89..fd7ba6db0 100644 --- a/test/misc.js +++ b/test/misc.js @@ -357,4 +357,17 @@ describe('Token attributes', function () { '
\n' ); }); + + it('.attrGet', function () { + var md = markdownit(); + + var tokens = md.parse('```'), + t = tokens[0]; + + assert.strictEqual(t.attrGet('myattr'), null); + + t.attrSet('myattr', 'myvalue'); + + assert.strictEqual(t.attrGet('myattr'), 'myvalue'); + }); });