Commit graph

21 commits

Author SHA1 Message Date
David Baker
4f4e9a6c3a Fix block quotes all being on a single line
Fixes https://github.com/vector-im/riot-web/issues/3154
2017-02-17 18:06:00 +00:00
David Baker
853c89dfdc Fix spurious html tags like <shrug>
* Only render HTML tags in markdown if they're del tags
 * Consider non-allowed HTML tags as plain text nodes, so
   a message of just '<shrug>' doesn't need to be sent as
   HTML
 * Consequently rewrite isPlaintext to just look at the parse
   tree rather than making and gutting a renderer to walk
   the tree (now we're using a library that actually produces
   a meaningfgul parse tree).
 * Tweak when we put \n on text output to avoid putting \n on
   the end of messages.

Fixes https://github.com/vector-im/riot-web/issues/3065
2017-02-02 14:17:07 +00:00
David Baker
63e47d8677 Make ourselves a new rendered each time
Rather than keeping one in memory, abusing it in different ways
each time and then craefully putting it back the way it was (and
in one case, failing, because we forgot to put the `out` method
back).
2017-02-02 11:45:21 +00:00
David Baker
72e5b2235d Parse once and re-use the parsed output
Rather than re-parsing the same output in each function
2017-02-02 11:34:39 +00:00
David Baker
fc90ed1c3a Update the comments in Markdown.js
so they don't claim it;s a wrapper around marked when it's now
commonmark, and comment why we render markdown to plaintext which
is somewhat unintuitive.
2017-02-02 11:27:07 +00:00
David Baker
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Johannes Löthberg
9c1c657a1e Markdown: delete remaining pre-split relics
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-19 11:55:36 +01:00
Johannes Löthberg
30bd01cdf2 Markdown: Split up render function into toHTML/toPlaintext
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-18 19:29:11 +01:00
Johannes Löthberg
6d2e521421 Markdown: Add comment about out function override
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-18 14:25:11 +01:00
Johannes Löthberg
2e3bdcf5c6 Markdown: Don't XML escape the output when not HTML
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-17 22:20:05 +01:00
Johannes Löthberg
49d60ff879 Markdown: softbreak is not HTML
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-17 21:04:12 +01:00
Johannes Löthberg
35d70f0b35 markdown: Only add \n\n on multiple paragraphs
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-17 20:32:06 +01:00
Johannes Löthberg
893a5c971f Fix escaping markdown by rendering plaintext
We still need to parse "plaintext" messages through the markdown
renderer so that escappes are rendered properly.

Fixes vector-im/riot-web#2870.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2017-01-17 16:23:58 +01:00
Johannes Löthberg
5f160d2e7f Markdown: Use .call instead of .bind
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-11-30 01:03:05 +01:00
Johannes Löthberg
4d2926485b Replace marked with commonmark
Marked has some annoying bugs, and the author is inactive, so replace it
with commonmark.js, which is the reference JavaScript implementation of
CommonMark.  CommonMark is also preferable since it has a specification,
and a conformance test suite to make sure that parsers are correct.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-11-29 23:14:04 +01:00
David Baker
9bffd8da75 Fix markdown link syntax 2016-09-26 20:09:36 +01:00
David Baker
90c9d51c7d Typos 2016-09-23 14:15:48 +01:00
David Baker
6ba20ec012 Better logic for wrapping in p tags or not 2016-09-22 18:57:46 +01:00
David Baker
ca240b0b85 Don't wrap everything in p tags
Preserves the old behaviour of not wrapping everything in p tags,
but also returns valid markup if the resulting markdown contains
multiple paragraphs (previously it stripped the <p> from the start
and the </p> from the end, leaving closing and opening paragraph tags
in the middle of the returned markup).

Also turn on the 'xhtml' option so marked uses self-closing tags
for br's, hr's and so forth.
2016-09-22 18:17:02 +01:00
David Baker
0eddea1937 Disable link detection, as per comment 2016-09-22 17:51:34 +01:00
David Baker
6c7259eec8 Better detection of when input contains markdown 2016-09-22 17:18:12 +01:00