Skip to content

Commit 21286df

Browse files
authored
Merge pull request #22 from mintbridge/image-button
adding an image button to generate image markdown
2 parents 931dbeb + c6e4e15 commit 21286df

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

README.md

+1
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

+1
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

+12
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,18 @@ if (!window.customElements.get('md-link')) {
136136
window.customElements.define('md-link', MarkdownLinkButtonElement)
137137
}
138138

139+
class MarkdownImageButtonElement extends MarkdownButtonElement {
140+
constructor() {
141+
super()
142+
styles.set(this, {prefix: '![', suffix: '](url)', replaceNext: 'url', scanFor: 'https?://'})
143+
}
144+
}
145+
146+
if (!window.customElements.get('md-image')) {
147+
window.MarkdownImageButtonElement = MarkdownImageButtonElement
148+
window.customElements.define('md-image', MarkdownImageButtonElement)
149+
}
150+
139151
class MarkdownUnorderedListButtonElement extends MarkdownButtonElement {
140152
constructor() {
141153
super()

test/test.js

+27
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ describe('markdown-toolbar-element', function() {
7676
<md-quote>quote</md-quote>
7777
<md-code>code</md-code>
7878
<md-link>link</md-link>
79+
<md-image>image</md-image>
7980
<md-unordered-list>unordered-list</md-unordered-list>
8081
<md-ordered-list>ordered-list</md-ordered-list>
8182
<md-task-list>task-list</md-task-list>
@@ -492,6 +493,32 @@ describe('markdown-toolbar-element', function() {
492493
})
493494
})
494495

496+
describe('images', function() {
497+
it('inserts image syntax with cursor in description', function() {
498+
setVisualValue('|')
499+
clickToolbar('md-image')
500+
assert.equal('![|](url)', visualValue())
501+
})
502+
503+
it('selected url is wrapped in image syntax with cursor in description', function() {
504+
setVisualValue('Octocat is |https://octodex.github.com/images/original.png|')
505+
clickToolbar('md-image')
506+
assert.equal('Octocat is ![|](https://octodex.github.com/images/original.png)', visualValue())
507+
})
508+
509+
it('cursor on url is wrapped in image syntax with cursor in description', function() {
510+
setVisualValue('Octocat is https://octodex.git|hub.com/images/original.png')
511+
clickToolbar('md-image')
512+
assert.equal('Octocat is ![|](https://octodex.github.com/images/original.png)', visualValue())
513+
})
514+
515+
it('selected plan text is wrapped in image syntax with cursor in url', function() {
516+
setVisualValue("GitHub's |logo|")
517+
clickToolbar('md-image')
518+
assert.equal("GitHub's ![logo](|url|)", visualValue())
519+
})
520+
})
521+
495522
describe('header', function() {
496523
it('inserts header syntax with cursor in description', function() {
497524
setVisualValue('|title|')

0 commit comments

Comments
 (0)