Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 1x 1x 76x 75x 75x 75x 75x 75x 75x 75x 75x 12x 75x 63x 75x 1x 75x 1x 75x 1x 75x 1x 75x 1x 68x 67x 65x 67x 3x 67x 1x 67x 1x 67x 1x 67x 2x 67x 1x | import { isElementOfType } from '../../domUtils/isElementOfType';
import type { FormatHandler } from '../FormatHandler';
import type { LinkFormat } from 'roosterjs-content-model-types';
/**
* @internal
*/
export const linkFormatHandler: FormatHandler<LinkFormat> = {
parse: (format, element) => {
if (isElementOfType(element, 'a')) {
const name = element.name;
const href = element.getAttribute('href'); // Use getAttribute to get original HREF but not the resolved absolute url
const target = element.target;
const rel = element.rel;
const id = element.id;
const className = element.className;
const title = element.title;
if (name) {
format.name = name;
}
if (href) {
format.href = href;
}
if (target) {
format.target = target;
}
if (id) {
format.anchorId = id;
}
if (rel) {
format.relationship = rel;
}
if (title) {
format.anchorTitle = title;
}
if (className) {
format.anchorClass = className;
}
}
},
apply: (format, element) => {
if (isElementOfType(element, 'a') && (format.href || format.name)) {
if (format.href) {
element.href = format.href;
}
if (format.name) {
element.name = format.name;
}
if (format.target) {
element.target = format.target;
}
if (format.anchorId) {
element.id = format.anchorId;
}
if (format.anchorClass) {
element.className = format.anchorClass;
}
if (format.anchorTitle) {
element.title = format.anchorTitle;
}
if (format.relationship) {
element.rel = format.relationship;
}
}
},
};
|