mirror of
https://activitypub.software/TransFem-org/sfm-js
synced 2024-11-25 07:25:13 +00:00
5fe291a7e7
* implement parser with TypeScript (#116) * clean parser * parser, success, failure, str, parser.map * seq * atLeast, any, alt, match, notMatch * mergeText * improve seq * lazy, createLanguage * types * regexp, refactor * nest limit * lint * state * syntaxes * sep1, succeeded, option, fn * simple * strikeWave, plainTag, inlineCode, mathInline * mention, refactor * seqPartial * 🚀 * parser trace * fix mention, implement hashtag * lineBegin, lineEnd, refactor * imple codeBlock, fix lineEnd * codeBlock, mathBlock * fix codeBlock * fix mathBlock * fix codeBlock * lint * fix inlineCode * 🚀 * centerTag * fix nesting limit * fix unicodeEmoji * 🚀 * search * refactor * seqPartial -> seqOrText * lint * url, urlAlt * 🚀 * 🚀 * text * fix * link * linkLabel state * lint * nesting limit for link label * fix url bracket pair * nest * refactor * refactor * remove * add test * wip quote * add quote test * quote * refactor * hashtag * refactor * type * type * refactor * lint * url * italicAsta, italicUnder * italicAsta, italicUnder, mention, rethink spec * rethink spec * test: change implementation-dependent parts * hashtag * add mention test * mention * mention * mention * mention * url * test * hashtag * Revert "Auxiliary commit to revert individual files from 373972beef10eb99ff3e3635a32a207854154a2a" This reverts commit 622b66e20778ad5c283ea7629db853cbf2bb601f. * package-lock * Update tsconfig.json * Update tsconfig.json * ignore a tsd error when importing twemoji-parser regexp * lint * lint Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> * v0.23.0-canary.1 * readme * update chagelog * update changelog * update changelog * refactor * update core combinators Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
1.4 KiB
1.4 KiB
mfm.js
An MFM parser implementation with TypeScript. Try it out!
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
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.