Skip to content

Commit 3f7175c

Browse files
committed
pass entry reference node to render
1 parent dcb60b2 commit 3f7175c

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

__test__/reference-to-html.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,4 +152,19 @@ describe('Reference Node To HTML', () => {
152152
expect(resultHTML).toEqual('<img src=https://image.url/11.jpg>')
153153
done()
154154
})
155+
156+
it('Should return HTML for embedded link entry', done => {
157+
const node = entryReferenceLinkJson.children[0] as unknown as Node
158+
const renderOption = {
159+
'reference' : (node: Node, next: Next) => {
160+
return `<a href=\"${node.attrs['entry-uid']}\">${node.attrs.href}</a>`;
161+
}
162+
}
163+
164+
const resultHTML = referenceToHTML(node, renderOption, (metadata: Metadata) => {
165+
return findEmbeddedItems(metadata, { uid: 'uid' })[0]
166+
})
167+
expect(resultHTML).toEqual('<a href=\"entry_uid_20\">/copy-of-entry-final-02</a>')
168+
done()
169+
})
155170
})

src/helper/enumerate-entries.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,20 @@ export function referenceToHTML(node: Node,
7070
renderOption: RenderOption,
7171
renderEmbed?: (metadata: Metadata) => EmbeddedItem | EntryNode
7272
): string {
73-
const metadata = nodeToMetadata(node.attrs, ((node.children && node.children.length > 0) ? node.children[0]: {}) as unknown as TextNode)
74-
if (!renderEmbed && metadata.itemType === 'asset' && renderOption[node.type] !== undefined) {
75-
return (renderOption[node.type] as RenderNode)(node, undefined)
73+
function sendToRenderOption(referenceNode: Node): string {
74+
return (renderOption[referenceNode.type] as RenderNode)(referenceNode, undefined)
75+
}
76+
if (!renderEmbed && renderOption[node.type] !== undefined) {
77+
return sendToRenderOption(node)
7678
}
7779
if (!renderEmbed) {
7880
return ''
7981
}
82+
const metadata = nodeToMetadata(node.attrs, ((node.children && node.children.length > 0) ? node.children[0]: {}) as unknown as TextNode)
8083
const item = renderEmbed(metadata)
84+
if (!item && renderOption[node.type] !== undefined) {
85+
return sendToRenderOption(node)
86+
}
8187
return findRenderString(item, metadata, renderOption)
8288
}
8389

0 commit comments

Comments
 (0)