summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--web/react/utils/text_formatting.jsx36
1 files changed, 36 insertions, 0 deletions
diff --git a/web/react/utils/text_formatting.jsx b/web/react/utils/text_formatting.jsx
new file mode 100644
index 000000000..2e1416d1d
--- /dev/null
+++ b/web/react/utils/text_formatting.jsx
@@ -0,0 +1,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;
+}