From 138c19885271595aa81dc0f2ccebe1e4b3e5052e Mon Sep 17 00:00:00 2001 From: Mayra Amaral Date: Tue, 11 Feb 2025 16:05:13 -0300 Subject: [PATCH 1/2] chore: adjust regex from previewing images to only try to render if image has bracket before of parentheses --- src/js/easymde.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index c038d1c7..449c76fd 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -2251,7 +2251,7 @@ EasyMDE.prototype.render = function (el) { return; } if (!parentEl.hasAttribute('data-img-src')) { - var srcAttr = parentEl.innerText.match('\\((.*)\\)'); // might require better parsing according to markdown spec + var srcAttr = parentEl.innerText.match(/!\[.*?\]\((.*?)\)/); // might require better parsing according to markdown spec if (!window.EMDEimagesCache) { window.EMDEimagesCache = {}; } From e7a56e11dd8f5bc0842025a19ed7c8942b6bddf8 Mon Sep 17 00:00:00 2001 From: Jeroen akkerman Date: Tue, 18 Feb 2025 00:53:11 +0100 Subject: [PATCH 2/2] Add a test for the parentheses problem --- .../4.image-rendering/image-rendering.cy.js | 43 +++++++++++++++++++ cypress/e2e/4.image-rendering/index.html | 20 +++++++++ 2 files changed, 63 insertions(+) create mode 100644 cypress/e2e/4.image-rendering/image-rendering.cy.js create mode 100644 cypress/e2e/4.image-rendering/index.html diff --git a/cypress/e2e/4.image-rendering/image-rendering.cy.js b/cypress/e2e/4.image-rendering/image-rendering.cy.js new file mode 100644 index 00000000..e25e6b54 --- /dev/null +++ b/cypress/e2e/4.image-rendering/image-rendering.cy.js @@ -0,0 +1,43 @@ +/// + +describe('Image rendering', () => { + + const imageUrl = 'https://picsum.photos/id/237/150'; + + beforeEach(() => { + cy.visit(__dirname + '/index.html'); + cy.intercept('GET', imageUrl).as('image'); + }); + + it('must render an image inside the editor', () => { + cy.get('.EasyMDEContainer').should('be.visible'); + cy.get('#textarea').should('not.be.visible'); + + cy.get('.EasyMDEContainer .CodeMirror').type(imageUrl); + cy.get('.EasyMDEContainer .CodeMirror').type('{home}![Dog!]({end})'); + + cy.wait('@image'); + + cy.get(`.EasyMDEContainer [data-img-src="${imageUrl}"]`).should('be.visible'); + + cy.previewOn(); + + cy.get('.EasyMDEContainer .editor-preview').should('contain.html', `

Dog!

`); + }); + + it('must be able to handle parentheses inside image alt text', () => { + cy.get('.EasyMDEContainer').should('be.visible'); + cy.get('#textarea').should('not.be.visible'); + + cy.get('.EasyMDEContainer .CodeMirror').type(imageUrl); + cy.get('.EasyMDEContainer .CodeMirror').type('{home}![Dog! (He\'s a good boy!)]({end})'); + + cy.wait('@image'); + + cy.get(`.EasyMDEContainer [data-img-src="${imageUrl}"]`).should('be.visible'); + + cy.previewOn(); + + cy.get('.EasyMDEContainer .editor-preview').should('contain.html', `

Dog! (He's a good boy!)

`); + }); +}); diff --git a/cypress/e2e/4.image-rendering/index.html b/cypress/e2e/4.image-rendering/index.html new file mode 100644 index 00000000..045bc339 --- /dev/null +++ b/cypress/e2e/4.image-rendering/index.html @@ -0,0 +1,20 @@ + + + + + + Default + + + + + + + + + +