@tiptap/extension-strike 2.3.2 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +13 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -9
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +13 -8
- package/dist/index.umd.js.map +1 -1
- package/dist/packages/extension-strike/src/strike.d.ts +18 -0
- package/package.json +2 -2
- package/src/strike.ts +21 -9
package/dist/index.cjs
CHANGED
|
@@ -4,8 +4,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var core = require('@tiptap/core');
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Matches a strike to a ~~strike~~ on input.
|
|
9
|
+
*/
|
|
7
10
|
const inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
|
|
11
|
+
/**
|
|
12
|
+
* Matches a strike to a ~~strike~~ on paste.
|
|
13
|
+
*/
|
|
8
14
|
const pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
|
|
15
|
+
/**
|
|
16
|
+
* This extension allows you to create strike text.
|
|
17
|
+
* @see https://www.tiptap.dev/api/marks/strike
|
|
18
|
+
*/
|
|
9
19
|
const Strike = core.Mark.create({
|
|
10
20
|
name: 'strike',
|
|
11
21
|
addOptions() {
|
|
@@ -48,14 +58,9 @@ const Strike = core.Mark.create({
|
|
|
48
58
|
};
|
|
49
59
|
},
|
|
50
60
|
addKeyboardShortcuts() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
shortcuts['Ctrl-Shift-s'] = () => this.editor.commands.toggleStrike();
|
|
57
|
-
}
|
|
58
|
-
return shortcuts;
|
|
61
|
+
return {
|
|
62
|
+
'Mod-Shift-s': () => this.editor.commands.toggleStrike(),
|
|
63
|
+
};
|
|
59
64
|
},
|
|
60
65
|
addInputRules() {
|
|
61
66
|
return [
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/strike.ts"],"sourcesContent":["import {\n
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/strike.ts"],"sourcesContent":["import {\n Mark,\n markInputRule,\n markPasteRule,\n mergeAttributes,\n} from '@tiptap/core'\n\nexport interface StrikeOptions {\n /**\n * HTML attributes to add to the strike element.\n * @default {}\n * @example { class: 'foo' }\n */\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n strike: {\n /**\n * Set a strike mark\n * @example editor.commands.setStrike()\n */\n setStrike: () => ReturnType,\n /**\n * Toggle a strike mark\n * @example editor.commands.toggleStrike()\n */\n toggleStrike: () => ReturnType,\n /**\n * Unset a strike mark\n * @example editor.commands.unsetStrike()\n */\n unsetStrike: () => ReturnType,\n }\n }\n}\n\n/**\n * Matches a strike to a ~~strike~~ on input.\n */\nexport const inputRegex = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))$/\n\n/**\n * Matches a strike to a ~~strike~~ on paste.\n */\nexport const pasteRegex = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))/g\n\n/**\n * This extension allows you to create strike text.\n * @see https://www.tiptap.dev/api/marks/strike\n */\nexport const Strike = Mark.create<StrikeOptions>({\n name: 'strike',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 's',\n },\n {\n tag: 'del',\n },\n {\n tag: 'strike',\n },\n {\n style: 'text-decoration',\n consuming: false,\n getAttrs: style => ((style as string).includes('line-through') ? {} : false),\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setStrike: () => ({ commands }) => {\n return commands.setMark(this.name)\n },\n toggleStrike: () => ({ commands }) => {\n return commands.toggleMark(this.name)\n },\n unsetStrike: () => ({ commands }) => {\n return commands.unsetMark(this.name)\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-s': () => this.editor.commands.toggleStrike(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: inputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: pasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":["Mark","mergeAttributes","markInputRule","markPasteRule"],"mappings":";;;;;;AAsCA;;AAEG;AACI,MAAM,UAAU,GAAG,+CAA8C;AAExE;;AAEG;AACI,MAAM,UAAU,GAAG,+CAA8C;AAExE;;;AAGG;AACU,MAAA,MAAM,GAAGA,SAAI,CAAC,MAAM,CAAgB;AAC/C,IAAA,IAAI,EAAE,QAAQ;IAEd,UAAU,GAAA;QACR,OAAO;AACL,YAAA,cAAc,EAAE,EAAE;SACnB,CAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO;AACL,YAAA;AACE,gBAAA,GAAG,EAAE,GAAG;AACT,aAAA;AACD,YAAA;AACE,gBAAA,GAAG,EAAE,KAAK;AACX,aAAA;AACD,YAAA;AACE,gBAAA,GAAG,EAAE,QAAQ;AACd,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK,KAAM,KAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAC7E,aAAA;SACF,CAAA;KACF;IAED,UAAU,CAAC,EAAE,cAAc,EAAE,EAAA;AAC3B,QAAA,OAAO,CAAC,GAAG,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;KAC9E;IAED,WAAW,GAAA;QACT,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;gBAChC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACnC;YACD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;gBACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACtC;YACD,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;gBAClC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACrC;SACF,CAAA;KACF;IAED,oBAAoB,GAAA;QAClB,OAAO;YACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;SACzD,CAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAAC,kBAAa,CAAC;AACZ,gBAAA,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAAC,kBAAa,CAAC;AACZ,gBAAA,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;AACF,CAAA;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
import { Mark, mergeAttributes,
|
|
1
|
+
import { Mark, mergeAttributes, markInputRule, markPasteRule } from '@tiptap/core';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Matches a strike to a ~~strike~~ on input.
|
|
5
|
+
*/
|
|
3
6
|
const inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
|
|
7
|
+
/**
|
|
8
|
+
* Matches a strike to a ~~strike~~ on paste.
|
|
9
|
+
*/
|
|
4
10
|
const pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
|
|
11
|
+
/**
|
|
12
|
+
* This extension allows you to create strike text.
|
|
13
|
+
* @see https://www.tiptap.dev/api/marks/strike
|
|
14
|
+
*/
|
|
5
15
|
const Strike = Mark.create({
|
|
6
16
|
name: 'strike',
|
|
7
17
|
addOptions() {
|
|
@@ -44,14 +54,9 @@ const Strike = Mark.create({
|
|
|
44
54
|
};
|
|
45
55
|
},
|
|
46
56
|
addKeyboardShortcuts() {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
shortcuts['Ctrl-Shift-s'] = () => this.editor.commands.toggleStrike();
|
|
53
|
-
}
|
|
54
|
-
return shortcuts;
|
|
57
|
+
return {
|
|
58
|
+
'Mod-Shift-s': () => this.editor.commands.toggleStrike(),
|
|
59
|
+
};
|
|
55
60
|
},
|
|
56
61
|
addInputRules() {
|
|
57
62
|
return [
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n Mark,\n markInputRule,\n markPasteRule,\n mergeAttributes,\n} from '@tiptap/core'\n\nexport interface StrikeOptions {\n /**\n * HTML attributes to add to the strike element.\n * @default {}\n * @example { class: 'foo' }\n */\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n strike: {\n /**\n * Set a strike mark\n * @example editor.commands.setStrike()\n */\n setStrike: () => ReturnType,\n /**\n * Toggle a strike mark\n * @example editor.commands.toggleStrike()\n */\n toggleStrike: () => ReturnType,\n /**\n * Unset a strike mark\n * @example editor.commands.unsetStrike()\n */\n unsetStrike: () => ReturnType,\n }\n }\n}\n\n/**\n * Matches a strike to a ~~strike~~ on input.\n */\nexport const inputRegex = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))$/\n\n/**\n * Matches a strike to a ~~strike~~ on paste.\n */\nexport const pasteRegex = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))/g\n\n/**\n * This extension allows you to create strike text.\n * @see https://www.tiptap.dev/api/marks/strike\n */\nexport const Strike = Mark.create<StrikeOptions>({\n name: 'strike',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 's',\n },\n {\n tag: 'del',\n },\n {\n tag: 'strike',\n },\n {\n style: 'text-decoration',\n consuming: false,\n getAttrs: style => ((style as string).includes('line-through') ? {} : false),\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setStrike: () => ({ commands }) => {\n return commands.setMark(this.name)\n },\n toggleStrike: () => ({ commands }) => {\n return commands.toggleMark(this.name)\n },\n unsetStrike: () => ({ commands }) => {\n return commands.unsetMark(this.name)\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-s': () => this.editor.commands.toggleStrike(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: inputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: pasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":[],"mappings":";;AAsCA;;AAEG;AACI,MAAM,UAAU,GAAG,+CAA8C;AAExE;;AAEG;AACI,MAAM,UAAU,GAAG,+CAA8C;AAExE;;;AAGG;AACU,MAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAgB;AAC/C,IAAA,IAAI,EAAE,QAAQ;IAEd,UAAU,GAAA;QACR,OAAO;AACL,YAAA,cAAc,EAAE,EAAE;SACnB,CAAA;KACF;IAED,SAAS,GAAA;QACP,OAAO;AACL,YAAA;AACE,gBAAA,GAAG,EAAE,GAAG;AACT,aAAA;AACD,YAAA;AACE,gBAAA,GAAG,EAAE,KAAK;AACX,aAAA;AACD,YAAA;AACE,gBAAA,GAAG,EAAE,QAAQ;AACd,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,iBAAiB;AACxB,gBAAA,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK,KAAM,KAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAC7E,aAAA;SACF,CAAA;KACF;IAED,UAAU,CAAC,EAAE,cAAc,EAAE,EAAA;AAC3B,QAAA,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;KAC9E;IAED,WAAW,GAAA;QACT,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;gBAChC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACnC;YACD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;gBACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACtC;YACD,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;gBAClC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACrC;SACF,CAAA;KACF;IAED,oBAAoB,GAAA;QAClB,OAAO;YACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;SACzD,CAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAA,aAAa,CAAC;AACZ,gBAAA,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;IAED,aAAa,GAAA;QACX,OAAO;AACL,YAAA,aAAa,CAAC;AACZ,gBAAA,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;SACH,CAAA;KACF;AACF,CAAA;;;;"}
|
package/dist/index.umd.js
CHANGED
|
@@ -4,8 +4,18 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@tiptap/extension-strike"] = {}, global.core));
|
|
5
5
|
})(this, (function (exports, core) { 'use strict';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Matches a strike to a ~~strike~~ on input.
|
|
9
|
+
*/
|
|
7
10
|
const inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
|
|
11
|
+
/**
|
|
12
|
+
* Matches a strike to a ~~strike~~ on paste.
|
|
13
|
+
*/
|
|
8
14
|
const pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
|
|
15
|
+
/**
|
|
16
|
+
* This extension allows you to create strike text.
|
|
17
|
+
* @see https://www.tiptap.dev/api/marks/strike
|
|
18
|
+
*/
|
|
9
19
|
const Strike = core.Mark.create({
|
|
10
20
|
name: 'strike',
|
|
11
21
|
addOptions() {
|
|
@@ -48,14 +58,9 @@
|
|
|
48
58
|
};
|
|
49
59
|
},
|
|
50
60
|
addKeyboardShortcuts() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
shortcuts['Ctrl-Shift-s'] = () => this.editor.commands.toggleStrike();
|
|
57
|
-
}
|
|
58
|
-
return shortcuts;
|
|
61
|
+
return {
|
|
62
|
+
'Mod-Shift-s': () => this.editor.commands.toggleStrike(),
|
|
63
|
+
};
|
|
59
64
|
},
|
|
60
65
|
addInputRules() {
|
|
61
66
|
return [
|
package/dist/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/strike.ts"],"sourcesContent":["import {\n Mark,\n markInputRule,\n markPasteRule,\n mergeAttributes,\n} from '@tiptap/core'\n\nexport interface StrikeOptions {\n /**\n * HTML attributes to add to the strike element.\n * @default {}\n * @example { class: 'foo' }\n */\n HTMLAttributes: Record<string, any>,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n strike: {\n /**\n * Set a strike mark\n * @example editor.commands.setStrike()\n */\n setStrike: () => ReturnType,\n /**\n * Toggle a strike mark\n * @example editor.commands.toggleStrike()\n */\n toggleStrike: () => ReturnType,\n /**\n * Unset a strike mark\n * @example editor.commands.unsetStrike()\n */\n unsetStrike: () => ReturnType,\n }\n }\n}\n\n/**\n * Matches a strike to a ~~strike~~ on input.\n */\nexport const inputRegex = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))$/\n\n/**\n * Matches a strike to a ~~strike~~ on paste.\n */\nexport const pasteRegex = /(?:^|\\s)(~~(?!\\s+~~)((?:[^~]+))~~(?!\\s+~~))/g\n\n/**\n * This extension allows you to create strike text.\n * @see https://www.tiptap.dev/api/marks/strike\n */\nexport const Strike = Mark.create<StrikeOptions>({\n name: 'strike',\n\n addOptions() {\n return {\n HTMLAttributes: {},\n }\n },\n\n parseHTML() {\n return [\n {\n tag: 's',\n },\n {\n tag: 'del',\n },\n {\n tag: 'strike',\n },\n {\n style: 'text-decoration',\n consuming: false,\n getAttrs: style => ((style as string).includes('line-through') ? {} : false),\n },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['s', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]\n },\n\n addCommands() {\n return {\n setStrike: () => ({ commands }) => {\n return commands.setMark(this.name)\n },\n toggleStrike: () => ({ commands }) => {\n return commands.toggleMark(this.name)\n },\n unsetStrike: () => ({ commands }) => {\n return commands.unsetMark(this.name)\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Shift-s': () => this.editor.commands.toggleStrike(),\n }\n },\n\n addInputRules() {\n return [\n markInputRule({\n find: inputRegex,\n type: this.type,\n }),\n ]\n },\n\n addPasteRules() {\n return [\n markPasteRule({\n find: pasteRegex,\n type: this.type,\n }),\n ]\n },\n})\n"],"names":["Mark","mergeAttributes","markInputRule","markPasteRule"],"mappings":";;;;;;EAsCA;;EAEG;AACI,QAAM,UAAU,GAAG,+CAA8C;EAExE;;EAEG;AACI,QAAM,UAAU,GAAG,+CAA8C;EAExE;;;EAGG;AACU,QAAA,MAAM,GAAGA,SAAI,CAAC,MAAM,CAAgB;EAC/C,IAAA,IAAI,EAAE,QAAQ;MAEd,UAAU,GAAA;UACR,OAAO;EACL,YAAA,cAAc,EAAE,EAAE;WACnB,CAAA;OACF;MAED,SAAS,GAAA;UACP,OAAO;EACL,YAAA;EACE,gBAAA,GAAG,EAAE,GAAG;EACT,aAAA;EACD,YAAA;EACE,gBAAA,GAAG,EAAE,KAAK;EACX,aAAA;EACD,YAAA;EACE,gBAAA,GAAG,EAAE,QAAQ;EACd,aAAA;EACD,YAAA;EACE,gBAAA,KAAK,EAAE,iBAAiB;EACxB,gBAAA,SAAS,EAAE,KAAK;kBAChB,QAAQ,EAAE,KAAK,KAAM,KAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;EAC7E,aAAA;WACF,CAAA;OACF;MAED,UAAU,CAAC,EAAE,cAAc,EAAE,EAAA;EAC3B,QAAA,OAAO,CAAC,GAAG,EAAEC,oBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;OAC9E;MAED,WAAW,GAAA;UACT,OAAO;cACL,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;kBAChC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;eACnC;cACD,YAAY,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;kBACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;eACtC;cACD,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAI;kBAClC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;eACrC;WACF,CAAA;OACF;MAED,oBAAoB,GAAA;UAClB,OAAO;cACL,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE;WACzD,CAAA;OACF;MAED,aAAa,GAAA;UACX,OAAO;EACL,YAAAC,kBAAa,CAAC;EACZ,gBAAA,IAAI,EAAE,UAAU;kBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;eAChB,CAAC;WACH,CAAA;OACF;MAED,aAAa,GAAA;UACX,OAAO;EACL,YAAAC,kBAAa,CAAC;EACZ,gBAAA,IAAI,EAAE,UAAU;kBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;eAChB,CAAC;WACH,CAAA;OACF;EACF,CAAA;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Mark } from '@tiptap/core';
|
|
2
2
|
export interface StrikeOptions {
|
|
3
|
+
/**
|
|
4
|
+
* HTML attributes to add to the strike element.
|
|
5
|
+
* @default {}
|
|
6
|
+
* @example { class: 'foo' }
|
|
7
|
+
*/
|
|
3
8
|
HTMLAttributes: Record<string, any>;
|
|
4
9
|
}
|
|
5
10
|
declare module '@tiptap/core' {
|
|
@@ -7,19 +12,32 @@ declare module '@tiptap/core' {
|
|
|
7
12
|
strike: {
|
|
8
13
|
/**
|
|
9
14
|
* Set a strike mark
|
|
15
|
+
* @example editor.commands.setStrike()
|
|
10
16
|
*/
|
|
11
17
|
setStrike: () => ReturnType;
|
|
12
18
|
/**
|
|
13
19
|
* Toggle a strike mark
|
|
20
|
+
* @example editor.commands.toggleStrike()
|
|
14
21
|
*/
|
|
15
22
|
toggleStrike: () => ReturnType;
|
|
16
23
|
/**
|
|
17
24
|
* Unset a strike mark
|
|
25
|
+
* @example editor.commands.unsetStrike()
|
|
18
26
|
*/
|
|
19
27
|
unsetStrike: () => ReturnType;
|
|
20
28
|
};
|
|
21
29
|
}
|
|
22
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Matches a strike to a ~~strike~~ on input.
|
|
33
|
+
*/
|
|
23
34
|
export declare const inputRegex: RegExp;
|
|
35
|
+
/**
|
|
36
|
+
* Matches a strike to a ~~strike~~ on paste.
|
|
37
|
+
*/
|
|
24
38
|
export declare const pasteRegex: RegExp;
|
|
39
|
+
/**
|
|
40
|
+
* This extension allows you to create strike text.
|
|
41
|
+
* @see https://www.tiptap.dev/api/marks/strike
|
|
42
|
+
*/
|
|
25
43
|
export declare const Strike: Mark<StrikeOptions, any>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiptap/extension-strike",
|
|
3
3
|
"description": "strike extension for tiptap",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.4.0",
|
|
5
5
|
"homepage": "https://tiptap.dev",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"tiptap",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@tiptap/core": "^2.
|
|
32
|
+
"@tiptap/core": "^2.4.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"@tiptap/core": "^2.0.0"
|
package/src/strike.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
isMacOS,
|
|
3
2
|
Mark,
|
|
4
3
|
markInputRule,
|
|
5
4
|
markPasteRule,
|
|
@@ -7,6 +6,11 @@ import {
|
|
|
7
6
|
} from '@tiptap/core'
|
|
8
7
|
|
|
9
8
|
export interface StrikeOptions {
|
|
9
|
+
/**
|
|
10
|
+
* HTML attributes to add to the strike element.
|
|
11
|
+
* @default {}
|
|
12
|
+
* @example { class: 'foo' }
|
|
13
|
+
*/
|
|
10
14
|
HTMLAttributes: Record<string, any>,
|
|
11
15
|
}
|
|
12
16
|
|
|
@@ -15,23 +19,37 @@ declare module '@tiptap/core' {
|
|
|
15
19
|
strike: {
|
|
16
20
|
/**
|
|
17
21
|
* Set a strike mark
|
|
22
|
+
* @example editor.commands.setStrike()
|
|
18
23
|
*/
|
|
19
24
|
setStrike: () => ReturnType,
|
|
20
25
|
/**
|
|
21
26
|
* Toggle a strike mark
|
|
27
|
+
* @example editor.commands.toggleStrike()
|
|
22
28
|
*/
|
|
23
29
|
toggleStrike: () => ReturnType,
|
|
24
30
|
/**
|
|
25
31
|
* Unset a strike mark
|
|
32
|
+
* @example editor.commands.unsetStrike()
|
|
26
33
|
*/
|
|
27
34
|
unsetStrike: () => ReturnType,
|
|
28
35
|
}
|
|
29
36
|
}
|
|
30
37
|
}
|
|
31
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Matches a strike to a ~~strike~~ on input.
|
|
41
|
+
*/
|
|
32
42
|
export const inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Matches a strike to a ~~strike~~ on paste.
|
|
46
|
+
*/
|
|
33
47
|
export const pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g
|
|
34
48
|
|
|
49
|
+
/**
|
|
50
|
+
* This extension allows you to create strike text.
|
|
51
|
+
* @see https://www.tiptap.dev/api/marks/strike
|
|
52
|
+
*/
|
|
35
53
|
export const Strike = Mark.create<StrikeOptions>({
|
|
36
54
|
name: 'strike',
|
|
37
55
|
|
|
@@ -79,15 +97,9 @@ export const Strike = Mark.create<StrikeOptions>({
|
|
|
79
97
|
},
|
|
80
98
|
|
|
81
99
|
addKeyboardShortcuts() {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (isMacOS()) {
|
|
85
|
-
shortcuts['Mod-Shift-s'] = () => this.editor.commands.toggleStrike()
|
|
86
|
-
} else {
|
|
87
|
-
shortcuts['Ctrl-Shift-s'] = () => this.editor.commands.toggleStrike()
|
|
100
|
+
return {
|
|
101
|
+
'Mod-Shift-s': () => this.editor.commands.toggleStrike(),
|
|
88
102
|
}
|
|
89
|
-
|
|
90
|
-
return shortcuts
|
|
91
103
|
},
|
|
92
104
|
|
|
93
105
|
addInputRules() {
|