Skip to content

Commit 4c0ba86

Browse files
author
Paul Dixon
committed
adding an image button to generate image markdown
1 parent fb1bdb9 commit 4c0ba86

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import '@github/markdown-toolbar-element'
2222
<md-quote>quote</md-quote>
2323
<md-code>code</md-code>
2424
<md-link>link</md-link>
25+
<md-image>image</md-image>
2526
<md-unordered-list>unordered-list</md-unordered-list>
2627
<md-ordered-list>ordered-list</md-ordered-list>
2728
<md-task-list>task-list</md-task-list>

examples/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<md-quote class="btn btn-sm">quote</md-quote>
1414
<md-code class="btn btn-sm">code</md-code>
1515
<md-link class="btn btn-sm">link</md-link>
16+
<md-image class="btn btn-sm">image</md-link>
1617
<md-unordered-list class="btn btn-sm">unordered-list</md-unordered-list>
1718
<md-ordered-list class="btn btn-sm">ordered-list</md-ordered-list>
1819
<md-task-list class="btn btn-sm">task-list</md-task-list>

index.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,18 @@ if (!window.customElements.get('md-link')) {
127127
window.customElements.define('md-link', MarkdownLinkButtonElement)
128128
}
129129

130+
class MarkdownImageButtonElement extends MarkdownButtonElement {
131+
constructor() {
132+
super()
133+
styles.set(this, {prefix: '![', suffix: '](url)', replaceNext: 'url', scanFor: 'https?://'})
134+
}
135+
}
136+
137+
if (!window.customElements.get('md-image')) {
138+
window.MarkdownImageButtonElement = MarkdownImageButtonElement
139+
window.customElements.define('md-image', MarkdownImageButtonElement)
140+
}
141+
130142
class MarkdownUnorderedListButtonElement extends MarkdownButtonElement {
131143
constructor() {
132144
super()

test/test.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ describe('markdown-toolbbar-element', function() {
7474
<md-quote>quote</md-quote>
7575
<md-code>code</md-code>
7676
<md-link>link</md-link>
77+
<md-image>image</md-image>
7778
<md-unordered-list>unordered-list</md-unordered-list>
7879
<md-ordered-list>ordered-list</md-ordered-list>
7980
<md-task-list>task-list</md-task-list>
@@ -489,5 +490,31 @@ describe('markdown-toolbbar-element', function() {
489490
assert.equal("GitHub's [homepage](|url|)", visualValue())
490491
})
491492
})
493+
494+
describe('images', function() {
495+
it('inserts image syntax with cursor in description', function() {
496+
setVisualValue('|')
497+
clickToolbar('md-image')
498+
assert.equal('![|](url)', visualValue())
499+
})
500+
501+
it('selected url is wrapped in image syntax with cursor in description', function() {
502+
setVisualValue('Octocat is |https://octodex.github.com/images/original.png|')
503+
clickToolbar('md-image')
504+
assert.equal('Octocat is ![|](https://octodex.github.com/images/original.png)', visualValue())
505+
})
506+
507+
it('cursor on url is wrapped in image syntax with cursor in description', function() {
508+
setVisualValue('Octocat is https://octodex.git|hub.com/images/original.png')
509+
clickToolbar('md-image')
510+
assert.equal('Octocat is ![|](https://octodex.github.com/images/original.png)', visualValue())
511+
})
512+
513+
it('selected plan text is wrapped in image syntax with cursor in url', function() {
514+
setVisualValue("GitHub's |logo|")
515+
clickToolbar('md-image')
516+
assert.equal("GitHub's ![logo](|url|)", visualValue())
517+
})
518+
})
492519
})
493520
})

0 commit comments

Comments
 (0)