@adobe/helix-md2docx 1.3.9 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/package.json +4 -4
- package/src/mdast2docx/handlers/table.js +16 -8
- package/src/mdast2docx/handlers/tableCell.js +20 -3
- package/src/mdast2docx/handlers/tableRow.js +2 -7
- package/src/mdast2docx/hast-table-cell-handler.js +46 -0
- package/src/mdast2docx/hast-table-handler.js +39 -58
- package/src/mdast2docx/mdast-sanitize-html.js +3 -0
- package/src/mdast2docx/template/[Content_Types].xml +39 -41
- package/src/mdast2docx/template/docProps/app.xml +40 -20
- package/src/mdast2docx/template/docProps/core.xml +12 -12
- package/src/mdast2docx/template/word/_rels/document.xml.rels +36 -51
- package/src/mdast2docx/template/word/document.xml +1907 -1116
- package/src/mdast2docx/template/word/fontTable.xml +105 -58
- package/src/mdast2docx/template/word/media/image1.png +0 -0
- package/src/mdast2docx/template/word/numbering.xml +622 -277
- package/src/mdast2docx/template/word/settings.xml +140 -91
- package/src/mdast2docx/template/word/styles.xml +1806 -1084
- package/src/mdast2docx/template/word/theme/theme1.xml +490 -296
- package/src/mdast2docx/template/word/webSettings.xml +13 -40
- package/src/mdast2docx/template.docx +0 -0
- package/src/mdast2docx/template/word/_rels/settings.xml.rels +0 -7
- package/src/mdast2docx/template/word/endnotes.xml +0 -56
- package/src/mdast2docx/template/word/footer1.xml +0 -39
- package/src/mdast2docx/template/word/footer2.xml +0 -39
- package/src/mdast2docx/template/word/footer3.xml +0 -39
- package/src/mdast2docx/template/word/footnotes.xml +0 -56
- package/src/mdast2docx/template/word/header1.xml +0 -39
- package/src/mdast2docx/template/word/header2.xml +0 -39
- package/src/mdast2docx/template/word/header3.xml +0 -39
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
# [1.4.0](https://github.com/adobe/helix-md2docx/compare/v1.3.11...v1.4.0) (2022-03-24)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* new docx template ([e8a96b7](https://github.com/adobe/helix-md2docx/commit/e8a96b7035d1c6c804bf9c3c8b748c432e1f5421))
|
|
7
|
+
|
|
8
|
+
## [1.3.11](https://github.com/adobe/helix-md2docx/compare/v1.3.10...v1.3.11) (2022-03-24)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* handle row and colspan ([7077d4f](https://github.com/adobe/helix-md2docx/commit/7077d4f99957741885cdc1be39d6f23fa0cb88fa)), closes [#47](https://github.com/adobe/helix-md2docx/issues/47)
|
|
14
|
+
|
|
15
|
+
## [1.3.10](https://github.com/adobe/helix-md2docx/compare/v1.3.9...v1.3.10) (2022-03-20)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **deps:** update dependency @adobe/helix-fetch to v3.0.7 ([f211f44](https://github.com/adobe/helix-md2docx/commit/f211f4483dd6687e310e98c8b9793f65fa2f1893))
|
|
21
|
+
|
|
1
22
|
## [1.3.9](https://github.com/adobe/helix-md2docx/compare/v1.3.8...v1.3.9) (2022-03-18)
|
|
2
23
|
|
|
3
24
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adobe/helix-md2docx",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Helix Service that converts markdown to word documents",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://github.com/adobe/helix-md2docx#readme",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@adobe/helix-fetch": "3.0.
|
|
30
|
+
"@adobe/helix-fetch": "3.0.7",
|
|
31
31
|
"@adobe/helix-markdown-support": "3.1.2",
|
|
32
32
|
"@adobe/helix-shared-process-queue": "1.1.4",
|
|
33
33
|
"@adobe/helix-docx2md": "1.0.10",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@adobe/eslint-config-helix": "1.3.2",
|
|
46
|
-
"@adobe/helix-mediahandler": "1.0.
|
|
46
|
+
"@adobe/helix-mediahandler": "1.0.13",
|
|
47
47
|
"@semantic-release/changelog": "6.0.1",
|
|
48
48
|
"@semantic-release/exec": "6.0.3",
|
|
49
49
|
"@semantic-release/git": "10.0.1",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"fs-extra": "10.0.1",
|
|
58
58
|
"husky": "7.0.4",
|
|
59
59
|
"junit-report-builder": "3.0.0",
|
|
60
|
-
"lint-staged": "12.3.
|
|
60
|
+
"lint-staged": "12.3.7",
|
|
61
61
|
"mocha": "9.2.2",
|
|
62
62
|
"mocha-multi-reporters": "1.5.1",
|
|
63
63
|
"semantic-release": "19.0.2",
|
|
@@ -21,24 +21,32 @@ const { Paragraph, Table, WidthType } = docx;
|
|
|
21
21
|
// decimal or a percent, so a % symbol should be included when type="pct".
|
|
22
22
|
|
|
23
23
|
export default async function table(ctx, node) {
|
|
24
|
+
let numCols = node.maxCols;
|
|
25
|
+
if (node.children.length > 0) {
|
|
26
|
+
// eslint-disable-next-line no-param-reassign
|
|
27
|
+
node.children[0].tableHeader = true;
|
|
28
|
+
if (!numCols) {
|
|
29
|
+
numCols = node.children[0].children.length;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
24
33
|
const oldTable = ctx.table;
|
|
25
34
|
ctx.table = {
|
|
26
|
-
// remember the table width
|
|
35
|
+
// remember the table width
|
|
27
36
|
// default width: Letter Width - Margin = 8.5" - 2" = 6.5". the unit is 1/1440 inches.
|
|
28
|
-
width: oldTable
|
|
37
|
+
width: oldTable?.columnWidth || 1440 * 6.5,
|
|
29
38
|
align: node.align || [],
|
|
30
39
|
};
|
|
40
|
+
|
|
41
|
+
// use the same width for all columns
|
|
42
|
+
ctx.table.columnWidth = numCols ? (ctx.table.width / numCols) : ctx.table.width;
|
|
43
|
+
const columnWidths = new Array(numCols).fill(Math.round(ctx.table.columnWidth));
|
|
44
|
+
|
|
31
45
|
// process the rows
|
|
32
46
|
const rows = await all(ctx, node);
|
|
33
47
|
|
|
34
|
-
// and remember the column width
|
|
35
|
-
const { columnWidth } = ctx.table;
|
|
36
48
|
ctx.table = oldTable;
|
|
37
49
|
|
|
38
|
-
// use the same width for all columns
|
|
39
|
-
const numCols = rows.length ? rows[0].CellCount : 0;
|
|
40
|
-
const columnWidths = new Array(numCols).fill(Math.round(columnWidth));
|
|
41
|
-
|
|
42
50
|
const tbl = new Table({
|
|
43
51
|
style: 'PageBlock',
|
|
44
52
|
rows,
|
|
@@ -13,7 +13,7 @@ import docx from 'docx';
|
|
|
13
13
|
import all from '../all.js';
|
|
14
14
|
|
|
15
15
|
const {
|
|
16
|
-
AlignmentType, Paragraph, Table, TableCell,
|
|
16
|
+
AlignmentType, Paragraph, Table, TableCell, ShadingType,
|
|
17
17
|
} = docx;
|
|
18
18
|
|
|
19
19
|
const ALIGN = {
|
|
@@ -45,7 +45,24 @@ export default async function tableCell(ctx, node, parent, siblings) {
|
|
|
45
45
|
content.push(new Paragraph({ alignment, children: leaves }));
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
const opts = {
|
|
49
49
|
children: content,
|
|
50
|
-
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
if (node.data?.colSpan) {
|
|
53
|
+
opts.columnSpan = node.data.colSpan;
|
|
54
|
+
}
|
|
55
|
+
if (node.data?.rowSpan) {
|
|
56
|
+
opts.rowSpan = node.data.rowSpan;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (parent.tableHeader) {
|
|
60
|
+
// shading for header row
|
|
61
|
+
opts.shading = {
|
|
62
|
+
fill: 'F4CCCD', // color defined in styles.xml (PageBlock table style)
|
|
63
|
+
type: ShadingType.CLEAR,
|
|
64
|
+
color: 'auto',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return new TableCell(opts);
|
|
51
68
|
}
|
|
@@ -14,15 +14,10 @@ import all from '../all.js';
|
|
|
14
14
|
|
|
15
15
|
const { TableRow } = docx;
|
|
16
16
|
|
|
17
|
-
export default async function tableRow(ctx, node
|
|
18
|
-
// adjust columnWidth
|
|
19
|
-
if (!ctx.table.columnWidth) {
|
|
20
|
-
ctx.table.columnWidth = ctx.table.width / node.children.length;
|
|
21
|
-
}
|
|
22
|
-
|
|
17
|
+
export default async function tableRow(ctx, node) {
|
|
23
18
|
const children = await all(ctx, node);
|
|
24
19
|
return new TableRow({
|
|
25
20
|
children,
|
|
26
|
-
tableHeader:
|
|
21
|
+
// tableHeader: node.tableHeader,
|
|
27
22
|
});
|
|
28
23
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
copied and adapted (adding align) from
|
|
15
|
+
https://github.com/syntax-tree/hast-util-to-mdast/blob/main/lib/handlers/table-cell.js
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
'use strict';
|
|
19
|
+
|
|
20
|
+
import { all } from 'hast-util-to-mdast/lib/all.js';
|
|
21
|
+
|
|
22
|
+
export default function cell(h, node) {
|
|
23
|
+
const wrap = h.wrapText;
|
|
24
|
+
|
|
25
|
+
// eslint-disable-next-line no-param-reassign
|
|
26
|
+
h.wrapText = false;
|
|
27
|
+
|
|
28
|
+
const result = h(node, 'tableCell', all(h, node));
|
|
29
|
+
|
|
30
|
+
if (node.properties?.rowSpan || node.properties?.colSpan || node.properties?.align) {
|
|
31
|
+
const data = result.data || (result.data = {});
|
|
32
|
+
if (node.properties.rowSpan) {
|
|
33
|
+
data.rowSpan = node.properties.rowSpan;
|
|
34
|
+
}
|
|
35
|
+
if (node.properties.colSpan) {
|
|
36
|
+
data.colSpan = node.properties.colSpan;
|
|
37
|
+
}
|
|
38
|
+
if (node.properties.align) {
|
|
39
|
+
data.align = node.properties.align;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// eslint-disable-next-line no-param-reassign
|
|
43
|
+
h.wrapText = wrap;
|
|
44
|
+
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
@@ -12,56 +12,15 @@
|
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
14
14
|
|
|
15
|
-
import { convertElement } from 'hast-util-is-element';
|
|
16
|
-
import { visit } from 'unist-util-visit';
|
|
17
15
|
import { all } from 'hast-util-to-mdast/lib/all.js';
|
|
18
16
|
|
|
19
|
-
const thead = convertElement('thead');
|
|
20
|
-
const tr = convertElement('tr');
|
|
21
|
-
const cell = convertElement(['th', 'td']);
|
|
22
|
-
|
|
23
17
|
/*
|
|
24
18
|
copied and adapted from
|
|
25
|
-
https://github.com/syntax-tree/hast-util-to-mdast/blob/
|
|
19
|
+
https://github.com/syntax-tree/hast-util-to-mdast/blob/main/lib/handlers/table.js
|
|
26
20
|
*/
|
|
27
21
|
|
|
28
|
-
// Infer whether the HTML table has a head and how it aligns.
|
|
29
|
-
function inspect(node) {
|
|
30
|
-
let headless = true;
|
|
31
|
-
const align = [];
|
|
32
|
-
let rowIndex = 0;
|
|
33
|
-
let cellIndex = 0;
|
|
34
|
-
|
|
35
|
-
function visitor(child) {
|
|
36
|
-
// If there is a `thead`, assume there is a header row.
|
|
37
|
-
if (thead(child)) {
|
|
38
|
-
headless = false;
|
|
39
|
-
} else if (tr(child)) {
|
|
40
|
-
rowIndex += 1;
|
|
41
|
-
cellIndex = 0;
|
|
42
|
-
} else if (cell(child)) {
|
|
43
|
-
if (align[cellIndex] === undefined) {
|
|
44
|
-
align[cellIndex] = child.properties.align || null;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// If there is a th in the first row, assume there is a header row.
|
|
48
|
-
if (headless && rowIndex < 2 && child.tagName === 'th') {
|
|
49
|
-
headless = false;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
cellIndex += 1;
|
|
53
|
-
return visit.SKIP;
|
|
54
|
-
}
|
|
55
|
-
return visit.CONTINUE;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
visit(node, 'element', visitor);
|
|
59
|
-
|
|
60
|
-
return { align, headless };
|
|
61
|
-
}
|
|
62
|
-
|
|
63
22
|
// Ensure the cells in a row are properly structured.
|
|
64
|
-
function toCells(children
|
|
23
|
+
function toCells(children) {
|
|
65
24
|
const nodes = [];
|
|
66
25
|
let queue;
|
|
67
26
|
|
|
@@ -93,25 +52,14 @@ function toCells(children, info) {
|
|
|
93
52
|
node.children = node.children.concat(queue);
|
|
94
53
|
}
|
|
95
54
|
|
|
96
|
-
// add empty cells if there are more in the table
|
|
97
|
-
for (let index = nodes.length; index < info.align.length; index += 1) {
|
|
98
|
-
nodes.push({ type: 'tableCell', children: [] });
|
|
99
|
-
}
|
|
100
|
-
|
|
101
55
|
return nodes;
|
|
102
56
|
}
|
|
103
57
|
|
|
104
58
|
// Ensure the rows are properly structured.
|
|
105
|
-
function toRows(children
|
|
59
|
+
function toRows(children) {
|
|
106
60
|
const nodes = [];
|
|
107
61
|
let queue;
|
|
108
62
|
|
|
109
|
-
// Add an empty header row.
|
|
110
|
-
// we don't need extra header rows
|
|
111
|
-
// if (info.headless) {
|
|
112
|
-
// nodes.push({ type: 'tableRow', children: [] });
|
|
113
|
-
// }
|
|
114
|
-
|
|
115
63
|
children.forEach((node) => {
|
|
116
64
|
if (node.type === 'tableRow') {
|
|
117
65
|
if (queue) {
|
|
@@ -133,13 +81,46 @@ function toRows(children, info) {
|
|
|
133
81
|
}
|
|
134
82
|
nodes.forEach((node) => {
|
|
135
83
|
// eslint-disable-next-line no-param-reassign
|
|
136
|
-
node.children = toCells(node.children
|
|
84
|
+
node.children = toCells(node.children);
|
|
137
85
|
});
|
|
138
86
|
|
|
139
87
|
return nodes;
|
|
140
88
|
}
|
|
141
89
|
|
|
142
90
|
export default function table(h, node) {
|
|
143
|
-
const
|
|
144
|
-
|
|
91
|
+
const mdNode = h(node, 'table', toRows(all(h, node)));
|
|
92
|
+
|
|
93
|
+
// clean up table in respect to row and colspan and compute alignments
|
|
94
|
+
mdNode.align = [];
|
|
95
|
+
|
|
96
|
+
// compute the number of cells in each row, respecting the row and col spans.
|
|
97
|
+
mdNode.maxCols = 0;
|
|
98
|
+
const pendingRowSpans = [];
|
|
99
|
+
for (const row of mdNode.children) {
|
|
100
|
+
row.numCols = pendingRowSpans.shift() || 0;
|
|
101
|
+
for (const cell of row.children) {
|
|
102
|
+
const rowSpan = Number.parseInt(cell.data?.rowSpan || '1', 10);
|
|
103
|
+
const colSpan = Number.parseInt(cell.data?.colSpan || '1', 10);
|
|
104
|
+
if (cell.data?.align && !mdNode.align[row.numCols]) {
|
|
105
|
+
mdNode.align[row.numCols] = cell.data.align;
|
|
106
|
+
}
|
|
107
|
+
row.numCols += colSpan;
|
|
108
|
+
if (rowSpan > 1) {
|
|
109
|
+
for (let i = 0; i < rowSpan - 1; i += 1) {
|
|
110
|
+
pendingRowSpans[i] = (pendingRowSpans[i] || 0) + colSpan;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
mdNode.maxCols = Math.max(mdNode.maxCols, row.numCols);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// add empty cells if needed
|
|
118
|
+
for (const row of mdNode.children) {
|
|
119
|
+
for (let i = row.numCols; i < mdNode.maxCols; i += 1) {
|
|
120
|
+
row.children.push({ type: 'tableCell', children: [] });
|
|
121
|
+
}
|
|
122
|
+
delete row.numCols;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return mdNode;
|
|
145
126
|
}
|
|
@@ -15,6 +15,7 @@ import parse from 'rehype-parse';
|
|
|
15
15
|
import { toMdast } from 'hast-util-to-mdast';
|
|
16
16
|
// import inspect from 'unist-util-inspect';
|
|
17
17
|
import tableHandler from './hast-table-handler.js';
|
|
18
|
+
import tableCellHandler from './hast-table-cell-handler.js';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* Creates simple format handler
|
|
@@ -90,6 +91,8 @@ export default function sanitizeHtml(tree) {
|
|
|
90
91
|
sup: formatHandler('superScript'),
|
|
91
92
|
table: tableHandler,
|
|
92
93
|
markdown: mdHandler(mdInserts),
|
|
94
|
+
th: tableCellHandler,
|
|
95
|
+
td: tableCellHandler,
|
|
93
96
|
},
|
|
94
97
|
});
|
|
95
98
|
|
|
@@ -1,41 +1,39 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
-
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
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
|
-
ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>
|
|
41
|
-
</Types>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
3
|
+
<Default
|
|
4
|
+
Extension="png"
|
|
5
|
+
ContentType="image/png"/>
|
|
6
|
+
<Default
|
|
7
|
+
Extension="rels"
|
|
8
|
+
ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
|
|
9
|
+
<Default
|
|
10
|
+
Extension="xml"
|
|
11
|
+
ContentType="application/xml"/>
|
|
12
|
+
<Override
|
|
13
|
+
PartName="/word/document.xml"
|
|
14
|
+
ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>
|
|
15
|
+
<Override
|
|
16
|
+
PartName="/word/numbering.xml"
|
|
17
|
+
ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>
|
|
18
|
+
<Override
|
|
19
|
+
PartName="/word/styles.xml"
|
|
20
|
+
ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>
|
|
21
|
+
<Override
|
|
22
|
+
PartName="/word/settings.xml"
|
|
23
|
+
ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml"/>
|
|
24
|
+
<Override
|
|
25
|
+
PartName="/word/webSettings.xml"
|
|
26
|
+
ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml"/>
|
|
27
|
+
<Override
|
|
28
|
+
PartName="/word/fontTable.xml"
|
|
29
|
+
ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml"/>
|
|
30
|
+
<Override
|
|
31
|
+
PartName="/word/theme/theme1.xml"
|
|
32
|
+
ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/>
|
|
33
|
+
<Override
|
|
34
|
+
PartName="/docProps/core.xml"
|
|
35
|
+
ContentType="application/vnd.openxmlformats-package.core-properties+xml"/>
|
|
36
|
+
<Override
|
|
37
|
+
PartName="/docProps/app.xml"
|
|
38
|
+
ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/>
|
|
39
|
+
</Types>
|
|
@@ -1,20 +1,40 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
-
<Properties
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
</
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
<Properties
|
|
3
|
+
xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
|
|
4
|
+
xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
|
|
5
|
+
<Template>Normal.dotm</Template>
|
|
6
|
+
<TotalTime>51</TotalTime>
|
|
7
|
+
<Pages>3</Pages>
|
|
8
|
+
<Words>271</Words>
|
|
9
|
+
<Characters>1545</Characters>
|
|
10
|
+
<Application>Microsoft Office Word</Application>
|
|
11
|
+
<DocSecurity>0</DocSecurity>
|
|
12
|
+
<Lines>12</Lines>
|
|
13
|
+
<Paragraphs>3</Paragraphs>
|
|
14
|
+
<ScaleCrop>false</ScaleCrop>
|
|
15
|
+
<HeadingPairs>
|
|
16
|
+
<vt:vector
|
|
17
|
+
size="2"
|
|
18
|
+
baseType="variant">
|
|
19
|
+
<vt:variant>
|
|
20
|
+
<vt:lpstr>Title</vt:lpstr>
|
|
21
|
+
</vt:variant>
|
|
22
|
+
<vt:variant>
|
|
23
|
+
<vt:i4>1</vt:i4>
|
|
24
|
+
</vt:variant>
|
|
25
|
+
</vt:vector>
|
|
26
|
+
</HeadingPairs>
|
|
27
|
+
<TitlesOfParts>
|
|
28
|
+
<vt:vector
|
|
29
|
+
size="1"
|
|
30
|
+
baseType="lpstr">
|
|
31
|
+
<vt:lpstr></vt:lpstr>
|
|
32
|
+
</vt:vector>
|
|
33
|
+
</TitlesOfParts>
|
|
34
|
+
<Company></Company>
|
|
35
|
+
<LinksUpToDate>false</LinksUpToDate>
|
|
36
|
+
<CharactersWithSpaces>1813</CharactersWithSpaces>
|
|
37
|
+
<SharedDoc>false</SharedDoc>
|
|
38
|
+
<HyperlinksChanged>false</HyperlinksChanged>
|
|
39
|
+
<AppVersion>16.0000</AppVersion>
|
|
40
|
+
</Properties>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
-
<cp:coreProperties
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</cp:coreProperties>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
<cp:coreProperties
|
|
3
|
+
xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
|
|
4
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
5
|
+
xmlns:dcterms="http://purl.org/dc/terms/"
|
|
6
|
+
xmlns:dcmitype="http://purl.org/dc/dcmitype/"
|
|
7
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
8
|
+
<cp:lastModifiedBy>Alexandre Capt</cp:lastModifiedBy>
|
|
9
|
+
<cp:revision>29</cp:revision>
|
|
10
|
+
<dcterms:created xsi:type="dcterms:W3CDTF">2022-03-23T14:16:00Z</dcterms:created>
|
|
11
|
+
<dcterms:modified xsi:type="dcterms:W3CDTF">2022-03-24T09:17:00Z</dcterms:modified>
|
|
12
|
+
</cp:coreProperties>
|
|
@@ -1,51 +1,36 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
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
|
-
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable"
|
|
38
|
-
Target="fontTable.xml"/>
|
|
39
|
-
<Relationship Id="rId10"
|
|
40
|
-
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header"
|
|
41
|
-
Target="header2.xml"/>
|
|
42
|
-
<Relationship Id="rId4"
|
|
43
|
-
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings"
|
|
44
|
-
Target="webSettings.xml"/>
|
|
45
|
-
<Relationship Id="rId9"
|
|
46
|
-
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/header"
|
|
47
|
-
Target="header1.xml"/>
|
|
48
|
-
<Relationship Id="rId14"
|
|
49
|
-
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer"
|
|
50
|
-
Target="footer3.xml"/>
|
|
51
|
-
</Relationships>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
3
|
+
<Relationship
|
|
4
|
+
Id="rId8"
|
|
5
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"
|
|
6
|
+
Target="theme/theme1.xml"/>
|
|
7
|
+
<Relationship
|
|
8
|
+
Id="rId3"
|
|
9
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings"
|
|
10
|
+
Target="settings.xml"/>
|
|
11
|
+
<Relationship
|
|
12
|
+
Id="rId7"
|
|
13
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable"
|
|
14
|
+
Target="fontTable.xml"/>
|
|
15
|
+
<Relationship
|
|
16
|
+
Id="rId2"
|
|
17
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"
|
|
18
|
+
Target="styles.xml"/>
|
|
19
|
+
<Relationship
|
|
20
|
+
Id="rId1"
|
|
21
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering"
|
|
22
|
+
Target="numbering.xml"/>
|
|
23
|
+
<Relationship
|
|
24
|
+
Id="rId6"
|
|
25
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
|
|
26
|
+
Target="media/image1.png"/>
|
|
27
|
+
<Relationship
|
|
28
|
+
Id="rId5"
|
|
29
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
|
|
30
|
+
Target="https://www.adobe.com/"
|
|
31
|
+
TargetMode="External"/>
|
|
32
|
+
<Relationship
|
|
33
|
+
Id="rId4"
|
|
34
|
+
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings"
|
|
35
|
+
Target="webSettings.xml"/>
|
|
36
|
+
</Relationships>
|