Skip to content
Snippets Groups Projects
README.md 1.41 KiB
Newer Older
marihachi's avatar
marihachi committed
# mfm.js
syuilo's avatar
syuilo committed
An MFM parser implementation with PEG.js.
[Try it out!](https://runkit.com/npm/mfm-js)
syuilo's avatar
syuilo committed

syuilo's avatar
syuilo committed
[![Test](https://github.com/misskey-dev/mfm.js/actions/workflows/test.yml/badge.svg)](https://github.com/misskey-dev/mfm.js/actions/workflows/test.yml)
syuilo's avatar
syuilo committed
[![codecov](https://codecov.io/gh/misskey-dev/mfm.js/branch/develop/graph/badge.svg?token=irAWFiHK8T)](https://codecov.io/gh/misskey-dev/mfm.js)

syuilo's avatar
syuilo committed
[![NPM](https://nodei.co/npm/mfm-js.png?downloads=true&downloadRank=true&stars=true)](https://www.npmjs.com/package/mfm-js)
marihachi's avatar
marihachi committed

## Installation
```
marihachi's avatar
marihachi committed
npm i mfm-js
marihachi's avatar
marihachi committed
```

marihachi's avatar
marihachi committed
## Usage
syuilo's avatar
syuilo committed
Please see [docs](./docs/index.md) for the detail.
marihachi's avatar
marihachi committed

syuilo's avatar
syuilo committed
TypeScript:
marihachi's avatar
marihachi committed
```ts
marihachi's avatar
marihachi committed
import * as mfm from 'mfm-js';
marihachi's avatar
marihachi committed

marihachi's avatar
marihachi committed
const inputText =
marihachi's avatar
marihachi committed
`<center>
marihachi's avatar
marihachi committed
Hello $[tada everynyan! 🎉]
marihachi's avatar
marihachi committed

marihachi's avatar
marihachi committed
I'm @ai, A bot of misskey!
marihachi's avatar
marihachi committed

https://github.com/syuilo/ai
</center>`;

marihachi's avatar
marihachi committed
// Generate a MFM tree from the MFM text.
const mfmTree = mfm.parse(inputText);

// Generate a MFM tree from the MFM plain text.
const plainMfmTree = mfm.parsePlain('I like the hot soup :soup:​');

// Reverse to a MFM text from the MFM tree.
const text = mfm.toString(mfmTree);
marihachi's avatar
marihachi committed

marihachi's avatar
marihachi committed
```

syuilo's avatar
syuilo committed
## Develop
marihachi's avatar
marihachi committed
### 1. Clone
```
marihachi's avatar
marihachi committed
git clone https://github.com/misskey-dev/mfm.js.git
marihachi's avatar
marihachi committed
```

marihachi's avatar
marihachi committed
### 2. Install packages
marihachi's avatar
marihachi committed
```
marihachi's avatar
marihachi committed
cd mfm.js
marihachi's avatar
marihachi committed
npm i
marihachi's avatar
marihachi committed
```

marihachi's avatar
marihachi committed
### 3. Build
marihachi's avatar
marihachi committed
```
marihachi's avatar
marihachi committed
npm run build
marihachi's avatar
marihachi committed
```

marihachi's avatar
marihachi committed
### Use the interactive CLI parser
marihachi's avatar
marihachi committed
full parser:
marihachi's avatar
marihachi committed
```
Marihachi's avatar
Marihachi committed
npm run parse
marihachi's avatar
marihachi committed
```
marihachi's avatar
marihachi committed

marihachi's avatar
marihachi committed
plain parser:
```
npm run parse-plain
```

marihachi's avatar
marihachi committed
## License
syuilo's avatar
syuilo committed
This software is released under the [MIT License](LICENSE).