Misskeyで使われているMarkdown風の書式をライブラリとして扱うことができます。
Misskeyのソースコードをほぼそのまま抜き出しています。
npm install mfmf
const mfm = require('mfmf')
const mfmstring = "**mfmf**"
const html = mfm.render(mfm.parse(mfmstring), [])
console.log(html)
// => `<p data-mfm="root"><b data-mfm="bold">mfmf</b></p>`
mfm.render(input: MfmForest, mentionedRemoteUsers: INote['mentionedRemoteUsers'], options?: any): string(HTML)
MfmForest
を渡すと、HTML文字列が返ってきます。(toHtml
のエイリアスです。)
Misskey内部処理で必要だったものです。リモートのメンションに関係するものです。
オプションを指定します。
何も指定しないときでも空のオブジェクト{}
を渡してください。
初期値は特記のない限り全てfalseまたは''
です。
jmstyle
booleantrue
……joinmisskey用のHTML(付属のCSS/SASSで利用可)false
……リモート送信用(ただしdata-mfm
属性は自動で付加されます。不要な場合は取り除いてください。)
url
string : タグやリプライのリンクのプレフィクスです。不要なので?
などのクエリを指定しておくとよいと思います。animate
:true
に設定するとanimate.cssのクラスを出力します。codeTagAsDiv
:true
に設定するとpre
・code
タグだったものがdiv.pre
・div.code
になります。rootTagName
: ルート要素のタグを指定します。初期値はjmstyle ? 'div' : 'p'
です。
MFMテキストからMfmForest
を生成します。
HTMLをMFMに変換します。fromHtml
のエイリアスです。
SASSで記述されており、src/style
にソースがあります。プレビュー用にdist/style/mfm.css
もあります。
mfmfは、mfmの実行に必要なpreludeやtypesなどもexportします。
npm run build
gulp test