# sfm.js
An SFM parser implementation with fixes based on MFM
## Installation
```
npm config set @sharkey:registry https://git.joinsharkey.org/api/packages/Sharkey/npm/
npm i @sharkey/sfm-js
```
## Usage
Please see [docs](./docs/index.md) for the detail.
TypeScript:
```ts
import * as mfm from '@sharkey/sfm-js';
const inputText =
`
Hello $[tada everynyan! 🎉]
I'm @ai, A bot of misskey!
https://github.com/syuilo/ai
`;
// Generate a MFM tree from the full MFM text.
const mfmTree = mfm.parse(inputText);
// Generate a MFM tree from the simple MFM text.
const simpleMfmTree = mfm.parseSimple('I like the hot soup :soup:​');
// Reverse to a MFM text from the MFM tree.
const text = mfm.toString(mfmTree);
```
## Develop
### 1. Clone
```
git clone https://git.joinsharkey.org/Sharkey/sfm.js.git
```
### 2. Install packages
```
cd sfm.js
npm i
```
### 3. Build
```
npm run build
```
### Use the interactive CLI parser
full parser:
```
npm run parse
```
simple parser:
```
npm run parse-simple
```
## License
This software is released under the [MIT License](LICENSE).