From 9404dd30c5bd72861488f23260b08028d8a0c8e5 Mon Sep 17 00:00:00 2001
From: Luke Barnard <lukeb@openmarket.com>
Date: Fri, 23 Jun 2017 18:19:06 +0100
Subject: [PATCH] Use <del> for strikeout

We've swapped to commonmark, which uses <del> instead of ~~ for strikeout, so make the RTE insert <del> when we apply strikeout. Also, when ~~ is inserted, transform them into <del> for simplicity. This means giving an input of ~~test~~ is effectively the same as giving an input of <del>test</del>.
---
 src/Markdown.js                                    | 3 +++
 src/components/views/rooms/MessageComposerInput.js | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/Markdown.js b/src/Markdown.js
index 4a46ce4f24..134520b775 100644
--- a/src/Markdown.js
+++ b/src/Markdown.js
@@ -62,6 +62,9 @@ function is_multi_line(node) {
  */
 export default class Markdown {
     constructor(input) {
+        // Support GH-style strikeout
+        input = input.replace(/~~(.*?)~~/g, '<del>$1</del>');
+
         this.input = input;
 
         const parser = new commonmark.Parser();
diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js
index 4d7c0f7a80..5ea92d18ce 100644
--- a/src/components/views/rooms/MessageComposerInput.js
+++ b/src/components/views/rooms/MessageComposerInput.js
@@ -397,7 +397,7 @@ export default class MessageComposerInput extends React.Component {
                 'bold': (text) => `**${text}**`,
                 'italic': (text) => `*${text}*`,
                 'underline': (text) => `_${text}_`, // there's actually no valid underline in Markdown, but *shrug*
-                'strike': (text) => `~~${text}~~`,
+                'strike': (text) => `<del>${text}</del>`,
                 'code-block': (text) => `\`\`\`\n${text}\n\`\`\``,
                 'blockquote': (text) => text.split('\n').map((line) => `> ${line}\n`).join(''),
                 'unordered-list-item': (text) => text.split('\n').map((line) => `\n- ${line}`).join(''),