Skip to content

Commit d7b22a4

Browse files
committed
Implement strikethrough
1 parent 7bbdf32 commit d7b22a4

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

examples/index.html

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<md-task-list class="btn btn-sm">task-list</md-task-list>
2121
<md-mention class="btn btn-sm">mention</md-mention>
2222
<md-ref class="btn btn-sm">ref</md-ref>
23+
<md-strikethrough class="btn btn-sm">strikethrough</md-strikethrough>
2324
</markdown-toolbar>
2425
<textarea rows="6" class="mt-3 d-block width-full" id="textarea"></textarea>
2526
</div>
@@ -41,6 +42,7 @@
4142
<md-task-list class="btn btn-sm">task-list</md-task-list>
4243
<md-mention class="btn btn-sm">mention</md-mention>
4344
<md-ref class="btn btn-sm">ref</md-ref>
45+
<md-strikethrough class="btn btn-sm">strikethrough</md-strikethrough>
4446
</markdown-toolbar>
4547
<textarea rows="6" class="mt-3 d-block width-full" id="textarea2"></textarea>
4648
</div>

src/index.ts

+16-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ declare global {
1313
MarkdownTaskListButtonElement: typeof MarkdownTaskListButtonElement
1414
MarkdownMentionButtonElement: typeof MarkdownMentionButtonElement
1515
MarkdownRefButtonElement: typeof MarkdownRefButtonElement
16+
MarkdownStrikethroughButtonElement: typeof MarkdownStrikethroughButtonElement
1617
}
1718
interface HTMLElementTagNameMap {
1819
'markdown-toolbar': MarkdownToolbarElement
@@ -28,6 +29,7 @@ declare global {
2829
'md-task-list': MarkdownTaskListButtonElement
2930
'md-mention': MarkdownMentionButtonElement
3031
'md-ref': MarkdownRefButtonElement
32+
'md-strikethrough': MarkdownStrikethroughButtonElement
3133
}
3234
}
3335

@@ -44,7 +46,8 @@ const buttonSelectors = [
4446
'md-ordered-list',
4547
'md-task-list',
4648
'md-mention',
47-
'md-ref'
49+
'md-ref',
50+
'md-strikethrough'
4851
]
4952
function getButtons(toolbar: Element): HTMLElement[] {
5053
const els = []
@@ -279,6 +282,18 @@ if (!window.customElements.get('md-ref')) {
279282
window.customElements.define('md-ref', MarkdownRefButtonElement)
280283
}
281284

285+
class MarkdownStrikethroughButtonElement extends MarkdownButtonElement {
286+
constructor() {
287+
super()
288+
styles.set(this, {prefix: '~~', suffix: '~~', trimFirst: true})
289+
}
290+
}
291+
292+
if (!window.customElements.get('md-strikethrough')) {
293+
window.MarkdownStrikethroughButtonElement = MarkdownStrikethroughButtonElement
294+
window.customElements.define('md-strikethrough', MarkdownStrikethroughButtonElement)
295+
}
296+
282297
const modifierKey = navigator.userAgent.match(/Macintosh/) ? 'Meta' : 'Control'
283298

284299
class MarkdownToolbarElement extends HTMLElement {

0 commit comments

Comments
 (0)