summaryrefslogtreecommitdiffstats
path: root/webapp/utils
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2016-05-19 08:38:50 -0400
committerJoram Wilander <jwawilander@gmail.com>2016-05-19 08:38:50 -0400
commitc868620693c69e2931c3023460eaafd9f6d330b6 (patch)
tree4fdea8445e794d9dc8223d70fa9838d588d20127 /webapp/utils
parent5ace856e72b23920d9448d4eb11e0bc4ccbf11f0 (diff)
downloadchat-c868620693c69e2931c3023460eaafd9f6d330b6.tar.gz
chat-c868620693c69e2931c3023460eaafd9f6d330b6.tar.bz2
chat-c868620693c69e2931c3023460eaafd9f6d330b6.zip
Updated our fork of marked and added more links to test-links.md (#3047)
Diffstat (limited to 'webapp/utils')
-rw-r--r--webapp/utils/markdown.jsx52
1 files changed, 3 insertions, 49 deletions
diff --git a/webapp/utils/markdown.jsx b/webapp/utils/markdown.jsx
index 2ddd3fe11..69b18faee 100644
--- a/webapp/utils/markdown.jsx
+++ b/webapp/utils/markdown.jsx
@@ -13,40 +13,6 @@ function markdownImageLoaded(image) {
}
window.markdownImageLoaded = markdownImageLoaded;
-class MattermostInlineLexer extends marked.InlineLexer {
- constructor(links, options) {
- super(links, options);
-
- this.rules = Object.assign({}, this.rules);
-
- // modified version of the regex that allows for links starting with www and those surrounded by parentheses
- // the original is /^[\s\S]+?(?=[\\<!\[_*`~]|https?:\/\/| {2,}\n|$)/
- this.rules.text = /^[\s\S]+?(?=[\\<!\[_*`~]|https?:\/\/|www\.|\(| {2,}\n|$)/;
-
- // modified version of the regex that allows links starting with www and those surrounded by parentheses
- // the original is /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/
- this.rules.url = /^(\(?(?:https?:\/\/|www\.)[^\s<.][^\s<]*[^<.,:;"'\]\s])/;
-
- // modified version of the regex that allows <links> starting with www.
- // the original is /^<([^ >]+(@|:\/)[^ >]+)>/
- this.rules.autolink = /^<((?:[^ >]+(@|:\/)|www\.)[^ >]+)>/;
- }
-}
-
-class MattermostParser extends marked.Parser {
- parse(src) {
- this.inline = new MattermostInlineLexer(src.links, this.options, this.renderer);
- this.tokens = src.reverse();
-
- var out = '';
- while (this.next()) {
- out += this.tok();
- }
-
- return out;
- }
-}
-
class MattermostMarkdownRenderer extends marked.Renderer {
constructor(options, formattingOptions = {}) {
super(options);
@@ -109,18 +75,6 @@ class MattermostMarkdownRenderer extends marked.Renderer {
link(href, title, text) {
let outHref = href;
- let outText = text;
- let prefix = '';
- let suffix = '';
-
- // some links like https://en.wikipedia.org/wiki/Rendering_(computer_graphics) contain brackets
- // and we try our best to differentiate those from ones just wrapped in brackets when autolinking
- if (outHref.startsWith('(') && outHref.endsWith(')') && text === outHref) {
- prefix = '(';
- suffix = ')';
- outText = text.substring(1, text.length - 1);
- outHref = outHref.substring(1, outHref.length - 1);
- }
try {
const unescaped = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase();
@@ -149,9 +103,9 @@ class MattermostMarkdownRenderer extends marked.Renderer {
output += ' title="' + title + '"';
}
- output += '>' + outText + '</a>';
+ output += '>' + text + '</a>';
- return prefix + output + suffix;
+ return output;
}
paragraph(text) {
@@ -486,7 +440,7 @@ export function format(text, options) {
const tokens = new MattermostLexer(markdownOptions).lex(text);
- return new MattermostParser(markdownOptions).parse(tokens);
+ return new marked.Parser(markdownOptions).parse(tokens);
}
// Marked helper functions that should probably just be exported