diff --git a/src/mfm/html.ts b/src/mfm/html.ts index 6dba6defe3..61d2d7b5af 100644 --- a/src/mfm/html.ts +++ b/src/mfm/html.ts @@ -157,7 +157,7 @@ export default (tokens: MfmForest, mentionedRemoteUsers: INote['mentionedRemoteU text(token) { const el = doc.createElement('span'); - const nodes = (token.node.props.text as string).split('\n').map(x => doc.createTextNode(x)); + const nodes = (token.node.props.text as string).split(/\r\n|\r|\n/).map(x => doc.createTextNode(x)); for (const x of intersperse('br', nodes)) { el.appendChild(x === 'br' ? doc.createElement('br') : x); diff --git a/test/mfm.ts b/test/mfm.ts index a1f83fe1db..3452c5f109 100644 --- a/test/mfm.ts +++ b/test/mfm.ts @@ -1096,6 +1096,12 @@ describe('MFM', () => { const output = '

foo
bar
baz

'; assert.equal(toHtml(analyze(input)), output); }); + + it('br alt', () => { + const input = 'foo\r\nbar\rbaz'; + const output = '

foo
bar
baz

'; + assert.equal(toHtml(analyze(input)), output); + }); }); it('code block with quote', () => {