mirror of
https://activitypub.software/TransFem-org/sfm-js
synced 2024-11-24 23:15:14 +00:00
66 lines
1.1 KiB
Markdown
66 lines
1.1 KiB
Markdown
# 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 =
|
||
`<center>
|
||
Hello $[tada everynyan! 🎉]
|
||
|
||
I'm @ai, A bot of misskey!
|
||
|
||
https://github.com/syuilo/ai
|
||
</center>`;
|
||
|
||
// 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).
|