feat: Add support for "word" files exported from Confluence (#1600)
* Display error message to end user * fix: Improve conversion of tables * fix: Characters at ends of lines in tables lost
This commit is contained in:
242
server/test/fixtures/confluence.doc
vendored
Normal file
242
server/test/fixtures/confluence.doc
vendored
Normal file
@@ -0,0 +1,242 @@
|
||||
Date: Thu, 15 Oct 2020 21:46:24 +0000 (UTC)
|
||||
Message-ID: <1157346768.61.1602798384354@1c1c2e46a009>
|
||||
Subject: Exported From Confluence
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/related;
|
||||
boundary="----=_Part_60_1619701709.1602798384353"
|
||||
|
||||
------=_Part_60_1619701709.1602798384353
|
||||
Content-Type: text/html; charset=UTF-8
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
Content-Location: file:///C:/exported.html
|
||||
|
||||
<html xmlns:o=3D'urn:schemas-microsoft-com:office:office'
|
||||
xmlns:w=3D'urn:schemas-microsoft-com:office:word'
|
||||
xmlns:v=3D'urn:schemas-microsoft-com:vml'
|
||||
xmlns=3D'urn:w3-org-ns:HTML'>
|
||||
<head>
|
||||
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8=
|
||||
">
|
||||
<title>Heading 1</title>
|
||||
<!--[if gte mso 9]>
|
||||
<xml>
|
||||
<o:OfficeDocumentSettings>
|
||||
<o:TargetScreenSize>1024x640</o:TargetScreenSize>
|
||||
<o:PixelsPerInch>72</o:PixelsPerInch>
|
||||
<o:AllowPNG/>
|
||||
</o:OfficeDocumentSettings>
|
||||
<w:WordDocument>
|
||||
<w:View>Print</w:View>
|
||||
<w:Zoom>90</w:Zoom>
|
||||
<w:DoNotOptimizeForBrowser/>
|
||||
</w:WordDocument>
|
||||
</xml>
|
||||
<![endif]-->
|
||||
<style>
|
||||
<!--
|
||||
@page Section1 {
|
||||
size: 8.5in 11.0in;
|
||||
margin: 1.0in;
|
||||
mso-header-margin: .5in;
|
||||
mso-footer-margin: .5in;
|
||||
mso-paper-source: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
border: solid 1px;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table td, table th {
|
||||
border: solid 1px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
td {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
tr {
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
div.Section1 {
|
||||
page: Section1;
|
||||
}
|
||||
|
||||
/* Confluence print stylesheet. Common to all themes for print medi=
|
||||
a */
|
||||
/* Full of !important until we improve batching for print CSS */
|
||||
|
||||
@media print {
|
||||
#main {
|
||||
padding-bottom: 1em !important; /* The default padding of 6em is to=
|
||||
o much for printouts */
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, Helvetica, FreeSans, sans-serif;
|
||||
font-size: 10pt;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
body, #full-height-container, #main, #page, #content, .has-personal-sid=
|
||||
ebar #content {
|
||||
background: #fff !important;
|
||||
color: #000 !important;
|
||||
border: 0 !important;
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
min-height: auto !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
a, a:link, a:visited, a:focus, a:hover, a:active {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#content h1,
|
||||
#content h2,
|
||||
#content h3,
|
||||
#content h4,
|
||||
#content h5,
|
||||
#content h6 {
|
||||
font-family: Arial, Helvetica, FreeSans, sans-serif;
|
||||
page-break-after: avoid;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: Monaco, "Courier New", monospace;
|
||||
}
|
||||
|
||||
#header,
|
||||
.aui-header-inner,
|
||||
#navigation,
|
||||
#sidebar,
|
||||
.sidebar,
|
||||
#personal-info-sidebar,
|
||||
.ia-fixed-sidebar,
|
||||
.page-actions,
|
||||
.navmenu,
|
||||
.ajs-menu-bar,
|
||||
.noprint,
|
||||
.inline-control-link,
|
||||
.inline-control-link a,
|
||||
a.show-labels-editor,
|
||||
.global-comment-actions,
|
||||
.comment-actions,
|
||||
.quick-comment-container,
|
||||
#addcomment {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* CONF-28544 cannot print multiple pages in IE */
|
||||
#splitter-content {
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
.comment .date::before {
|
||||
content: none !important; /* remove middot for print view */
|
||||
}
|
||||
|
||||
h1.pagetitle img {
|
||||
height: auto;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.print-only {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#footer {
|
||||
position: relative !important; /* CONF-17506 Place the footer at en=
|
||||
d of the content */
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: none;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#poweredby {
|
||||
border-top: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#poweredby li.print-only {
|
||||
display: list-item;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#poweredby li.noprint {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* no width controls in print */
|
||||
.wiki-content .table-wrap,
|
||||
.wiki-content p,
|
||||
.panel .codeContent,
|
||||
.panel .codeContent pre,
|
||||
.image-wrap {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
/* TODO - should this work? */
|
||||
#children-section,
|
||||
#comments-section .comment,
|
||||
#comments-section .comment .comment-body,
|
||||
#comments-section .comment .comment-content,
|
||||
#comments-section .comment p {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
#page-children a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/**
|
||||
hide twixies
|
||||
|
||||
the specificity here is a hack because print styles
|
||||
are getting loaded before the base styles. */
|
||||
#comments-section.pageSection .section-header,
|
||||
#comments-section.pageSection .section-title,
|
||||
#children-section.pageSection .section-header,
|
||||
#children-section.pageSection .section-title,
|
||||
.children-show-hide {
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.children-show-hide.icon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* personal sidebar */
|
||||
.has-personal-sidebar #content {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.has-personal-sidebar #content .pageSection {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.no-print, .no-print * {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Heading 1</h1>
|
||||
<div class=3D"Section1">
|
||||
<p></p>
|
||||
<p>can=E2=80=99t this is a test document ge=
|
||||
ts updated/reverted you can=E2=80=99t change the branch test, create a new =
|
||||
one</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
------=_Part_60_1619701709.1602798384353--
|
||||
26
server/test/fixtures/tables.html
vendored
Normal file
26
server/test/fixtures/tables.html
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<html>
|
||||
|
||||
<body>
|
||||
<h1>Heading 1</h1>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Col 1</th>
|
||||
<th>Col 2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Col 1.1</td>
|
||||
<td>Col 2.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Col 1.2</td>
|
||||
<td>Col 2.2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user