From af7920f619b1d1629efe6b6db352b98687f22789 Mon Sep 17 00:00:00 2001 From: "Hallvord R. M. Steen" Date: Wed, 30 Sep 2015 15:56:07 +0200 Subject: [PATCH 1/2] adding default_attributes feature to markdown-it renderer --- README.md | 5 ++++- lib/renderer.js | 10 +++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fd3a590..d9294d7 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,10 @@ var md = require('markdown-it')({ // Highlighter function. Should return escaped HTML, // or '' if the source string is not changed and should be escaped externaly. - highlight: function (/*str, lang*/) { return ''; } + highlight: function (/*str, lang*/) { return ''; }, + + // Configure default attributes for given tags + default_attributes: {"a":[["rel", "nofollow"]]} }); ``` diff --git a/lib/renderer.js b/lib/renderer.js index b1000d5..0bd4600 100644 --- a/lib/renderer.js +++ b/lib/renderer.js @@ -45,7 +45,7 @@ default_rules.fence = function (tokens, idx, options, env, slf) { highlighted = escapeHtml(token.content); } - return '
'
+  return  '
'
         + highlighted
         + '
\n'; }; @@ -131,9 +131,13 @@ function Renderer() { * * Render token attributes to string. **/ -Renderer.prototype.renderAttrs = function renderAttrs(token) { +Renderer.prototype.renderAttrs = function renderAttrs(token, options) { var i, l, result; + if(('default_attributes' in options) && (token.tag in options.default_attributes)){ + token.attrs = (token.attrs||[]).concat(options.default_attributes[token.tag]); + } + if (!token.attrs) { return ''; } result = ''; @@ -181,7 +185,7 @@ Renderer.prototype.renderToken = function renderToken(tokens, idx, options) { result += (token.nesting === -1 ? ' Date: Wed, 30 Sep 2015 16:16:13 +0200 Subject: [PATCH 2/2] Fixing coding standard issues --- lib/renderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/renderer.js b/lib/renderer.js index 0bd4600..79249cc 100644 --- a/lib/renderer.js +++ b/lib/renderer.js @@ -134,8 +134,8 @@ function Renderer() { Renderer.prototype.renderAttrs = function renderAttrs(token, options) { var i, l, result; - if(('default_attributes' in options) && (token.tag in options.default_attributes)){ - token.attrs = (token.attrs||[]).concat(options.default_attributes[token.tag]); + if (('default_attributes' in options) && (token.tag in options.default_attributes)) { + token.attrs = (token.attrs || []).concat(options.default_attributes[token.tag]); } if (!token.attrs) { return ''; }