misskey-dev/mfm.js

An MFM parser implementation with TypeScript.

127

stars

352

commits

TypeScript

primary language

Sep 9, 2026

updated

mfm
mfm-parser
misskey
parser
typescript

README

mfm.js

An MFM parser implementation with TypeScript. Try it out!

Test codecov

NPM

Installation

npm i mfm-js

Usage

Please see docs for the detail.

TypeScript:

import * as mfm from 'mfm-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://github.com/misskey-dev/mfm.js.git

2. Install packages

cd mfm.js

# This repository uses pnpm as its package manager.
pnpm i

3. Build

pnpm run build

Use the interactive CLI parser

full parser:

pnpm run parse

simple parser:

pnpm run parse-simple

License

This software is released under the MIT License.

Contributors

marihachi

266 commits

syuilo

60 commits

zyoshoka

4 commits

misskey-dev/mfm.js

An MFM parser implementation with TypeScript.

127

stars

352

commits

TypeScript

primary language

Sep 9, 2026

updated

mfm
mfm-parser
misskey
parser
typescript

README

mfm.js

An MFM parser implementation with TypeScript. Try it out!

Test codecov

NPM

Installation

npm i mfm-js

Usage

Please see docs for the detail.

TypeScript:

import * as mfm from 'mfm-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://github.com/misskey-dev/mfm.js.git

2. Install packages

cd mfm.js

# This repository uses pnpm as its package manager.
pnpm i

3. Build

pnpm run build

Use the interactive CLI parser

full parser:

pnpm run parse

simple parser:

pnpm run parse-simple

License

This software is released under the MIT License.

Contributors

marihachi

266 commits

syuilo

60 commits

zyoshoka

4 commits

Languages

TypeScript

99.1%