@aster-editor/word 0.4.1 → 0.4.3
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/README.md +8 -7
- package/dist/docx/import-docx.d.ts.map +1 -1
- package/dist/docx/import-docx.js +8 -4
- package/dist/docx/import-docx.js.map +1 -1
- package/dist/docx/postprocess/strip-empty-paragraphs.d.ts +3 -0
- package/dist/docx/postprocess/strip-empty-paragraphs.d.ts.map +1 -1
- package/dist/docx/postprocess/strip-empty-paragraphs.js +7 -1
- package/dist/docx/postprocess/strip-empty-paragraphs.js.map +1 -1
- package/dist/docx/postprocess/types.d.ts +1 -1
- package/dist/docx/postprocess/types.d.ts.map +1 -1
- package/dist/docx/types.d.ts +7 -0
- package/dist/docx/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -21,13 +21,14 @@ Convertit un `.docx` en HTML prêt pour `editor.setHTML` ou `editor.insertHTML`.
|
|
|
21
21
|
|
|
22
22
|
### Options (`DocxImportOptions`)
|
|
23
23
|
|
|
24
|
-
| Champ
|
|
25
|
-
|
|
|
26
|
-
| `upload`
|
|
27
|
-
| `footnotes`
|
|
28
|
-
| `styleMap`
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
24
|
+
| Champ | Type | Défaut | Rôle |
|
|
25
|
+
| ----------------- | --------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
26
|
+
| `upload` | `UploadHandler` | — | Hook `(file: File) => Promise<string>` appelé pour chaque image embarquée. Sans hook : data URL base64. |
|
|
27
|
+
| `footnotes` | `boolean` | `true` | Conserver les notes de bas de page et de fin en liste finale. `false` les supprime avec un avertissement. |
|
|
28
|
+
| `styleMap` | `readonly string[]` | `[]` | Règles mammoth additionnelles (`p[style-name='X'] => h2:fresh`), ajoutées **après** celles d'Aster, qui restent prioritaires. Lignes vides et `#` ignorées. |
|
|
29
|
+
| `emptyParagraphs` | `'keep' | 'drop'` | `'keep'` | Sort des paragraphes vides (lignes laissées par Entrée). `keep` les rend en `<p></p>`, fidèle aux sauts de ligne de l'auteur ; `drop` les supprime comme avant 0.4.3, pour nettoyer un Word qui espace ses blocs avec des lignes vides. |
|
|
30
|
+
| `parse` | `HtmlParser` | `new DOMParser()` | Parseur HTML injectable (`{ parseFromString(html, 'text/html'): Document }`) pour SSR ou tests. |
|
|
31
|
+
| `variables` | `DocxVariableOptions` | tout actif | `{ detect?, pattern? }` : sources de variables reconnues et motif alternatif à `{{nom}}`. Voir [Variables](#variables). |
|
|
31
32
|
|
|
32
33
|
### Résultat (`DocxImportResult`)
|
|
33
34
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-docx.d.ts","sourceRoot":"","sources":["../../src/docx/import-docx.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,SAAS,EAEV,MAAM,SAAS,CAAC;AAqKjB;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"import-docx.d.ts","sourceRoot":"","sources":["../../src/docx/import-docx.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAEhB,SAAS,EAEV,MAAM,SAAS,CAAC;AAqKjB;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAuD3B"}
|
package/dist/docx/import-docx.js
CHANGED
|
@@ -180,7 +180,7 @@ export async function importDocx(input, options = {}) {
|
|
|
180
180
|
raw = await mammoth.convertToHtml(toMammothInput(mammothBuffer), {
|
|
181
181
|
styleMap: buildStyleMap(options.styleMap),
|
|
182
182
|
convertImage: createImageConverter(mammoth, options.upload, warnings),
|
|
183
|
-
ignoreEmptyParagraphs:
|
|
183
|
+
ignoreEmptyParagraphs: options.emptyParagraphs === 'drop',
|
|
184
184
|
});
|
|
185
185
|
}
|
|
186
186
|
catch (error) {
|
|
@@ -191,9 +191,13 @@ export async function importDocx(input, options = {}) {
|
|
|
191
191
|
}
|
|
192
192
|
const doc = parser.parseFromString(`<!doctype html><html><body>${raw.value}</body></html>`, 'text/html');
|
|
193
193
|
const patterns = variablePatterns(variableOptions, collected);
|
|
194
|
-
runPostprocess(doc, {
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
runPostprocess(doc, {
|
|
195
|
+
options: {
|
|
196
|
+
footnotes: options.footnotes !== false,
|
|
197
|
+
emptyParagraphs: options.emptyParagraphs ?? 'keep',
|
|
198
|
+
},
|
|
199
|
+
warnings,
|
|
200
|
+
}, [createVariablesPass(patterns, collected)]);
|
|
197
201
|
return { html: doc.body.innerHTML, warnings, variables: collectResultVariables(doc, collected) };
|
|
198
202
|
}
|
|
199
203
|
//# sourceMappingURL=import-docx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-docx.js","sourceRoot":"","sources":["../../src/docx/import-docx.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"import-docx.js","sourceRoot":"","sources":["../../src/docx/import-docx.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import type { PostprocessPass } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Supprime les `<p>` vides, y compris dans les cellules et les `<li>` tant qu'il y
|
|
4
4
|
* reste un autre bloc (W-13). Word en produit beaucoup pour espacer visuellement.
|
|
5
|
+
* Ne s'applique qu'en `emptyParagraphs: 'drop'` : par défaut (`keep`) les lignes vides
|
|
6
|
+
* de l'auteur sont des `<p></p>` que l'éditeur conserve, sinon un aller-retour
|
|
7
|
+
* export → import perdait chaque saut de ligne.
|
|
5
8
|
*/
|
|
6
9
|
export declare const stripEmptyParagraphs: PostprocessPass;
|
|
7
10
|
//# sourceMappingURL=strip-empty-paragraphs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-empty-paragraphs.d.ts","sourceRoot":"","sources":["../../../src/docx/postprocess/strip-empty-paragraphs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAsB/C
|
|
1
|
+
{"version":3,"file":"strip-empty-paragraphs.d.ts","sourceRoot":"","sources":["../../../src/docx/postprocess/strip-empty-paragraphs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAsB/C;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,eASlC,CAAC"}
|
|
@@ -21,8 +21,14 @@ function isRequiredBlock(p) {
|
|
|
21
21
|
/**
|
|
22
22
|
* Supprime les `<p>` vides, y compris dans les cellules et les `<li>` tant qu'il y
|
|
23
23
|
* reste un autre bloc (W-13). Word en produit beaucoup pour espacer visuellement.
|
|
24
|
+
* Ne s'applique qu'en `emptyParagraphs: 'drop'` : par défaut (`keep`) les lignes vides
|
|
25
|
+
* de l'auteur sont des `<p></p>` que l'éditeur conserve, sinon un aller-retour
|
|
26
|
+
* export → import perdait chaque saut de ligne.
|
|
24
27
|
*/
|
|
25
|
-
export const stripEmptyParagraphs = (doc) => {
|
|
28
|
+
export const stripEmptyParagraphs = (doc, ctx) => {
|
|
29
|
+
if (ctx.options.emptyParagraphs === 'keep') {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
26
32
|
for (const p of Array.from(doc.querySelectorAll('p'))) {
|
|
27
33
|
if (isEmptyBlock(p) && !isRequiredBlock(p)) {
|
|
28
34
|
p.parentNode?.removeChild(p);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-empty-paragraphs.js","sourceRoot":"","sources":["../../../src/docx/postprocess/strip-empty-paragraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9D;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAU;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,sBAAsB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACpF,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"strip-empty-paragraphs.js","sourceRoot":"","sources":["../../../src/docx/postprocess/strip-empty-paragraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG9D;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAU;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,CAAC;IAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC,sBAAsB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAChE,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO;IACT,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtD,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { DocxImportOptions, DocxImportWarning } from '../types';
|
|
|
2
2
|
/** Contexte partagé par les passes de post-traitement. */
|
|
3
3
|
export interface PostprocessContext {
|
|
4
4
|
/** Options d'import résolues (valeurs par défaut appliquées). */
|
|
5
|
-
readonly options: Readonly<Required<Pick<DocxImportOptions, 'footnotes'>>>;
|
|
5
|
+
readonly options: Readonly<Required<Pick<DocxImportOptions, 'footnotes' | 'emptyParagraphs'>>>;
|
|
6
6
|
/** Avertissements accumulés, chaque passe peut en ajouter. */
|
|
7
7
|
readonly warnings: DocxImportWarning[];
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/docx/postprocess/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErE,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/docx/postprocess/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErE,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC/F,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC"}
|
package/dist/docx/types.d.ts
CHANGED
|
@@ -62,6 +62,13 @@ export interface DocxImportOptions {
|
|
|
62
62
|
parse?: HtmlParser;
|
|
63
63
|
/** Détection des variables (`{{nom}}`, champs de fusion, contrôles de contenu). Tout actif par défaut. */
|
|
64
64
|
variables?: DocxVariableOptions;
|
|
65
|
+
/**
|
|
66
|
+
* Sort des paragraphes vides du document (lignes laissées par Entrée). `keep` par défaut :
|
|
67
|
+
* ils deviennent des `<p></p>`, ce qui rend l'aller-retour export → import fidèle aux
|
|
68
|
+
* sauts de ligne de l'auteur. `drop` retrouve l'ancien comportement (mammoth les ignore),
|
|
69
|
+
* utile pour nettoyer un document Word qui espace ses blocs avec des lignes vides.
|
|
70
|
+
*/
|
|
71
|
+
emptyParagraphs?: 'keep' | 'drop';
|
|
65
72
|
}
|
|
66
73
|
/**
|
|
67
74
|
* Résultat de `importDocx` : le HTML à donner à l'éditeur et la liste, souvent vide, de
|
package/dist/docx/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docx/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,eAAe,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,6BAA6B,CAAC;AAElC,gGAAgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE7E,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,kGAAkG;IAClG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mFAAmF;IACnF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/docx/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,eAAe,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,6BAA6B,CAAC;AAElC,gGAAgG;AAChG,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE7E,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,kGAAkG;IAClG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,mFAAmF;IACnF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC;;;;OAIG;IACH,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;CACrC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aster-editor/word",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Import .docx et nettoyage du collage depuis Word et Google Docs pour Aster Editor",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Joris Tremoulet",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"jszip": "^3.10.2"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
-
"@aster-editor/core": "^0.4.
|
|
57
|
+
"@aster-editor/core": "^0.4.3",
|
|
58
58
|
"@tiptap/core": "^3.31.4"
|
|
59
59
|
}
|
|
60
60
|
}
|