| |
| export default function rehypeRestoreAtInCode() { |
| return (tree) => { |
| const restoreInNode = (node) => { |
| if (!node || typeof node !== 'object') return; |
| const isText = node.type === 'text'; |
| if (isText && typeof node.value === 'string' && node.value.includes('__AT_SENTINEL__')) { |
| node.value = node.value.replace(/__AT_SENTINEL__/g, '@'); |
| } |
| const isCodeEl = node.type === 'element' && node.tagName === 'code'; |
| const children = Array.isArray(node.children) ? node.children : []; |
| if (isCodeEl && children.length) { |
| children.forEach(restoreInNode); |
| return; |
| } |
| children.forEach(restoreInNode); |
| }; |
| restoreInNode(tree); |
| }; |
| } |
|
|
|
|
|
|