fix(rtl): replace ellipsis span anchor content with bdi (#3123)
This commit is contained in:
parent
e986de7f6c
commit
e59f5dbb8f
2 changed files with 31 additions and 7 deletions
|
@ -60,16 +60,40 @@ export function nodeToVNode(node: Node): VNode | string | null {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('children' in node) {
|
if ('children' in node) {
|
||||||
if (node.name === 'a' && (node.attributes.href?.startsWith('/') || node.attributes.href?.startsWith('.'))) {
|
if (node.name === 'a') {
|
||||||
node.attributes.to = node.attributes.href
|
if (node.attributes.href?.startsWith('/') || node.attributes.href?.startsWith('.')) {
|
||||||
|
node.attributes.to = node.attributes.href
|
||||||
|
|
||||||
const { href: _href, target: _target, ...attrs } = node.attributes
|
const { href: _href, target: _target, ...attrs } = node.attributes
|
||||||
|
return h(
|
||||||
|
RouterLink as any,
|
||||||
|
attrs,
|
||||||
|
() => node.children.map(treeToVNode),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// fix #3122
|
||||||
return h(
|
return h(
|
||||||
RouterLink as any,
|
node.name,
|
||||||
attrs,
|
node.attributes,
|
||||||
() => node.children.map(treeToVNode),
|
node.children.map((n: Node) => {
|
||||||
|
// replace span.ellipsis with bdi.ellipsis inside links
|
||||||
|
if (n && n.type === ELEMENT_NODE && n.name !== 'bdi' && n.attributes?.class?.includes('ellipsis')) {
|
||||||
|
const children = n.children.splice(0, n.children.length)
|
||||||
|
const bdi = {
|
||||||
|
...n,
|
||||||
|
name: 'bdi',
|
||||||
|
children,
|
||||||
|
} satisfies ElementNode
|
||||||
|
children.forEach((n: Node) => n.parent = bdi)
|
||||||
|
return treeToVNode(bdi)
|
||||||
|
}
|
||||||
|
|
||||||
|
return treeToVNode(n)
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return h(
|
return h(
|
||||||
node.name,
|
node.name,
|
||||||
node.attributes,
|
node.attributes,
|
||||||
|
|
|
@ -257,7 +257,7 @@ exports[`content-rich > link + mention 1`] = `
|
||||||
rel="nofollow noopener noreferrer"
|
rel="nofollow noopener noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
><span class="invisible">https://</span
|
><span class="invisible">https://</span
|
||||||
><span class="ellipsis">github.com/ayoayco/astro-react</span
|
><bdi class="ellipsis">github.com/ayoayco/astro-react</bdi
|
||||||
><span class="invisible">ive-library/pull/203</span></a
|
><span class="invisible">ive-library/pull/203</span></a
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue