diff --git a/packages/kg-default-nodes/lib/nodes/image/image-parser.js b/packages/kg-default-nodes/lib/nodes/image/image-parser.js index 39a827ddb..c13d66a4a 100644 --- a/packages/kg-default-nodes/lib/nodes/image/image-parser.js +++ b/packages/kg-default-nodes/lib/nodes/image/image-parser.js @@ -6,9 +6,9 @@ export function parseImageNode(ImageNode) { img: () => ({ conversion(domNode) { if (domNode.tagName === 'IMG') { - const {src, width, height, alt, title} = readImageAttributesFromElement(domNode); + const {src, width, height, alt, title, href} = readImageAttributesFromElement(domNode); - const node = new ImageNode({alt, src, title, width, height}); + const node = new ImageNode({alt, src, title, width, height, href}); return {node}; } diff --git a/packages/kg-default-nodes/test/nodes/image.test.js b/packages/kg-default-nodes/test/nodes/image.test.js index 8dc282d31..9517f6fc0 100644 --- a/packages/kg-default-nodes/test/nodes/image.test.js +++ b/packages/kg-default-nodes/test/nodes/image.test.js @@ -435,6 +435,19 @@ describe('ImageNode', function () { nodes[0].src.should.equal('http://example.com/test.png'); nodes[0].href.should.equal('https://example.com/link'); })); + + it('extracts href when img wrapped in anchor tag not within figure', editorTest(function () { + const dom = (new JSDOM(html` + + + + `)).window.document; + const nodes = $generateNodesFromDOM(editor, dom); + + nodes.length.should.equal(1); + nodes[0].src.should.equal('http://example.com/test.png'); + nodes[0].href.should.equal('https://example.com/link'); + })); }); describe('exportJSON', function () {