react-anchorify-text
Version:
React component which render text with anchored url(s)
79 lines (48 loc) • 2.21 kB
Markdown
# React-anchorify-text [](https://travis-ci.org/mobilusoss/react-anchorify-text) [](http://badge.fury.io/js/react-anchorify-text) [](https://codebeat.co/projects/github-com-mobilusoss-react-anchorify-text-master)
Create anchor tag with urls in text.
## Demo
[View Demo](http://mobilusoss.github.io/react-anchorify-text/example/)
## Installation
```bash
npm install --save react-anchorify-text
```
## API
### `AnchorifyText`
#### Props
```javascript
AnchorifyText.propTypes = {
text: React.PropTypes.string.isRequired,
linkify: React.PropTypes.object,
flags: React.PropTypes.string,
nonUrlPartsRenderer: PropTypes.func,
};
```
* `text`: String to parse url
* `linkify`: An instance of [linkify-it](https://github.com/markdown-it/linkify-it). default: `new LinkifyIt().tlds(require('tlds'))`
* `target`: href target for anchor tag, default to "_blank".
* `nonUrlPartsRenderer`: callback for non-url parts of the `text`.
* ~~`regex`: Regular expression as string to detect url .~~
* ~~`flags`: Regular expression's frag, default to "ig".~~
`regex` and `flags` props are removed from v2.0.0. Use [linkify-it](https://github.com/markdown-it/linkify-it) instance instead.
#### Children
If no children are passed to `AnchorifyText`, found urls will be rendered as `<a>` tag.
If one child are passed to `AnchorifyText`, found urls are rendered as child tag with `url` as prop.
## Usage example
```javascript
const textWithUrl = "Hello Google(http://google.com) and GitHub => https://github.com/ and Apple(www.apple.com)";
<AnchorifyText text={textWithUrl}></AnchorifyText>
<AnchorifyText text={textWithUrl}>
<MyCustomAnchor></MyCustomAnchor>
</AnchorifyText>
```
See [example](https://github.com/mobilusoss/react-anchorify-text/tree/develop/example)
```bash
yarn
yarn run start:example
```
## Tests
```bash
yarn run test
```
## Update dependencies
Use [npm-check-updates](https://www.npmjs.com/package/npm-check-updates)