commonmark-react-renderer
Advanced tools
Comparing version
@@ -5,2 +5,9 @@ # Change Log | ||
## [4.0.1] - 2016-02-21 | ||
### Changes | ||
- Use strings as renderers in simple cases (Glen Mailer) | ||
- Set keys on lists and code blocks (Guillaume Plique) | ||
## [4.0.0] - 2016-02-21 | ||
@@ -7,0 +14,0 @@ |
{ | ||
"name": "commonmark-react-renderer", | ||
"description": "React renderer for CommonMark (rationalized Markdown)", | ||
"version": "4.0.0", | ||
"version": "4.0.1", | ||
"keywords": [ | ||
@@ -6,0 +6,0 @@ "commonmark", |
@@ -9,12 +9,12 @@ 'use strict'; | ||
var defaultRenderers = { | ||
BlockQuote: getDomRenderer('blockquote'), | ||
Code: getDomRenderer('code'), | ||
Emph: getDomRenderer('em'), | ||
Hardbreak: getDomRenderer('br'), | ||
Image: getDomRenderer('img'), | ||
Item: getDomRenderer('li'), | ||
Link: getDomRenderer('a'), | ||
Paragraph: getDomRenderer('p'), | ||
Strong: getDomRenderer('strong'), | ||
ThematicBreak: getDomRenderer('hr'), | ||
BlockQuote: 'blockquote', | ||
Code: 'code', | ||
Emph: 'em', | ||
Hardbreak: 'br', | ||
Image: 'img', | ||
Item: 'li', | ||
Link: 'a', | ||
Paragraph: 'p', | ||
Strong: 'strong', | ||
ThematicBreak: 'hr', | ||
@@ -26,7 +26,9 @@ HtmlBlock: HtmlRenderer, | ||
var tag = props.type === 'Bullet' ? 'ul' : 'ol'; | ||
return createElement(tag, ( | ||
props.start !== null && | ||
props.start !== 1 && | ||
{ start: props.start.toString() } || null | ||
), props.children); | ||
var attrs = { key: props.key }; | ||
if (props.start !== null && props.start !== 1) { | ||
attrs.start = props.start.toString(); | ||
} | ||
return createElement(tag, attrs, props.children); | ||
}, | ||
@@ -36,3 +38,3 @@ CodeBlock: function Code(props) { | ||
var code = createElement('code', { className: className }, props.literal); | ||
return createElement('pre', {}, code); | ||
return createElement('pre', {key: props.key}, code); | ||
}, | ||
@@ -56,8 +58,2 @@ Heading: function Heading(props) { | ||
function getDomRenderer(tag) { | ||
return function domRenderer(props) { | ||
return createElement(tag, props, props.children); | ||
}; | ||
} | ||
function isGrandChildOfList(node) { | ||
@@ -224,5 +220,5 @@ var grandparent = node.parent.parent; | ||
var isSimpleNode = node.type === 'Text' || node.type === 'Softbreak'; | ||
if (typeof renderer !== 'function' && !isSimpleNode) { | ||
if (typeof renderer !== 'function' && !isSimpleNode && typeof renderer !== 'string') { | ||
throw new Error( | ||
'Renderer for type `' + node.type + '` not defined or is not a function' | ||
'Renderer for type `' + node.type + '` not defined or is not renderable' | ||
); | ||
@@ -229,0 +225,0 @@ } |
22258
-0.33%267
-1.84%