summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/behaviors/markdown/marks/strike.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/behaviors/markdown/marks/strike.js')
-rw-r--r--app/assets/javascripts/behaviors/markdown/marks/strike.js29
1 files changed, 24 insertions, 5 deletions
diff --git a/app/assets/javascripts/behaviors/markdown/marks/strike.js b/app/assets/javascripts/behaviors/markdown/marks/strike.js
index 967c0a120cd..afab266b645 100644
--- a/app/assets/javascripts/behaviors/markdown/marks/strike.js
+++ b/app/assets/javascripts/behaviors/markdown/marks/strike.js
@@ -2,16 +2,35 @@
export default () => ({
name: 'strike',
schema: {
- parseDOM: [
- {
- tag: 'del',
+ attrs: {
+ strike: {
+ default: false,
+ },
+ inapplicable: {
+ default: false,
},
+ },
+ parseDOM: [
+ { tag: 'li.inapplicable > s', attrs: { inapplicable: true } },
+ { tag: 'li.inapplicable > p:first-of-type > s', attrs: { inapplicable: true } },
+ { tag: 's', attrs: { strike: true } },
+ { tag: 'del' },
],
toDOM: () => ['s', 0],
},
toMarkdown: {
- open: '~~',
- close: '~~',
+ open(_, mark) {
+ if (mark.attrs.strike) {
+ return '<s>';
+ }
+ return mark.attrs.inapplicable ? '' : '~~';
+ },
+ close(_, mark) {
+ if (mark.attrs.strike) {
+ return '</s>';
+ }
+ return mark.attrs.inapplicable ? '' : '~~';
+ },
mixable: true,
expelEnclosingWhitespace: true,
},