summaryrefslogtreecommitdiffstats
path: root/web/react/utils/text_formatting.jsx
blob: 2e1416d1db3a9a3eb1b57de59ba301e671a5e8dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
// See License.txt for license information.

const Constants = require('../utils/constants.jsx');
const UserStore = require('../stores/user_store.jsx');

export function formatText(text, options = {}) {
    let output = sanitize(text);

    // TODO autolink @mentions
    // TODO highlight mentions of self
    // TODO autolink urls
    // TODO highlight search terms
    // TODO autolink hashtags

    // TODO leave space for markdown

    if (options.singleline) {
        output = output.replace('\n', ' ');
    } else {
        output = output.replace('\n', '<br />');
    }

    return output;
}

export function sanitize(text) {
    let output = text;

    // normal string.replace only does a single occurrance so use a regex instead
    output = output.replace(/&/g, '&amp;');
    output = output.replace(/</g, '&lt;');
    output = output.replace(/>/g, '&gt;');

    return output;
}