@fiduswriter/document 0.1.0-alpha.1

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.
Files changed (110) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +16 -0
  3. package/jest.config.js +23 -0
  4. package/package.json +59 -0
  5. package/schema.json +1 -0
  6. package/scripts/export-schema.js +16 -0
  7. package/src/bibliography/common.js +92 -0
  8. package/src/bibliography/csl_bib.js +139 -0
  9. package/src/citations/citeproc_sys.js +42 -0
  10. package/src/citations/format.js +194 -0
  11. package/src/common/blob.js +10 -0
  12. package/src/common/file.js +25 -0
  13. package/src/common/index.js +12 -0
  14. package/src/common/network.js +79 -0
  15. package/src/common/text.js +44 -0
  16. package/src/editor/e2ee/encryptor.js +228 -0
  17. package/src/exporter/docx/citations.js +177 -0
  18. package/src/exporter/docx/comments.js +165 -0
  19. package/src/exporter/docx/footnotes.js +240 -0
  20. package/src/exporter/docx/images.js +101 -0
  21. package/src/exporter/docx/index.js +185 -0
  22. package/src/exporter/docx/lists.js +260 -0
  23. package/src/exporter/docx/math.js +46 -0
  24. package/src/exporter/docx/metadata.js +289 -0
  25. package/src/exporter/docx/rels.js +193 -0
  26. package/src/exporter/docx/render.js +941 -0
  27. package/src/exporter/docx/richtext.js +1182 -0
  28. package/src/exporter/docx/tables.js +112 -0
  29. package/src/exporter/docx/tools.js +50 -0
  30. package/src/exporter/epub/index.js +142 -0
  31. package/src/exporter/epub/templates.js +140 -0
  32. package/src/exporter/epub/tools.js +96 -0
  33. package/src/exporter/html/citations.js +121 -0
  34. package/src/exporter/html/convert.js +813 -0
  35. package/src/exporter/html/index.js +192 -0
  36. package/src/exporter/html/templates.js +34 -0
  37. package/src/exporter/html/tools.js +50 -0
  38. package/src/exporter/jats/bibliography.js +183 -0
  39. package/src/exporter/jats/citations.js +109 -0
  40. package/src/exporter/jats/convert.js +871 -0
  41. package/src/exporter/jats/index.js +92 -0
  42. package/src/exporter/jats/templates.js +35 -0
  43. package/src/exporter/jats/text.js +72 -0
  44. package/src/exporter/latex/convert.js +934 -0
  45. package/src/exporter/latex/escape_latex.js +21 -0
  46. package/src/exporter/latex/index.js +74 -0
  47. package/src/exporter/latex/readme.js +22 -0
  48. package/src/exporter/native/shrink.js +132 -0
  49. package/src/exporter/odt/citations.js +101 -0
  50. package/src/exporter/odt/footnotes.js +147 -0
  51. package/src/exporter/odt/images.js +115 -0
  52. package/src/exporter/odt/index.js +156 -0
  53. package/src/exporter/odt/math.js +57 -0
  54. package/src/exporter/odt/metadata.js +251 -0
  55. package/src/exporter/odt/render.js +806 -0
  56. package/src/exporter/odt/richtext.js +865 -0
  57. package/src/exporter/odt/styles.js +387 -0
  58. package/src/exporter/odt/track.js +68 -0
  59. package/src/exporter/pandoc/citations.js +98 -0
  60. package/src/exporter/pandoc/convert.js +1017 -0
  61. package/src/exporter/pandoc/index.js +92 -0
  62. package/src/exporter/pandoc/readme.js +8 -0
  63. package/src/exporter/pandoc/tools.js +51 -0
  64. package/src/exporter/print/index.js +177 -0
  65. package/src/exporter/tools/doc_content.js +144 -0
  66. package/src/exporter/tools/file.js +9 -0
  67. package/src/exporter/tools/json.js +73 -0
  68. package/src/exporter/tools/svg.js +29 -0
  69. package/src/exporter/tools/xml.js +531 -0
  70. package/src/exporter/tools/xml_zip.js +95 -0
  71. package/src/exporter/tools/zip.js +90 -0
  72. package/src/exporter/tools/zotero_csl.js +93 -0
  73. package/src/importer/citations.js +129 -0
  74. package/src/importer/docx/citations.js +123 -0
  75. package/src/importer/docx/convert.js +1427 -0
  76. package/src/importer/docx/helpers.js +9 -0
  77. package/src/importer/docx/omml2mathml.js +1448 -0
  78. package/src/importer/docx/parse.js +735 -0
  79. package/src/importer/native/get_images.js +76 -0
  80. package/src/importer/native/update.js +29 -0
  81. package/src/importer/odt/citations.js +87 -0
  82. package/src/importer/odt/convert.js +1855 -0
  83. package/src/importer/pandoc/convert.js +884 -0
  84. package/src/importer/pandoc/helpers.js +84 -0
  85. package/src/importer/zip_analyzer.js +102 -0
  86. package/src/index.js +1 -0
  87. package/src/mathlive/opf_includes.js +24 -0
  88. package/src/schema/common/annotate.js +76 -0
  89. package/src/schema/common/base.js +118 -0
  90. package/src/schema/common/citation.js +62 -0
  91. package/src/schema/common/equation.js +31 -0
  92. package/src/schema/common/figure.js +190 -0
  93. package/src/schema/common/heading.js +43 -0
  94. package/src/schema/common/index.js +40 -0
  95. package/src/schema/common/list.js +95 -0
  96. package/src/schema/common/reference.js +100 -0
  97. package/src/schema/common/table.js +103 -0
  98. package/src/schema/common/track.js +190 -0
  99. package/src/schema/const.js +58 -0
  100. package/src/schema/convert.js +1272 -0
  101. package/src/schema/document/content.js +187 -0
  102. package/src/schema/document/index.js +117 -0
  103. package/src/schema/document/structure.js +452 -0
  104. package/src/schema/export.js +21 -0
  105. package/src/schema/footnotes.js +126 -0
  106. package/src/schema/footnotes_convert.js +31 -0
  107. package/src/schema/i18n.js +595 -0
  108. package/src/schema/index.js +5 -0
  109. package/src/schema/mini_json.js +61 -0
  110. package/src/schema/text.js +22 -0
@@ -0,0 +1,595 @@
1
+ export const BIBLIOGRAPHY_HEADERS = {
2
+ "af-ZA": "Bibliografie",
3
+ "sq-AL": "Bibliografi",
4
+ ar: "قائمة المراجع",
5
+ ast: "Bibliografía",
6
+ be: "Бібліяграфія",
7
+ br: "Levrlennadur",
8
+ bg: "библиография",
9
+ ca: "Bibliografia",
10
+ "ca-ES-Valencia": "Bibliografia",
11
+ "zh-CN": "参考书目",
12
+ da: "Bibliografi",
13
+ nl: "Bibliografie",
14
+ "en-AU": "Bibliography",
15
+ "en-CA": "Bibliography",
16
+ "en-NZ": "Bibliography",
17
+ "en-ZA": "Bibliography",
18
+ "en-GB": "Bibliography",
19
+ "en-US": "Bibliography",
20
+ eo: "Bibliografio",
21
+ fr: "Bibliographie",
22
+ gl: "Bibliografía",
23
+ "de-DE": "Literaturverzeichnis",
24
+ "de-AU": "Literaturverzeichnis",
25
+ "de-CH": "Literaturverzeichnis",
26
+ el: "Βιβλιογραφία",
27
+ he: "ביבליוגרפיה",
28
+ is: "Bókaskrá",
29
+ it: "Bibliografia",
30
+ ja: "書誌",
31
+ km: "គន្ថនិទ្ទេស",
32
+ lt: "Bibliografija",
33
+ ml: "ഗ്രന്ഥസൂചിക",
34
+ "nb-NO": "Bibliografi",
35
+ "nn-NO": "Bibliografi",
36
+ fa: "کتابشناسی",
37
+ pl: "Bibliografia",
38
+ "pt-BR": "Bibliografia",
39
+ "pt-PT": "Bibliografia",
40
+ ro: "Bibliografie",
41
+ ru: "библиография",
42
+ tr: "Kaynakça",
43
+ "sr-SP-Cy": "Библиографија",
44
+ "sr-SP-Lt": "Bibliografija",
45
+ sk: "Bibliografia",
46
+ sl: "Bibliografija",
47
+ es: "Bibliografía",
48
+ sv: "Bibliografi",
49
+ ta: "நூற்பட்டியல்",
50
+ tl: "Bibliograpiya",
51
+ uk: "Бібліографія"
52
+ }
53
+
54
+ const FIGURE = {
55
+ "af-ZA": "Figuur",
56
+ "sq-AL": "figurë",
57
+ ar: "الشكل",
58
+ ast: "Figura",
59
+ be: "Малюнак",
60
+ br: "Sifr",
61
+ bg: "Фигура",
62
+ ca: "Figura",
63
+ "ca-ES-Valencia": "Figura",
64
+ "zh-CN": "数字",
65
+ da: "Figur",
66
+ nl: "Figuur",
67
+ "en-AU": "Figure",
68
+ "en-CA": "Figure",
69
+ "en-NZ": "Figure",
70
+ "en-ZA": "Figure",
71
+ "en-GB": "Figure",
72
+ "en-US": "Figure",
73
+ eo: "Figuro",
74
+ fr: "Figure",
75
+ gl: "Figura",
76
+ "de-DE": "Abbildung",
77
+ "de-AU": "Abbildung",
78
+ "de-CH": "Abbildung",
79
+ el: "Φιγούρα",
80
+ he: "דמות",
81
+ is: "Mynd",
82
+ it: "Figura",
83
+ ja: "図",
84
+ km: "រូបភាព",
85
+ lt: "Pav",
86
+ ml: "ചിത്രം",
87
+ "nb-NO": "Figur",
88
+ "nn-NO": "Figur",
89
+ fa: "شکل",
90
+ pl: "Postać",
91
+ "pt-BR": "Figura",
92
+ "pt-PT": "Figura",
93
+ ro: "Figura",
94
+ ru: "фигура",
95
+ tr: "şekil",
96
+ "sr-SP-Cy": "Фигура",
97
+ "sr-SP-Lt": "Figura",
98
+ sk: "Figúra",
99
+ sl: "Slika",
100
+ es: "Figura",
101
+ sv: "Figur",
102
+ ta: "படம்",
103
+ tl: "Figure",
104
+ uk: "Малюнок"
105
+ }
106
+
107
+ const EQUATION = {
108
+ "af-ZA": "Vergelyking",
109
+ "sq-AL": "Ekuacioni",
110
+ ar: "معادلة",
111
+ ast: "Ecuación",
112
+ be: "Yраўненне",
113
+ br: "Kevatalenn",
114
+ bg: "Yравнение",
115
+ ca: "Equació",
116
+ "ca-ES-Valencia": "Equació",
117
+ "zh-CN": "方程",
118
+ da: "Ligning",
119
+ nl: "Vergelijking",
120
+ "en-AU": "Equation",
121
+ "en-CA": "Equation",
122
+ "en-NZ": "Equation",
123
+ "en-ZA": "Equation",
124
+ "en-GB": "Equation",
125
+ "en-US": "Equation",
126
+ eo: "Ekvacio",
127
+ fr: "Équation",
128
+ gl: "Ecuación",
129
+ "de-DE": "Gleichung",
130
+ "de-AU": "Gleichung",
131
+ "de-CH": "Gleichung",
132
+ el: "εξίσωση ",
133
+ he: "משוואה",
134
+ is: "Jöfnu",
135
+ it: "Equazione",
136
+ ja: "方程式",
137
+ km: "សមីការ",
138
+ lt: "Lygtis",
139
+ ml: "സമവാക്യം",
140
+ "nb-NO": "Ligning",
141
+ "nn-NO": "Likning",
142
+ fa: "معادله",
143
+ pl: "Równanie",
144
+ "pt-BR": "Equação",
145
+ "pt-PT": "Equação",
146
+ ro: "Ecuaţie",
147
+ ru: "Yравнение",
148
+ tr: "Denklem",
149
+ "sr-SP-Cy": "Једначина",
150
+ "sr-SP-Lt": "Jednačina",
151
+ sk: "Rovnica",
152
+ sl: "Enačba",
153
+ es: "Ecuación",
154
+ sv: "Ekvation",
155
+ ta: "சமன்பாடு",
156
+ tl: "Equation",
157
+ uk: "Pівняння"
158
+ }
159
+
160
+ const TABLE = {
161
+ "af-ZA": "Tabel",
162
+ "sq-AL": "tabelë",
163
+ ar: "الطاولة",
164
+ ast: "Tabla",
165
+ be: "Табліца",
166
+ br: "Taolenn",
167
+ bg: "маса",
168
+ ca: "Taula",
169
+ "ca-ES-Valencia": "Taula",
170
+ "zh-CN": "表",
171
+ da: "Tabel",
172
+ nl: "Tafel",
173
+ "en-AU": "Table",
174
+ "en-CA": "Table",
175
+ "en-NZ": "Table",
176
+ "en-ZA": "Table",
177
+ "en-GB": "Table",
178
+ "en-US": "Table",
179
+ eo: "Tabelo",
180
+ fr: "Table",
181
+ gl: "Táboa",
182
+ "de-DE": "Tabelle",
183
+ "de-AU": "Tabelle",
184
+ "de-CH": "Tabelle",
185
+ el: "Τραπέζι",
186
+ es: "Tabla",
187
+ he: "שולחן",
188
+ is: "Tafla",
189
+ it: "Tavolo",
190
+ ja: "表",
191
+ km: "តារាង",
192
+ lt: "Lentelė",
193
+ ml: "മേശ",
194
+ "nb-NO": "Tabel",
195
+ "nn-NO": "Tabel",
196
+ fa: "جدول",
197
+ pl: "Stół",
198
+ "pt-BR": "Tabela",
199
+ "pt-PT": "Tabela",
200
+ ro: "Tabel",
201
+ ru: "Таблица",
202
+ tr: "Tablo",
203
+ "sr-SP-Cy": "Табела",
204
+ "sr-SP-Lt": "Tabela",
205
+ sk: "Stôl",
206
+ sl: "Tabela",
207
+ sv: "Tabell",
208
+ ta: "மேசை",
209
+ tl: "Table",
210
+ uk: "Таблиця"
211
+ }
212
+
213
+ const PHOTO = {
214
+ "af-ZA": "Foto",
215
+ "sq-AL": "Foto",
216
+ ar: "صورة فوتوغرافية",
217
+ ast: "Foto",
218
+ be: "Фота",
219
+ br: "Foto",
220
+ bg: "снимка",
221
+ ca: "Foto",
222
+ "ca-ES-Valencia": "Foto",
223
+ "zh-CN": "照片",
224
+ da: "Foto",
225
+ nl: "Foto",
226
+ "en-AU": "Photo",
227
+ "en-CA": "Photo",
228
+ "en-NZ": "Photo",
229
+ "en-ZA": "Photo",
230
+ "en-GB": "Photo",
231
+ "en-US": "Photo",
232
+ eo: "Foto",
233
+ fr: "Photo",
234
+ gl: "Foto",
235
+ "de-DE": "Foto",
236
+ "de-AU": "Foto",
237
+ "de-CH": "Foto",
238
+ el: "φωτογραφία",
239
+ he: "תמונה",
240
+ is: "Mynd",
241
+ it: "Foto",
242
+ ja: "写真",
243
+ km: "រូបថត",
244
+ lt: "Nuotrauka",
245
+ ml: "ഫോട്ടോ",
246
+ "nb-NO": "Bilde",
247
+ "nn-NO": "Bilde",
248
+ fa: "عکس",
249
+ pl: "Zdjęcie",
250
+ "pt-BR": "Foto",
251
+ "pt-PT": "Foto",
252
+ ro: "Fotografie",
253
+ ru: "Фото",
254
+ tr: "Fotoğraf",
255
+ "sr-SP-Cy": "Фото",
256
+ "sr-SP-Lt": "Foto",
257
+ sk: "Fotografie",
258
+ sl: "Fotografija",
259
+ es: "Foto",
260
+ sv: "Foto",
261
+ ta: "புகைப்பட",
262
+ tl: "Larawan",
263
+ uk: "Фото"
264
+ }
265
+
266
+ const LISTING = {
267
+ "af-ZA": "Lys",
268
+ "sq-AL": "Listë",
269
+ ar: "قائمة",
270
+ ast: "Llista",
271
+ be: "Спіс",
272
+ br: "Roll",
273
+ bg: "Списък",
274
+ ca: "Llista",
275
+ "ca-ES-Valencia": "Llista",
276
+ "zh-CN": "清单",
277
+ da: "Liste",
278
+ nl: "Lijst",
279
+ "en-AU": "Listing",
280
+ "en-CA": "Listing",
281
+ "en-NZ": "Listing",
282
+ "en-ZA": "Listing",
283
+ "en-GB": "Listing",
284
+ "en-US": "Listing",
285
+ eo: "Listo",
286
+ fr: "Liste",
287
+ gl: "Listaxe",
288
+ "de-DE": "Listing",
289
+ "de-AU": "Listing",
290
+ "de-CH": "Listing",
291
+ el: "Λίστα",
292
+ he: "רשימה",
293
+ is: "Listi",
294
+ it: "Elenco",
295
+ ja: "リスト",
296
+ km: "បញ្ជី",
297
+ lt: "Sąrašas",
298
+ ml: "പട്ടിക",
299
+ "nb-NO": "Liste",
300
+ "nn-NO": "Liste",
301
+ fa: "فهرست",
302
+ pl: "Lista",
303
+ "pt-BR": "Listagem",
304
+ "pt-PT": "Listagem",
305
+ ro: "Listing",
306
+ ru: "Листинг",
307
+ tr: "Liste",
308
+ "sr-SP-Cy": "Листа",
309
+ "sr-SP-Lt": "Lista",
310
+ sk: "Zoznam",
311
+ sl: "Seznam",
312
+ es: "Listado",
313
+ sv: "Lista",
314
+ ta: "பட்டியல்",
315
+ tl: "Listahan",
316
+ uk: "Лістинг"
317
+ }
318
+
319
+ const EXAMPLE = {
320
+ "af-ZA": "Voorbeeld",
321
+ "sq-AL": "Shembull",
322
+ ar: "مثال",
323
+ ast: "Exemplu",
324
+ be: "Прыклад",
325
+ br: "Skouer",
326
+ bg: "Пример",
327
+ ca: "Exemple",
328
+ "ca-ES-Valencia": "Exemple",
329
+ "zh-CN": "示例",
330
+ da: "Eksempel",
331
+ nl: "Voorbeeld",
332
+ "en-AU": "Example",
333
+ "en-CA": "Example",
334
+ "en-NZ": "Example",
335
+ "en-ZA": "Example",
336
+ "en-GB": "Example",
337
+ "en-US": "Example",
338
+ eo: "Ekzemplo",
339
+ fr: "Exemple",
340
+ gl: "Exemplo",
341
+ "de-DE": "Beispiel",
342
+ "de-AU": "Beispiel",
343
+ "de-CH": "Beispiel",
344
+ el: "Παράδειγμα",
345
+ he: "דוגמה",
346
+ is: "Dæmi",
347
+ it: "Esempio",
348
+ ja: "例",
349
+ km: "ឧទាហរណ៍",
350
+ lt: "Pavyzdys",
351
+ ml: "ഉദാഹരണം",
352
+ "nb-NO": "Eksempel",
353
+ "nn-NO": "Eksempel",
354
+ fa: "مثال",
355
+ pl: "Przykład",
356
+ "pt-BR": "Exemplo",
357
+ "pt-PT": "Exemplo",
358
+ ro: "Exemplu",
359
+ ru: "Пример",
360
+ tr: "Örnek",
361
+ "sr-SP-Cy": "Пример",
362
+ "sr-SP-Lt": "Primer",
363
+ sk: "Príklad",
364
+ sl: "Primer",
365
+ es: "Ejemplo",
366
+ sv: "Exempel",
367
+ ta: "உதாரணம்",
368
+ tl: "Halimbawa",
369
+ uk: "Приклад"
370
+ }
371
+
372
+ const SNIPPET = {
373
+ "af-ZA": "Snipper",
374
+ "sq-AL": "Fragment",
375
+ ar: "مقتطف",
376
+ ast: "Fragmentu",
377
+ be: "Фрагмент",
378
+ br: "Tamm",
379
+ bg: "Фрагмент",
380
+ ca: "Fragment",
381
+ "ca-ES-Valencia": "Fragment",
382
+ "zh-CN": "片段",
383
+ da: "Uddrag",
384
+ nl: "Fragment",
385
+ "en-AU": "Snippet",
386
+ "en-CA": "Snippet",
387
+ "en-NZ": "Snippet",
388
+ "en-ZA": "Snippet",
389
+ "en-GB": "Snippet",
390
+ "en-US": "Snippet",
391
+ eo: "Fragmento",
392
+ fr: "Extrait",
393
+ gl: "Fragmento",
394
+ "de-DE": "Snippet",
395
+ "de-AU": "Snippet",
396
+ "de-CH": "Snippet",
397
+ el: "Απόσπασμα",
398
+ he: "קטע",
399
+ is: "Brot",
400
+ it: "Frammento",
401
+ ja: "スニペット",
402
+ km: "កម្មវិធីតូច",
403
+ lt: "Fragmentas",
404
+ ml: "സ്നിപ്പറ്റ്",
405
+ "nb-NO": "Utdrag",
406
+ "nn-NO": "Utdrag",
407
+ fa: "قطعه",
408
+ pl: "Fragment",
409
+ "pt-BR": "Trecho",
410
+ "pt-PT": "Excerto",
411
+ ro: "Fragment",
412
+ ru: "Фрагмент",
413
+ tr: "Parçacık",
414
+ "sr-SP-Cy": "Фрагмент",
415
+ "sr-SP-Lt": "Fragment",
416
+ sk: "Fragment",
417
+ sl: "Delček",
418
+ es: "Fragmento",
419
+ sv: "Utdrag",
420
+ ta: "துணுக்கு",
421
+ tl: "Snippet",
422
+ uk: "Фрагмент"
423
+ }
424
+
425
+ const TUTORIAL = {
426
+ "af-ZA": "Tutoriaal",
427
+ "sq-AL": "Udhëzues",
428
+ ar: "تعليمي",
429
+ ast: "Tutorial",
430
+ be: "Падручнік",
431
+ br: "Kelenn",
432
+ bg: "Урок",
433
+ ca: "Tutorial",
434
+ "ca-ES-Valencia": "Tutorial",
435
+ "zh-CN": "教程",
436
+ da: "Vejledning",
437
+ nl: "Tutorial",
438
+ "en-AU": "Tutorial",
439
+ "en-CA": "Tutorial",
440
+ "en-NZ": "Tutorial",
441
+ "en-ZA": "Tutorial",
442
+ "en-GB": "Tutorial",
443
+ "en-US": "Tutorial",
444
+ eo: "Instruilo",
445
+ fr: "Tutoriel",
446
+ gl: "Tutorial",
447
+ "de-DE": "Anleitung",
448
+ "de-AU": "Anleitung",
449
+ "de-CH": "Anleitung",
450
+ el: "Οδηγός",
451
+ he: "מדריך",
452
+ is: "Kennsla",
453
+ it: "Tutorial",
454
+ ja: "チュートリアル",
455
+ km: "ការបង្រៀន",
456
+ lt: "Vadovėlis",
457
+ ml: "പരിശീലനം",
458
+ "nb-NO": "Veiledning",
459
+ "nn-NO": "Rettleiing",
460
+ fa: "آموزش",
461
+ pl: "Samouczek",
462
+ "pt-BR": "Tutorial",
463
+ "pt-PT": "Tutorial",
464
+ ro: "Tutorial",
465
+ ru: "Учебник",
466
+ tr: "Öğretici",
467
+ "sr-SP-Cy": "Водич",
468
+ "sr-SP-Lt": "Vodič",
469
+ sk: "Návod",
470
+ sl: "Vadnica",
471
+ es: "Tutorial",
472
+ sv: "Handledning",
473
+ ta: "பயிற்சி",
474
+ tl: "Tutorial",
475
+ uk: "Посібник"
476
+ }
477
+
478
+ const EXERCISE = {
479
+ "af-ZA": "Oefening",
480
+ "sq-AL": "Ushtrim",
481
+ ar: "تمرين",
482
+ ast: "Exerciciu",
483
+ be: "Практыкаванне",
484
+ br: "Goulennadenn",
485
+ bg: "Упражнение",
486
+ ca: "Exercici",
487
+ "ca-ES-Valencia": "Exercici",
488
+ "zh-CN": "练习",
489
+ da: "Øvelse",
490
+ nl: "Oefening",
491
+ "en-AU": "Exercise",
492
+ "en-CA": "Exercise",
493
+ "en-NZ": "Exercise",
494
+ "en-ZA": "Exercise",
495
+ "en-GB": "Exercise",
496
+ "en-US": "Exercise",
497
+ eo: "Ekzerco",
498
+ fr: "Exercice",
499
+ gl: "Exercicio",
500
+ "de-DE": "Übung",
501
+ "de-AU": "Übung",
502
+ "de-CH": "Übung",
503
+ el: "Άσκηση",
504
+ he: "תרגיל",
505
+ is: "Æfing",
506
+ it: "Esercizio",
507
+ ja: "演習",
508
+ km: "លំហាត់",
509
+ lt: "Pratimas",
510
+ ml: "അഭ്യാസം",
511
+ "nb-NO": "Øvelse",
512
+ "nn-NO": "Øving",
513
+ fa: "تمرین",
514
+ pl: "Ćwiczenie",
515
+ "pt-BR": "Exercício",
516
+ "pt-PT": "Exercício",
517
+ ro: "Exercițiu",
518
+ ru: "Упражнение",
519
+ tr: "Alıştırma",
520
+ "sr-SP-Cy": "Вежба",
521
+ "sr-SP-Lt": "Vežba",
522
+ sk: "Cvičenie",
523
+ sl: "Vaja",
524
+ es: "Ejercicio",
525
+ sv: "Övning",
526
+ ta: "பயிற்சி",
527
+ tl: "Ehersisyo",
528
+ uk: "Вправа"
529
+ }
530
+
531
+ const EXERCISE_SOLUTION = {
532
+ "af-ZA": "Oplossing",
533
+ "sq-AL": "Zgjidhje",
534
+ ar: "حل",
535
+ ast: "Solución",
536
+ be: "Рашэнне",
537
+ br: "Diskoulm",
538
+ bg: "Решение",
539
+ ca: "Solució",
540
+ "ca-ES-Valencia": "Solució",
541
+ "zh-CN": "解答",
542
+ da: "Løsning",
543
+ nl: "Oplossing",
544
+ "en-AU": "Solution",
545
+ "en-CA": "Solution",
546
+ "en-NZ": "Solution",
547
+ "en-ZA": "Solution",
548
+ "en-GB": "Solution",
549
+ "en-US": "Solution",
550
+ eo: "Solvo",
551
+ fr: "Solution",
552
+ gl: "Solución",
553
+ "de-DE": "Lösung",
554
+ "de-AU": "Lösung",
555
+ "de-CH": "Lösung",
556
+ el: "Λύση",
557
+ he: "פתרון",
558
+ is: "Lausn",
559
+ it: "Soluzione",
560
+ ja: "解答",
561
+ km: "ដំណោះស្រាយ",
562
+ lt: "Sprendimas",
563
+ ml: "പരിഹാരം",
564
+ "nb-NO": "Løsning",
565
+ "nn-NO": "Løysing",
566
+ fa: "راه حل",
567
+ pl: "Rozwiązanie",
568
+ "pt-BR": "Solução",
569
+ "pt-PT": "Solução",
570
+ ro: "Soluție",
571
+ ru: "Решение",
572
+ tr: "Çözüm",
573
+ "sr-SP-Cy": "Решење",
574
+ "sr-SP-Lt": "Rešenje",
575
+ sk: "Riešenie",
576
+ sl: "Rešitev",
577
+ es: "Solución",
578
+ sv: "Lösning",
579
+ ta: "தீர்வு",
580
+ tl: "Solusyon",
581
+ uk: "Розв'язок"
582
+ }
583
+
584
+ export const CATS = {
585
+ figure: FIGURE,
586
+ equation: EQUATION,
587
+ table: TABLE,
588
+ photo: PHOTO,
589
+ listing: LISTING,
590
+ example: EXAMPLE,
591
+ snippet: SNIPPET,
592
+ tutorial: TUTORIAL,
593
+ exercise: EXERCISE,
594
+ exercise_solution: EXERCISE_SOLUTION
595
+ }
@@ -0,0 +1,5 @@
1
+ /** The current Fidus Writer document version.
2
+ * The importer will not import from a higher version and the exporter
3
+ * will include this number in all exports.
4
+ */
5
+ export const FW_DOCUMENT_VERSION = "3.6"
@@ -0,0 +1,61 @@
1
+ import deepEqual from "fast-deep-equal"
2
+
3
+ export function toMiniJSON(node) {
4
+ // Similar to the ProseMirror internal toJSON function,
5
+ // but leaving out attributes that have default values and dealing with
6
+ // attributes that are objects.
7
+ // Adapted from https://github.com/ProseMirror/prosemirror-model/blob/6d970507cd0da48653d3b72f2731a71a144a364b/src/node.js#L340-L351
8
+ const obj = {type: node.type.name}
9
+ for (const attr in node.attrs) {
10
+ if (!deepEqual(node.type.attrs[attr].default, node.attrs[attr])) {
11
+ if (!obj.attrs) {
12
+ obj.attrs = {}
13
+ }
14
+ obj.attrs[attr] = ["string", "number", "boolean"].includes(
15
+ typeof node.attrs[attr]
16
+ )
17
+ ? node.attrs[attr]
18
+ : JSON.parse(JSON.stringify(node.attrs[attr]))
19
+ }
20
+ }
21
+ if (node.content.size) {
22
+ obj.content = node.content.content.map(childNode =>
23
+ toMiniJSON(childNode)
24
+ )
25
+ }
26
+
27
+ if (node.marks.length) {
28
+ obj.marks = node.marks.map(mark => toMiniMarkJSON(mark))
29
+ }
30
+
31
+ if (node.text) {
32
+ obj.text = node.text
33
+ }
34
+
35
+ return obj
36
+ }
37
+
38
+ function toMiniMarkJSON(mark) {
39
+ // Adapted from https://github.com/ProseMirror/prosemirror-model/blob/6d970507cd0da48653d3b72f2731a71a144a364b/src/mark.js#L76-L83
40
+ const obj = {type: mark.type.name}
41
+ for (const attr in mark.attrs) {
42
+ if (!deepEqual(mark.type.attrs[attr].default, mark.attrs[attr])) {
43
+ if (!obj.attrs) {
44
+ obj.attrs = {}
45
+ }
46
+ obj.attrs[attr] = ["string", "number", "boolean"].includes(
47
+ typeof mark.attrs[attr]
48
+ )
49
+ ? mark.attrs[attr]
50
+ : JSON.parse(JSON.stringify(mark.attrs[attr]))
51
+ }
52
+ }
53
+ return obj
54
+ }
55
+
56
+ export function toFullJSON(miniJson, schema) {
57
+ if (!miniJson.type) {
58
+ miniJson.type = "doc"
59
+ }
60
+ return schema.nodeFromJSON(miniJson).toJSON()
61
+ }
@@ -0,0 +1,22 @@
1
+ export function getNonDeletedTextContent(topNode) {
2
+ let text = ""
3
+ topNode.descendants(node => {
4
+ if (
5
+ node.marks.find(mark => mark.type.name === "deletion") ||
6
+ (node.attrs &&
7
+ (node.attrs.track?.find(track => track.type === "deletion") ||
8
+ node.attrs.hidden))
9
+ ) {
10
+ return
11
+ } else if (node.isBlock) {
12
+ text += "\n"
13
+ } else if (node.isText) {
14
+ text += node.text
15
+ }
16
+ })
17
+ return text
18
+ .replace(/(^\s*)|(\s*$)/gi, "")
19
+ .replace(/[ ]{2,}/gi, " ")
20
+ .replace(/\n /, "\n")
21
+ .replace(/\n{2,}/gi, "\n")
22
+ }