mirror of
https://github.com/tenrok/BBob.git
synced 2026-06-02 16:04:04 +03:00
f640ba9b53
add logo
158 lines
14 KiB
Markdown
158 lines
14 KiB
Markdown
# BBob
|
|
|
|
<div align="center">
|
|
<img alt="BBob a BBCode processor" src="data:image/png;base64,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" />
|
|
</div>
|
|
|
|
<a href="https://travis-ci.org/JiLiZART/bbob">
|
|
<img src="https://travis-ci.org/JiLiZART/bbob.svg?branch=master" alt="Build Status">
|
|
</a>
|
|
<a href="https://codecov.io/gh/JiLiZART/bbob">
|
|
<img src="https://codecov.io/gh/JiLiZART/bbob/branch/master/graph/badge.svg" alt="codecov">
|
|
</a>
|
|
<a href="https://www.codefactor.io/repository/github/jilizart/bbob">
|
|
<img src="https://www.codefactor.io/repository/github/jilizart/bbob/badge" alt="CodeFactor">
|
|
</a>
|
|
<a href="https://bettercodehub.com/">
|
|
<img src="https://bettercodehub.com/edge/badge/JiLiZART/bbob?branch=master" alt="BCH compliance">
|
|
</a>
|
|
<a href="https://snyk.io/test/github/JiLiZART/bbob?targetFile=package.json">
|
|
<img src="https://snyk.io/test/github/JiLiZART/bbob/badge.svg?targetFile=package.json" alt="Known Vulnerabilities">
|
|
</a>
|
|
|
|
BBob is a tool to parse and transform [BBCode](https://en.wikipedia.org/wiki/BBCode)
|
|
written in pure javascript, no dependencies
|
|
|
|
## Packages
|
|
|
|
| Package | Status | Size | Description |
|
|
|----------------------|------------------------------------------------------------|---------|---------------------------|
|
|
| @bbob/core | [![@bbob/core-status]][@bbob/core-package] | `3.2K` | Core package |
|
|
| @bbob/react | [![@bbob/react-status]][@bbob/react-package] | `1.0K` | React renderer |
|
|
| @bbob/preset-react | [![@bbob/preset-react-status]][@bbob/preset-react-package] | `1.8K` | React default tags preset |
|
|
| @bbob/html | [![@bbob/html-status]][@bbob/html-package] | `689B` | HTML renderer |
|
|
| @bbob/preset-html5 | [![@bbob/preset-html5-status]][@bbob/preset-html5-package] | `1.6K` | HTML5 default tags preset |
|
|
|
|
[@bbob/core-status]: https://img.shields.io/npm/v/@bbob/core.svg
|
|
[@bbob/react-status]: https://img.shields.io/npm/v/@bbob/react.svg
|
|
[@bbob/preset-react-status]: https://img.shields.io/npm/v/@bbob/preset-react.svg
|
|
[@bbob/html-status]: https://img.shields.io/npm/v/@bbob/html.svg
|
|
[@bbob/preset-html5-status]: https://img.shields.io/npm/v/@bbob/preset-html5.svg
|
|
|
|
[@bbob/core-package]: https://npmjs.com/package/@bbob/core
|
|
[@bbob/react-package]: https://npmjs.com/package/@bbob/react
|
|
[@bbob/preset-react-package]: https://npmjs.com/package/@bbob/preset-react
|
|
[@bbob/html-package]: https://npmjs.com/package/@bbob/html
|
|
[@bbob/preset-html5-package]: https://npmjs.com/package/@bbob/preset-html5
|
|
|
|
[DEMO Playground](https://codepen.io/JiLiZART/full/vzMvpd)
|
|
|
|
## Table of contents
|
|
* [Basic usage](#basic)
|
|
* [Presets](#presets)
|
|
* [Create your own preset](#create-preset)
|
|
* [HTML Preset](#html-preset)
|
|
* [React Preset](#react-preset)
|
|
* [React usage](#react)
|
|
* [Component](#react-component)
|
|
* [Render prop](#react-render)
|
|
* [PostHTML usage](#posthtml)
|
|
* [Create Plugin](#plugin)
|
|
|
|
### Basic usage <a name="basic"></a>
|
|
|
|
```shell
|
|
npm i @bbob/core @bbob/html @bbob/preset-html5
|
|
```
|
|
|
|
```js
|
|
import bbob from '@bbob/core'
|
|
import { render } from '@bbob/html'
|
|
import presetHTML5 from '@bbob/preset-html5'
|
|
|
|
const processed = bbob(presetHTML5()).process(`[i]Text[/i]`, { render })
|
|
|
|
console.log(processed.html); // <span style="font-style: italic;">Text</span>
|
|
```
|
|
|
|
### Presets <a name="basic"></a>
|
|
|
|
Its a way to transform parsed BBCode AST tree to another tree by rules in preset
|
|
|
|
#### Create your own preset <a name="create-preset"></a>
|
|
|
|
```js
|
|
import { createPreset } from '@bbob/preset'
|
|
import { render } from '@bbob/html'
|
|
import bbob from '@bbob/core'
|
|
|
|
const preset = createPreset({
|
|
quote: node => ({
|
|
tag: 'blockquote',
|
|
attrs: {},
|
|
content: [{
|
|
tag: 'p',
|
|
attrs: {},
|
|
content: node.content,
|
|
}],
|
|
}),
|
|
})
|
|
|
|
console.log(bbob(preset()).process(`[quote]Text[/quote]`, { render }).html) // <blockquote><p>Text</p></blockquote>
|
|
```
|
|
|
|
#### HTML Preset <a name="html-preset"></a>
|
|
|
|
Also you can use predefined preset for HTML
|
|
|
|
```js
|
|
import html5Preset from '@bbob/preset-html5'
|
|
import { render } from '@bbob/html'
|
|
import bbob from '@bbob/core'
|
|
|
|
console.log(bbob(html5Preset()).process(`[quote]Text[/quote]`, { render }).html) // <blockquote><p>Text</p></blockquote>
|
|
```
|
|
|
|
#### React Preset <a name="react-preset"></a>
|
|
|
|
Also you can use predefined preset for React
|
|
|
|
```js
|
|
import reactPreset from '@bbob/preset-react'
|
|
import { render } from '@bbob/react'
|
|
import bbob from '@bbob/core'
|
|
|
|
console.log(bbob(reactPreset()).process(`[quote]Text[/quote]`, { render }).html)
|
|
/* It produces a VDOM Nodes equal to
|
|
React.createElement('blockquote', React.createElement('p', 'Text'))
|
|
*/
|
|
```
|
|
|
|
### React usage <a name="react"></a>
|
|
|
|
#### Component <a name="react-component"></a>
|
|
|
|
Or you can use React Component
|
|
|
|
```jsx
|
|
import React from 'react'
|
|
import { render } from 'react-dom'
|
|
|
|
import BBCode from '@bbob/react'
|
|
import reactPreset from '@bbob/preset-react'
|
|
|
|
const MyComponent = () => (
|
|
<BBCode plugins={[reactPreset()]}>
|
|
[quote]Text[/quote]
|
|
</BBCode>
|
|
)
|
|
|
|
render(<MyComponent />) // <div><blockquote><p>Text</p></blockquote></div>
|
|
```
|
|
|
|
#### Render prop <a name="react-render"></a>
|
|
|
|
### PostHTML usage <a name="posthtml"></a>
|
|
|
|
### Create Plugin <a name="plugin"></a>
|