FIX: support <img> in code blocks when inlining uploads

Simpler code is better :)

Also added moar specs to ensure <img> tag inside code blocks are properly ignored.
This commit is contained in:
Régis Hanol
2019-09-12 21:25:14 +02:00
parent 8f601d5025
commit aa511c5b59
3 changed files with 28 additions and 51 deletions

View File

@@ -329,6 +329,14 @@ RSpec.describe InlineUploads do
<img src="#{upload.url}" width="5" height="4">
<img src="#{upload.url}" width="5px" height="auto">
`<img src="#{upload.url}" alt="image inside code quotes">`
```
<img src="#{upload.url}" alt="image inside code fences">
```
<img src="#{upload.url}" alt="image inside code block">
MD
expect(InlineUploads.process(md)).to eq(<<~MD)
@@ -346,6 +354,14 @@ RSpec.describe InlineUploads do
![|5x4](#{upload.short_url})
![](#{upload.short_url})
`<img src="#{upload.url}" alt="image inside code quotes">`
```
<img src="#{upload.url}" alt="image inside code fences">
```
<img src="#{upload.url}" alt="image inside code block">
MD
end
@@ -381,7 +397,7 @@ RSpec.describe InlineUploads do
expect(InlineUploads.process(md)).to eq(<<~MD)
<h1></h1>
<a href="http://somelink.com">
<img src="#{upload2.short_path}" alt="test" width="500" height="500">
![test|500x500](#{upload2.short_url})
</a>
<a href="http://somelink.com">
@@ -391,7 +407,7 @@ RSpec.describe InlineUploads do
md = "<h1></h1>\r\n<a href=\"http://somelink.com\">\r\n <img src=\"#{upload.url}\" alt=\"test\" width=\"500\" height=\"500\">\r\n</a>"
expect(InlineUploads.process(md)).to eq("<h1></h1>\r\n<a href=\"http://somelink.com\">\r\n <img src=\"#{upload.short_path}\" alt=\"test\" width=\"500\" height=\"500\">\r\n</a>")
expect(InlineUploads.process(md)).to eq("<h1></h1>\r\n<a href=\"http://somelink.com\">\r\n ![test|500x500](#{upload.short_url})\r\n</a>")
end
it "should correctly update image sources within anchor or paragraph tags" do
@@ -423,40 +439,27 @@ RSpec.describe InlineUploads do
expect(InlineUploads.process(md)).to eq(<<~MD)
<a href="http://somelink.com">
![test|500x500](#{upload.short_url})
</a>
<p>
![test](#{upload2.short_url})
</p>
<a href="http://somelink.com">
<a href="http://somelink.com">![test|500x500](#{upload3.short_url})</a>
![test|500x500](#{upload3.short_url})
</a>
<a href="http://somelink.com">
![test|500x500](#{upload.short_url})
</a>
<a href="http://somelink.com"> ![test|500x500](#{upload.short_url}) </a>
<a href="http://somelink.com">
![test|500x500](#{upload.short_url})
![test|500x500](#{upload.short_url})
</a>
<p>Test ![test|500x500](#{upload2.short_url})</p>
<hr/>
![test|500x500](#{upload2.short_url})
MD
end