This commit is contained in:
Aya Morisawa 2018-08-19 00:31:25 +09:00
parent f59d0a75e4
commit 7aac2c4e29

View file

@ -5,6 +5,10 @@ import config from '../config';
import { INote } from '../models/note'; import { INote } from '../models/note';
import { TextElement } from './parse'; import { TextElement } from './parse';
function intersperse<T>(sep: T, xs: T[]): T[] {
return [].concat(...xs.map(x => [sep, x])).slice(1);
}
const handlers: { [key: string]: (window: any, token: any, mentionedRemoteUsers: INote['mentionedRemoteUsers']) => void } = { const handlers: { [key: string]: (window: any, token: any, mentionedRemoteUsers: INote['mentionedRemoteUsers']) => void } = {
bold({ document }, { bold }) { bold({ document }, { bold }) {
const b = document.createElement('b'); const b = document.createElement('b');
@ -80,12 +84,9 @@ const handlers: { [key: string]: (window: any, token: any, mentionedRemoteUsers:
}, },
text({ document }, { content }) { text({ document }, { content }) {
const t = content.split('\n'); const nodes = (content as string).split('\n').map(x => document.createTextNode(x));
for (let i = 0; i < t.length; i++) { for (const x of intersperse(document.createElement('br'), nodes)) {
document.body.appendChild(document.createTextNode(t[i])); document.body.appendChild(x);
if (i != t.length - 1) {
document.body.appendChild(document.createElement('br'));
}
} }
}, },