diff --git a/packages/core/src/utils/injectExtensionAttributesToParseRule.ts b/packages/core/src/utils/injectExtensionAttributesToParseRule.ts index a08b9350..0934c480 100644 --- a/packages/core/src/utils/injectExtensionAttributesToParseRule.ts +++ b/packages/core/src/utils/injectExtensionAttributesToParseRule.ts @@ -26,9 +26,12 @@ export default function injectExtensionAttributesToParseRule(parseRule: ParseRul [item.name]: (node as HTMLElement).dataset[item.name], } + const filteredAttributes = Object.fromEntries(Object.entries(attributes) + .filter(([, value]) => value !== undefined && value !== null)) + return { ...items, - ...attributes, + ...filteredAttributes, } }, {}) diff --git a/packages/extension-link/index.ts b/packages/extension-link/index.ts index 29511ded..40659e34 100644 --- a/packages/extension-link/index.ts +++ b/packages/extension-link/index.ts @@ -39,8 +39,7 @@ const Link = createMark({ target: attributes.target, }), parseHTML: node => ({ - // TODO: always return default value on `null` or `undefined` - target: node.getAttribute('target') || this.options.target, + target: node.getAttribute('target'), }), }, }