Skip to content

Commit cc106d3

Browse files
T-miracleHufe921
andauthored
feat: optimize the export style of the getHTML api #1294
Co-authored-by: Hufe921 <[email protected]>
1 parent 51096f6 commit cc106d3

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/editor/utils/element.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,10 +1068,19 @@ export function convertElementToDom(
10681068
}
10691069
if (element.underline) {
10701070
dom.style.textDecoration = 'underline'
1071+
dom.style.textDecorationStyle = element.textDecoration?.style || 'solid'
10711072
}
10721073
if (element.strikeout) {
10731074
dom.style.textDecoration += ' line-through'
10741075
}
1076+
if (element.type) {
1077+
dom.setAttribute('data-type', element.type)
1078+
}
1079+
if (element.rowMargin) {
1080+
dom.style.lineHeight = (
1081+
element.rowMargin ?? options.defaultRowMargin
1082+
).toString()
1083+
}
10751084
dom.innerText = element.value.replace(new RegExp(`${ZERO}`, 'g'), '\n')
10761085
return dom
10771086
}
@@ -1297,6 +1306,9 @@ export function createDomFromElementList(
12971306
}
12981307
} else if (element.type === ElementType.SEPARATOR) {
12991308
const hr = document.createElement('hr')
1309+
if (element.dashArray?.length) {
1310+
hr.setAttribute('data-dash-array', element.dashArray.join(','))
1311+
}
13001312
clipboardDom.append(hr)
13011313
} else if (element.type === ElementType.CHECKBOX) {
13021314
const checkbox = document.createElement('input')
@@ -1321,6 +1333,10 @@ export function createDomFromElementList(
13211333
const childDom = buildDom(element.control?.value || [])
13221334
controlElement.innerHTML = childDom.innerHTML
13231335
clipboardDom.append(controlElement)
1336+
} else if (element.type === ElementType.PAGE_BREAK) {
1337+
const pageBreakElement = document.createElement('div')
1338+
pageBreakElement.style.breakAfter = 'page'
1339+
clipboardDom.append(pageBreakElement)
13241340
} else if (
13251341
!element.type ||
13261342
element.type === ElementType.LATEX ||
@@ -1366,6 +1382,9 @@ export function createDomFromElementList(
13661382
rowFlexDom.style.textAlign = convertRowFlexToTextAlign(
13671383
elementGroupRowFlex.rowFlex!
13681384
)
1385+
if (elementGroupRowFlex.rowFlex === 'justify') {
1386+
rowFlexDom.style.textAlignLast = 'justify'
1387+
}
13691388
}
13701389
}
13711390
// 布局内容

0 commit comments

Comments
 (0)