Comparing version 2.0.1 to 3.0.0
@@ -12,6 +12,2 @@ 'use strict'; | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _createRenderer = require('./createRenderer'); | ||
@@ -51,5 +47,6 @@ | ||
}); | ||
var mockedReact = { createElement: options.createElement }; | ||
tracker.tree.push(_react2.default.createElement(function () { | ||
return new (Function.prototype.bind.apply(Function, [null].concat(['React'], _toConsumableArray(Object.keys(options.components)), ['return ' + code])))().apply(undefined, [_react2.default].concat(_toConsumableArray(components))) || null; | ||
tracker.tree.push(options.createElement(function () { | ||
return new (Function.prototype.bind.apply(Function, [null].concat(['React'], _toConsumableArray(Object.keys(options.components)), ['return ' + code])))().apply(undefined, [mockedReact].concat(_toConsumableArray(components))) || null; | ||
}, { key: tracker.nextElementId++ })); | ||
@@ -63,7 +60,6 @@ } catch (e) {} | ||
var CodeComponent = function CodeComponent() { | ||
return _react2.default.createElement( | ||
'pre', | ||
null, | ||
_react2.default.createElement('code', { className: 'hljs ' + language, dangerouslySetInnerHTML: { __html: options.highlight ? options.highlight.highlightAuto(_code).value : _code } }) | ||
); | ||
return options.createElement('pre', null, options.createElement('code', { | ||
className: 'hljs ' + language, | ||
dangerouslySetInnerHTML: { __html: options.highlight ? options.highlight.highlightAuto(_code).value : _code } | ||
})); | ||
}; | ||
@@ -73,3 +69,3 @@ | ||
tracker.elements[elementId] = _react2.default.createElement(CodeComponent, { key: elementId }); | ||
tracker.elements[elementId] = options.createElement(CodeComponent, { key: elementId }); | ||
@@ -76,0 +72,0 @@ tracker.tree.push(tracker.elements[elementId]); |
@@ -8,6 +8,2 @@ 'use strict'; | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _marked = require('marked'); | ||
@@ -69,3 +65,3 @@ | ||
tracker.elements[elementId] = _react2.default.createElement(options[tag] || tag, Object.assign({ | ||
tracker.elements[elementId] = options.createElement(options.elements && options.elements[tag] || tag, Object.assign({ | ||
key: elementId | ||
@@ -83,10 +79,9 @@ }, props), inlineContent); | ||
function CodeComponent() { | ||
return _react2.default.createElement( | ||
'pre', | ||
null, | ||
_react2.default.createElement('code', { className: 'hljs ' + language, dangerouslySetInnerHTML: { __html: options.highlight ? options.highlight.highlightAuto(code).value : code } }) | ||
); | ||
return options.createElement('pre', null, options.createElement('code', { | ||
className: 'hljs ' + language, | ||
dangerouslySetInnerHTML: { __html: options.highlight ? options.highlight.highlightAuto(code).value : code } | ||
})); | ||
} | ||
tracker.elements[elementId] = _react2.default.createElement(CodeComponent, { key: elementId }); | ||
tracker.elements[elementId] = options.createElement(CodeComponent, { key: elementId }); | ||
@@ -101,3 +96,3 @@ tracker.tree.push(tracker.elements[elementId]); | ||
tracker.tree.push(_react2.default.createElement('div', { | ||
tracker.tree.push(options.createElement('div', { | ||
key: elementId, | ||
@@ -104,0 +99,0 @@ dangerouslySetInnerHTML: { |
{ | ||
"name": "marksy", | ||
"version": "2.0.1", | ||
"version": "3.0.0", | ||
"description": "Convert markdown into react components", | ||
@@ -34,5 +34,9 @@ "main": "lib/index.js", | ||
"css-loader": "^0.15.2", | ||
"inferno-create-element": "^3.3.1", | ||
"inferno-server": "^3.3.1", | ||
"jest": "^20.0.1", | ||
"json-loader": "^0.5.2", | ||
"node-libs-browser": "^0.5.2", | ||
"preact": "^8.1.0", | ||
"preact-render-to-string": "^3.6.3", | ||
"react": "^15.5.4", | ||
@@ -39,0 +43,0 @@ "react-dom": "^15.5.4", |
# marksy | ||
A markdown to custom React components library | ||
A markdown to custom components library. Supports any virtual DOM library. | ||
@@ -10,31 +10,40 @@ ## Install | ||
```js | ||
import React, {createElement} from 'React'; | ||
import marksy from 'marksy' | ||
// const marksy = require('marksy').marksy | ||
// You can override the default elements with | ||
// React components | ||
const compile = marksy({ | ||
h1 ({id, children}) {}, | ||
h2 ({id, children}) {}, | ||
h3 ({id, children}) {}, | ||
h4 ({id, children}) {}, | ||
blockquote ({children}) {}, | ||
hr () {}, | ||
ol ({children}) {}, | ||
ul ({children}) {}, | ||
p ({children}) {}, | ||
table ({children}) {}, | ||
thead ({children}) {}, | ||
tbody ({children}) {}, | ||
tr ({children}) {}, | ||
th ({children}) {}, | ||
td ({children}) {}, | ||
a ({href, title, target, children}) {}, | ||
strong ({children}) {}, | ||
em ({children}) {}, | ||
br () {}, | ||
del ({children}) {}, | ||
img ({src, alt}) {}, | ||
code ({language, code}) {}, | ||
codespan ({children}) {} | ||
// Pass in whatever creates elements for your | ||
// virtual DOM library. h('h1', {}) | ||
createElement, | ||
// You can override the default elements with | ||
// custom VDOM trees | ||
elements: { | ||
h1 ({id, children}) { | ||
return <h1 className="my-custom-class">{children}</h1> | ||
}, | ||
h2 ({id, children}) {}, | ||
h3 ({id, children}) {}, | ||
h4 ({id, children}) {}, | ||
blockquote ({children}) {}, | ||
hr () {}, | ||
ol ({children}) {}, | ||
ul ({children}) {}, | ||
p ({children}) {}, | ||
table ({children}) {}, | ||
thead ({children}) {}, | ||
tbody ({children}) {}, | ||
tr ({children}) {}, | ||
th ({children}) {}, | ||
td ({children}) {}, | ||
a ({href, title, target, children}) {}, | ||
strong ({children}) {}, | ||
em ({children}) {}, | ||
br () {}, | ||
del ({children}) {}, | ||
img ({src, alt}) {}, | ||
code ({language, code}) {}, | ||
codespan ({children}) {} | ||
} | ||
}) | ||
@@ -51,8 +60,10 @@ | ||
### Custom components | ||
You can also add your own custom components. You do this by importing `marksy/components`. This build of marksy includes babel transpiler which will convert any HTML to React elements and allow for custom components: | ||
You can also add your own custom components. You do this by importing `marksy/components`. This build of marksy includes babel transpiler which will convert any HTML to elements and allow for custom components: | ||
```js | ||
import React, {createElement} from 'react' | ||
import marksy from 'marksy/components' | ||
const compile = marksy({ | ||
createElement, | ||
components: { | ||
@@ -86,11 +97,13 @@ MyCustomComponent (props) { | ||
```js | ||
import {createElement} from 'react' | ||
import 'highlight.js/styles/github.css'; | ||
import hljs from 'highlight.js/lib/highlight'; | ||
import highlight from 'highlight.js/lib/highlight'; | ||
import hljsJavascript from 'highlight.js/lib/languages/javascript'; | ||
import marksy from 'marksy/components' | ||
hljs.registerLanguage('javascript', hljsJavascript); | ||
highlight.registerLanguage('javascript', hljsJavascript); | ||
const compile = marksy({ | ||
highlight: hljs | ||
createElement, | ||
highlight | ||
}) | ||
@@ -97,0 +110,0 @@ ``` |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
33332
115
20
251