diff --git a/README.md b/README.md
index c897df5..6d18790 100644
--- a/README.md
+++ b/README.md
@@ -88,7 +88,7 @@ import {render} from 'react-dom'
import bbobReactRender from '@bbob/react/es/render'
import presetReact from '@bbob/preset-react'
-console.log(render({bbobReactRender(`[i]Text[/i]`, presetReact())})); // Text
+console.log(render({bbobReactRender(`[i]Text[/i]`, presetReact(), { onlyAllowTags: ['i'] })})); // Text
```
### Presets
@@ -165,7 +165,7 @@ import BBCode from '@bbob/react/es/Component'
import reactPreset from '@bbob/preset-react/es'
const MyComponent = () => (
-
+
[quote]Text[/quote]
)
diff --git a/packages/bbob-react/src/Component.js b/packages/bbob-react/src/Component.js
index 8dfd942..78f6411 100644
--- a/packages/bbob-react/src/Component.js
+++ b/packages/bbob-react/src/Component.js
@@ -2,11 +2,11 @@ import React from 'react';
import PropTypes from 'prop-types';
import { render } from './render';
-const content = (children, plugins) => React.Children.map(children, child =>
- (typeof child === 'string' ? render(child, plugins) : child));
+const content = (children, plugins, options) => React.Children.map(children, child =>
+ (typeof child === 'string' ? render(child, plugins, options) : child));
const Component = props =>
- React.createElement(props.container, {}, content(props.children, props.plugins));
+ React.createElement(props.container, {}, content(props.children, props.plugins, props.options));
if (process.env.NODE_ENV !== 'production') {
Component.propTypes = {
@@ -19,6 +19,7 @@ if (process.env.NODE_ENV !== 'production') {
Component.defaultProps = {
container: 'span',
plugins: [],
+ options: {},
};
export default Component;
diff --git a/packages/bbob-react/src/render.js b/packages/bbob-react/src/render.js
index d9f9d00..54a6679 100644
--- a/packages/bbob-react/src/render.js
+++ b/packages/bbob-react/src/render.js
@@ -4,8 +4,9 @@ import * as html from '@bbob/html';
import { isTagNode, isStringNode } from '@bbob/plugin-helper';
-const toAST = (source, plugins) => core(plugins)
+const toAST = (source, plugins, options) => core(plugins)
.process(source, {
+ ...options,
render: input => html.render(input, { stripTags: true }),
}).tree;
@@ -32,8 +33,8 @@ function renderToReactNodes(nodes) {
return els;
}
-function render(source, plugins) {
- return renderToReactNodes(toAST(source, plugins));
+function render(source, plugins, options) {
+ return renderToReactNodes(toAST(source, plugins, options));
}
export { render };