@diplodoc/cli-tests 5.13.0 → 5.13.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 (23) hide show
  1. package/e2e/__snapshots__/skip-html-extension.spec.ts.snap +381 -14
  2. package/e2e/skip-html-extension.spec.ts +16 -4
  3. package/mocks/skip-html-extension/multilingual/input/.yfm +2 -0
  4. package/mocks/skip-html-extension/multilingual/input/en/folder/index.md +1 -0
  5. package/mocks/skip-html-extension/multilingual/input/en/index-test-html/index.md +4 -0
  6. package/mocks/skip-html-extension/multilingual/input/en/index.md +6 -0
  7. package/mocks/skip-html-extension/multilingual/input/en/page1.md +3 -0
  8. package/mocks/skip-html-extension/multilingual/input/en/page2.md +6 -0
  9. package/mocks/skip-html-extension/multilingual/input/en/toc.yaml +13 -0
  10. package/mocks/skip-html-extension/multilingual/input/ru/folder/index.md +1 -0
  11. package/mocks/skip-html-extension/multilingual/input/ru/index-test-html/index.md +4 -0
  12. package/mocks/skip-html-extension/multilingual/input/ru/index.md +5 -0
  13. package/mocks/skip-html-extension/multilingual/input/ru/page1.md +3 -0
  14. package/mocks/skip-html-extension/multilingual/input/ru/page2.md +6 -0
  15. package/mocks/skip-html-extension/multilingual/input/ru/toc.yaml +12 -0
  16. package/package.json +1 -1
  17. /package/mocks/skip-html-extension/{input → monolingual/input}/.yfm +0 -0
  18. /package/mocks/skip-html-extension/{input → monolingual/input}/folder/index.md +0 -0
  19. /package/mocks/skip-html-extension/{input → monolingual/input}/index-test-html/index.md +0 -0
  20. /package/mocks/skip-html-extension/{input → monolingual/input}/index.md +0 -0
  21. /package/mocks/skip-html-extension/{input → monolingual/input}/page1.md +0 -0
  22. /package/mocks/skip-html-extension/{input → monolingual/input}/page2.md +0 -0
  23. /package/mocks/skip-html-extension/{input → monolingual/input}/toc.yaml +0 -0
@@ -1,6 +1,6 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`Skip html extension > transforms links correctly > filelist 1`] = `
3
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs > filelist 1`] = `
4
4
  "[
5
5
  ".yfm",
6
6
  "folder/index.html",
@@ -12,12 +12,12 @@ exports[`Skip html extension > transforms links correctly > filelist 1`] = `
12
12
  ]"
13
13
  `;
14
14
 
15
- exports[`Skip html extension > transforms links correctly 1`] = `
15
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 1`] = `
16
16
  "allowHTML: true
17
17
  "
18
18
  `;
19
19
 
20
- exports[`Skip html extension > transforms links correctly 2`] = `
20
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 2`] = `
21
21
  "<!DOCTYPE html>
22
22
  <html lang="ru" dir="ltr">
23
23
  <head>
@@ -45,7 +45,7 @@ exports[`Skip html extension > transforms links correctly 2`] = `
45
45
  </html>"
46
46
  `;
47
47
 
48
- exports[`Skip html extension > transforms links correctly 3`] = `
48
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 3`] = `
49
49
  "<!DOCTYPE html>
50
50
  <html lang="ru" dir="ltr">
51
51
  <head>
@@ -73,27 +73,35 @@ exports[`Skip html extension > transforms links correctly 3`] = `
73
73
  </html>"
74
74
  `;
75
75
 
76
- exports[`Skip html extension > transforms links correctly 4`] = `
76
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 4`] = `
77
77
  "<!DOCTYPE html>
78
78
  <html lang="ru" dir="ltr">
79
79
  <head>
80
80
  <meta charset="utf-8">
81
81
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
82
82
  <base href="./" />
83
- <title>Redirect to ./ru</title>
84
- <meta http-equiv="refresh" content="0; url=./ru">
83
+ <title>Header | Skip html extension</title>
84
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
85
85
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
86
- <script type="application/javascript">
87
- window.location.replace("./ru");
88
- </script>
89
86
  </head>
90
87
  <body class="g-root g-root_theme_light">
91
- If you are not redirected automatically, follow this <a href="./ru">link</a>.
88
+ <div id="root"></div>
89
+ <script type="application/json" id="diplodoc-state">
90
+ {"data":{"leading":false,"html":"&lt;p&gt;Content&lt;/p&gt;/n&lt;p&gt;&lt;a href=\\"page1\\"&gt;Link 1&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"page2\\"&gt;Link 2&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.md"},"headings":[],"title":"Header"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
91
+ </script>
92
+ <script type="application/javascript">
93
+ const data = document.querySelector('script#diplodoc-state');
94
+ window.__DATA__ = JSON.parse((function unescape(string) {
95
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
96
+ })(data.innerText));
97
+ window.STATIC_CONTENT = false;
98
+ </script>
99
+ <script type="application/javascript" defer src="toc.js"></script>
92
100
  </body>
93
101
  </html>"
94
102
  `;
95
103
 
96
- exports[`Skip html extension > transforms links correctly 5`] = `
104
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 5`] = `
97
105
  "<!DOCTYPE html>
98
106
  <html lang="ru" dir="ltr">
99
107
  <head>
@@ -121,7 +129,7 @@ exports[`Skip html extension > transforms links correctly 5`] = `
121
129
  </html>"
122
130
  `;
123
131
 
124
- exports[`Skip html extension > transforms links correctly 6`] = `
132
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 6`] = `
125
133
  "<!DOCTYPE html>
126
134
  <html lang="ru" dir="ltr">
127
135
  <head>
@@ -149,4 +157,363 @@ exports[`Skip html extension > transforms links correctly 6`] = `
149
157
  </html>"
150
158
  `;
151
159
 
152
- exports[`Skip html extension > transforms links correctly 7`] = `"window.__DATA__.data.toc = {"title":"Skip html extension","href":".","items":[{"name":"Title 1","href":"page1","id":"UUID"},{"name":"Title 2","href":"page2","id":"UUID"},{"name":"Title 3","href":"folder/","id":"UUID"},{"name":"Title 4","href":"index-test-html/","id":"UUID"}],"path":"toc.yaml","id":"UUID"};"`;
160
+ exports[`Skip html extension > correctly trims .html and index.html on monolingual docs 7`] = `"window.__DATA__.data.toc = {"title":"Skip html extension","href":".","items":[{"name":"Title 1","href":"page1","id":"UUID"},{"name":"Title 2","href":"page2","id":"UUID"},{"name":"Title 3","href":"folder/","id":"UUID"},{"name":"Title 4","href":"index-test-html/","id":"UUID"}],"path":"toc.yaml","id":"UUID"};"`;
161
+
162
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs > filelist 1`] = `
163
+ "[
164
+ ".yfm",
165
+ "en/folder/index.html",
166
+ "en/index-test-html/index.html",
167
+ "en/index.html",
168
+ "en/page1.html",
169
+ "en/page2.html",
170
+ "en/toc.js",
171
+ "index.html",
172
+ "ru/folder/index.html",
173
+ "ru/index-test-html/index.html",
174
+ "ru/index.html",
175
+ "ru/page1.html",
176
+ "ru/page2.html",
177
+ "ru/toc.js"
178
+ ]"
179
+ `;
180
+
181
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 1`] = `
182
+ "allowHTML: true
183
+ langs: ['en','ru']
184
+ "
185
+ `;
186
+
187
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 2`] = `
188
+ "<!DOCTYPE html>
189
+ <html lang="en" dir="ltr">
190
+ <head>
191
+ <meta charset="utf-8">
192
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
193
+ <base href="../../" />
194
+ <title>Page 3 | Skip html extension</title>
195
+ <link rel="canonical" href="en/folder/">
196
+ <link rel="alternate" href="en/folder/" hreflang="en" />
197
+ <link rel="alternate" href="ru/folder/" hreflang="ru" />
198
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
199
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
200
+ </head>
201
+ <body class="g-root g-root_theme_light">
202
+ <div id="root"></div>
203
+ <script type="application/json" id="diplodoc-state">
204
+ {"data":{"leading":false,"html":"","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/folder/","hreflang":"en"},{"href":"ru/folder/","hreflang":"ru"}],"canonical":"en/folder/","vcsPath":"en/folder/index.md"},"headings":[],"title":"Page 3"},"router":{"pathname":"en/folder/index","depth":3,"base":"../../"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
205
+ </script>
206
+ <script type="application/javascript">
207
+ const data = document.querySelector('script#diplodoc-state');
208
+ window.__DATA__ = JSON.parse((function unescape(string) {
209
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
210
+ })(data.innerText));
211
+ window.STATIC_CONTENT = false;
212
+ </script>
213
+ <script type="application/javascript" defer src="en/toc.js"></script>
214
+ </body>
215
+ </html>"
216
+ `;
217
+
218
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 3`] = `
219
+ "<!DOCTYPE html>
220
+ <html lang="en" dir="ltr">
221
+ <head>
222
+ <meta charset="utf-8">
223
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
224
+ <base href="../../" />
225
+ <title>Folder | Skip html extension</title>
226
+ <link rel="canonical" href="en/index-test-html/">
227
+ <link rel="alternate" href="en/index-test-html/" hreflang="en" />
228
+ <link rel="alternate" href="ru/index-test-html/" hreflang="ru" />
229
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
230
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
231
+ </head>
232
+ <body class="g-root g-root_theme_light">
233
+ <div id="root"></div>
234
+ <script type="application/json" id="diplodoc-state">
235
+ {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"en/page1\\"&gt;Link 1&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"en/page2\\"&gt;Link 2&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/index-test-html/","hreflang":"en"},{"href":"ru/index-test-html/","hreflang":"ru"}],"canonical":"en/index-test-html/","vcsPath":"en/index-test-html/index.md"},"headings":[],"title":"Folder"},"router":{"pathname":"en/index-test-html/index","depth":3,"base":"../../"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
236
+ </script>
237
+ <script type="application/javascript">
238
+ const data = document.querySelector('script#diplodoc-state');
239
+ window.__DATA__ = JSON.parse((function unescape(string) {
240
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
241
+ })(data.innerText));
242
+ window.STATIC_CONTENT = false;
243
+ </script>
244
+ <script type="application/javascript" defer src="en/toc.js"></script>
245
+ </body>
246
+ </html>"
247
+ `;
248
+
249
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 4`] = `
250
+ "<!DOCTYPE html>
251
+ <html lang="en" dir="ltr">
252
+ <head>
253
+ <meta charset="utf-8">
254
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
255
+ <base href="../" />
256
+ <title>Header | Skip html extension</title>
257
+ <link rel="canonical" href="en/">
258
+ <link rel="alternate" href="en/" hreflang="en" />
259
+ <link rel="alternate" href="ru/" hreflang="ru" />
260
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
261
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
262
+ </head>
263
+ <body class="g-root g-root_theme_light">
264
+ <div id="root"></div>
265
+ <script type="application/json" id="diplodoc-state">
266
+ {"data":{"leading":false,"html":"&lt;p&gt;Content&lt;/p&gt;/n&lt;p&gt;&lt;a href=\\"en/page1\\"&gt;Link 1&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"en/page2\\"&gt;Link 2&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/","hreflang":"en"},{"href":"ru/","hreflang":"ru"}],"canonical":"en/","vcsPath":"en/index.md"},"headings":[],"title":"Header"},"router":{"pathname":"en/index","depth":2,"base":"../"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
267
+ </script>
268
+ <script type="application/javascript">
269
+ const data = document.querySelector('script#diplodoc-state');
270
+ window.__DATA__ = JSON.parse((function unescape(string) {
271
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
272
+ })(data.innerText));
273
+ window.STATIC_CONTENT = false;
274
+ </script>
275
+ <script type="application/javascript" defer src="en/toc.js"></script>
276
+ </body>
277
+ </html>"
278
+ `;
279
+
280
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 5`] = `
281
+ "<!DOCTYPE html>
282
+ <html lang="en" dir="ltr">
283
+ <head>
284
+ <meta charset="utf-8">
285
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
286
+ <base href="../" />
287
+ <title>Page 1 | Skip html extension</title>
288
+ <link rel="canonical" href="en/page1">
289
+ <link rel="alternate" href="en/page1" hreflang="en" />
290
+ <link rel="alternate" href="ru/page1" hreflang="ru" />
291
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
292
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
293
+ </head>
294
+ <body class="g-root g-root_theme_light">
295
+ <div id="root"></div>
296
+ <script type="application/json" id="diplodoc-state">
297
+ {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"en/page2#hash\\"&gt;Link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/page1","hreflang":"en"},{"href":"ru/page1","hreflang":"ru"}],"canonical":"en/page1","vcsPath":"en/page1.md"},"headings":[],"title":"Page 1"},"router":{"pathname":"en/page1","depth":2,"base":"../"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
298
+ </script>
299
+ <script type="application/javascript">
300
+ const data = document.querySelector('script#diplodoc-state');
301
+ window.__DATA__ = JSON.parse((function unescape(string) {
302
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
303
+ })(data.innerText));
304
+ window.STATIC_CONTENT = false;
305
+ </script>
306
+ <script type="application/javascript" defer src="en/toc.js"></script>
307
+ </body>
308
+ </html>"
309
+ `;
310
+
311
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 6`] = `
312
+ "<!DOCTYPE html>
313
+ <html lang="en" dir="ltr">
314
+ <head>
315
+ <meta charset="utf-8">
316
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
317
+ <base href="../" />
318
+ <title>Page 2 | Skip html extension</title>
319
+ <link rel="canonical" href="en/page2">
320
+ <link rel="alternate" href="en/page2" hreflang="en" />
321
+ <link rel="alternate" href="ru/page2" hreflang="ru" />
322
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
323
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
324
+ </head>
325
+ <body class="g-root g-root_theme_light">
326
+ <div id="root"></div>
327
+ <script type="application/json" id="diplodoc-state">
328
+ {"data":{"leading":false,"html":"&lt;h2 id=\\"hash\\"&gt;&lt;a href=\\"en/page2#hash\\" class=\\"yfm-anchor\\" aria-hidden=\\"true\\"&gt;&lt;span class=\\"visually-hidden\\" data-no-index=\\"true\\"&gt;hash&lt;/span&gt;&lt;/a&gt;hash&lt;/h2&gt;/n&lt;p&gt;&lt;a href=\\"en/folder/\\"&gt;Link&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"https://example.com\\" target=\\"_blank\\" rel=\\"noreferrer noopener\\"&gt;External link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/page2","hreflang":"en"},{"href":"ru/page2","hreflang":"ru"}],"canonical":"en/page2","vcsPath":"en/page2.md"},"headings":[{"title":"hash","href":"en/page2#hash","level":2}],"title":"Page 2"},"router":{"pathname":"en/page2","depth":2,"base":"../"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
329
+ </script>
330
+ <script type="application/javascript">
331
+ const data = document.querySelector('script#diplodoc-state');
332
+ window.__DATA__ = JSON.parse((function unescape(string) {
333
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
334
+ })(data.innerText));
335
+ window.STATIC_CONTENT = false;
336
+ </script>
337
+ <script type="application/javascript" defer src="en/toc.js"></script>
338
+ </body>
339
+ </html>"
340
+ `;
341
+
342
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 7`] = `"window.__DATA__.data.toc = {"title":"Skip html extension","href":"en/","items":[{"name":"Title 1","href":"en/page1","id":"UUID"},{"name":"Title 2","href":"en/page2","id":"UUID"},{"name":"Title 3","href":"en/folder/","id":"UUID"},{"name":"Title 4","href":"en/index-test-html/","id":"UUID"}],"path":"en/toc.yaml","id":"UUID"};"`;
343
+
344
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 8`] = `
345
+ "<!DOCTYPE html>
346
+ <html lang="en" dir="ltr">
347
+ <head>
348
+ <meta charset="utf-8">
349
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
350
+ <base href="./" />
351
+ <title>Redirect to ./en</title>
352
+ <meta http-equiv="refresh" content="0; url=./en">
353
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
354
+ <script type="application/javascript">
355
+ window.location.replace("./en");
356
+ </script>
357
+ </head>
358
+ <body class="g-root g-root_theme_light">
359
+ If you are not redirected automatically, follow this <a href="./en">link</a>.
360
+ </body>
361
+ </html>"
362
+ `;
363
+
364
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 9`] = `
365
+ "<!DOCTYPE html>
366
+ <html lang="ru" dir="ltr">
367
+ <head>
368
+ <meta charset="utf-8">
369
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
370
+ <base href="../../" />
371
+ <title>Страница 3 | Пропустить расширение HTMLы</title>
372
+ <link rel="canonical" href="ru/folder/">
373
+ <link rel="alternate" href="en/folder/" hreflang="en" />
374
+ <link rel="alternate" href="ru/folder/" hreflang="ru" />
375
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
376
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
377
+ </head>
378
+ <body class="g-root g-root_theme_light">
379
+ <div id="root"></div>
380
+ <script type="application/json" id="diplodoc-state">
381
+ {"data":{"leading":false,"html":"","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/folder/","hreflang":"en"},{"href":"ru/folder/","hreflang":"ru"}],"canonical":"ru/folder/","vcsPath":"ru/folder/index.md"},"headings":[],"title":"Страница 3"},"router":{"pathname":"ru/folder/index","depth":3,"base":"../../"},"lang":"ru","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
382
+ </script>
383
+ <script type="application/javascript">
384
+ const data = document.querySelector('script#diplodoc-state');
385
+ window.__DATA__ = JSON.parse((function unescape(string) {
386
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
387
+ })(data.innerText));
388
+ window.STATIC_CONTENT = false;
389
+ </script>
390
+ <script type="application/javascript" defer src="ru/toc.js"></script>
391
+ </body>
392
+ </html>"
393
+ `;
394
+
395
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 10`] = `
396
+ "<!DOCTYPE html>
397
+ <html lang="ru" dir="ltr">
398
+ <head>
399
+ <meta charset="utf-8">
400
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
401
+ <base href="../../" />
402
+ <title>Папка | Пропустить расширение HTMLы</title>
403
+ <link rel="canonical" href="ru/index-test-html/">
404
+ <link rel="alternate" href="en/index-test-html/" hreflang="en" />
405
+ <link rel="alternate" href="ru/index-test-html/" hreflang="ru" />
406
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
407
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
408
+ </head>
409
+ <body class="g-root g-root_theme_light">
410
+ <div id="root"></div>
411
+ <script type="application/json" id="diplodoc-state">
412
+ {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"ru/page1\\"&gt;Ссылка 1&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"ru/page2\\"&gt;Ссылка 2&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/index-test-html/","hreflang":"en"},{"href":"ru/index-test-html/","hreflang":"ru"}],"canonical":"ru/index-test-html/","vcsPath":"ru/index-test-html/index.md"},"headings":[],"title":"Папка"},"router":{"pathname":"ru/index-test-html/index","depth":3,"base":"../../"},"lang":"ru","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
413
+ </script>
414
+ <script type="application/javascript">
415
+ const data = document.querySelector('script#diplodoc-state');
416
+ window.__DATA__ = JSON.parse((function unescape(string) {
417
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
418
+ })(data.innerText));
419
+ window.STATIC_CONTENT = false;
420
+ </script>
421
+ <script type="application/javascript" defer src="ru/toc.js"></script>
422
+ </body>
423
+ </html>"
424
+ `;
425
+
426
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 11`] = `
427
+ "<!DOCTYPE html>
428
+ <html lang="ru" dir="ltr">
429
+ <head>
430
+ <meta charset="utf-8">
431
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
432
+ <base href="../" />
433
+ <title>Хэдер | Пропустить расширение HTMLы</title>
434
+ <link rel="canonical" href="ru/">
435
+ <link rel="alternate" href="en/" hreflang="en" />
436
+ <link rel="alternate" href="ru/" hreflang="ru" />
437
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
438
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
439
+ </head>
440
+ <body class="g-root g-root_theme_light">
441
+ <div id="root"></div>
442
+ <script type="application/json" id="diplodoc-state">
443
+ {"data":{"leading":false,"html":"&lt;p&gt;Контент&lt;/p&gt;/n&lt;p&gt;&lt;a href=\\"ru/page1\\"&gt;Ссылка 1&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/","hreflang":"en"},{"href":"ru/","hreflang":"ru"}],"canonical":"ru/","vcsPath":"ru/index.md"},"headings":[],"title":"Хэдер"},"router":{"pathname":"ru/index","depth":2,"base":"../"},"lang":"ru","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
444
+ </script>
445
+ <script type="application/javascript">
446
+ const data = document.querySelector('script#diplodoc-state');
447
+ window.__DATA__ = JSON.parse((function unescape(string) {
448
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
449
+ })(data.innerText));
450
+ window.STATIC_CONTENT = false;
451
+ </script>
452
+ <script type="application/javascript" defer src="ru/toc.js"></script>
453
+ </body>
454
+ </html>"
455
+ `;
456
+
457
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 12`] = `
458
+ "<!DOCTYPE html>
459
+ <html lang="ru" dir="ltr">
460
+ <head>
461
+ <meta charset="utf-8">
462
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
463
+ <base href="../" />
464
+ <title>Страница 1 | Пропустить расширение HTMLы</title>
465
+ <link rel="canonical" href="ru/page1">
466
+ <link rel="alternate" href="en/page1" hreflang="en" />
467
+ <link rel="alternate" href="ru/page1" hreflang="ru" />
468
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
469
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
470
+ </head>
471
+ <body class="g-root g-root_theme_light">
472
+ <div id="root"></div>
473
+ <script type="application/json" id="diplodoc-state">
474
+ {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"ru/page2#hash\\"&gt;Link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/page1","hreflang":"en"},{"href":"ru/page1","hreflang":"ru"}],"canonical":"ru/page1","vcsPath":"ru/page1.md"},"headings":[],"title":"Страница 1"},"router":{"pathname":"ru/page1","depth":2,"base":"../"},"lang":"ru","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
475
+ </script>
476
+ <script type="application/javascript">
477
+ const data = document.querySelector('script#diplodoc-state');
478
+ window.__DATA__ = JSON.parse((function unescape(string) {
479
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
480
+ })(data.innerText));
481
+ window.STATIC_CONTENT = false;
482
+ </script>
483
+ <script type="application/javascript" defer src="ru/toc.js"></script>
484
+ </body>
485
+ </html>"
486
+ `;
487
+
488
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 13`] = `
489
+ "<!DOCTYPE html>
490
+ <html lang="ru" dir="ltr">
491
+ <head>
492
+ <meta charset="utf-8">
493
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
494
+ <base href="../" />
495
+ <title>Страница 2 | Пропустить расширение HTMLы</title>
496
+ <link rel="canonical" href="ru/page2">
497
+ <link rel="alternate" href="en/page2" hreflang="en" />
498
+ <link rel="alternate" href="ru/page2" hreflang="ru" />
499
+ <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
500
+ <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
501
+ </head>
502
+ <body class="g-root g-root_theme_light">
503
+ <div id="root"></div>
504
+ <script type="application/json" id="diplodoc-state">
505
+ {"data":{"leading":false,"html":"&lt;h2 id=\\"hesh\\"&gt;&lt;a href=\\"ru/page2#hesh\\" class=\\"yfm-anchor\\" aria-hidden=\\"true\\"&gt;&lt;span class=\\"visually-hidden\\" data-no-index=\\"true\\"&gt;хэш&lt;/span&gt;&lt;/a&gt;хэш&lt;/h2&gt;/n&lt;p&gt;&lt;a href=\\"ru/folder/\\"&gt;Ссылка&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"https://example.com\\" target=\\"_blank\\" rel=\\"noreferrer noopener\\"&gt;Внешняя ссылка&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/page2","hreflang":"en"},{"href":"ru/page2","hreflang":"ru"}],"canonical":"ru/page2","vcsPath":"ru/page2.md"},"headings":[{"title":"хэш","href":"ru/page2#hesh","level":2}],"title":"Страница 2"},"router":{"pathname":"ru/page2","depth":2,"base":"../"},"lang":"ru","langs":["en","ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
506
+ </script>
507
+ <script type="application/javascript">
508
+ const data = document.querySelector('script#diplodoc-state');
509
+ window.__DATA__ = JSON.parse((function unescape(string) {
510
+ return string.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
511
+ })(data.innerText));
512
+ window.STATIC_CONTENT = false;
513
+ </script>
514
+ <script type="application/javascript" defer src="ru/toc.js"></script>
515
+ </body>
516
+ </html>"
517
+ `;
518
+
519
+ exports[`Skip html extension > correctly trims .html and index.html on multilingual docs 14`] = `"window.__DATA__.data.toc = {"title":"Пропустить расширение HTMLы","href":"ru/","items":[{"name":"Заголовок 1","href":"ru/page1","id":"UUID"},{"name":"Заголовок 2","href":"ru/page2","id":"UUID"},{"name":"Заголовок 3","href":"ru/folder/","id":"UUID"},{"name":"Заголовок 4","href":"ru/index-test-html/","id":"UUID"}],"path":"ru/toc.yaml","id":"UUID"};"`;
@@ -1,10 +1,10 @@
1
- import {describe, it} from 'vitest';
1
+ import {describe, test} from 'vitest';
2
2
 
3
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
4
4
 
5
- describe('Skip html extension', () => {
6
- it('transforms links correctly', async () => {
7
- const {inputPath, outputPath} = getTestPaths('mocks/skip-html-extension');
5
+ const generateMapTestTemplate = (testTitle: string, testRootPath: string) => {
6
+ test(testTitle, async () => {
7
+ const {inputPath, outputPath} = getTestPaths(testRootPath);
8
8
 
9
9
  await TestAdapter.testBuildPass(inputPath, outputPath, {
10
10
  md2md: false,
@@ -13,4 +13,16 @@ describe('Skip html extension', () => {
13
13
  });
14
14
  await compareDirectories(outputPath);
15
15
  });
16
+ };
17
+
18
+ describe('Skip html extension', () => {
19
+ generateMapTestTemplate(
20
+ 'correctly trims .html and index.html on multilingual docs',
21
+ 'mocks/skip-html-extension/multilingual',
22
+ );
23
+
24
+ generateMapTestTemplate(
25
+ 'correctly trims .html and index.html on monolingual docs',
26
+ 'mocks/skip-html-extension/monolingual',
27
+ );
16
28
  });
@@ -0,0 +1,2 @@
1
+ allowHTML: true
2
+ langs: ['en','ru']
@@ -0,0 +1,4 @@
1
+ # Folder
2
+
3
+ [Link 1](../page1.md)
4
+ [Link 2](../page2.md)
@@ -0,0 +1,6 @@
1
+ # Header
2
+
3
+ Content
4
+
5
+ [Link 1](page1.md)
6
+ [Link 2](page2.md)
@@ -0,0 +1,3 @@
1
+ # Page 1
2
+
3
+ [Link](page2.md#hash)
@@ -0,0 +1,6 @@
1
+ # Page 2
2
+
3
+ ## hash
4
+
5
+ [Link](./folder/index.md)
6
+ [External link](https://example.com)
@@ -0,0 +1,13 @@
1
+ title: Skip html extension
2
+ href: index.md
3
+
4
+ items:
5
+ - name: Title 1
6
+ href: page1.md
7
+ - name: Title 2
8
+ href: page2.md
9
+ - name: Title 3
10
+ href: ./folder/index.md
11
+ - name: Title 4
12
+ href: ./index-test-html/index.md
13
+
@@ -0,0 +1 @@
1
+ # Страница 3
@@ -0,0 +1,4 @@
1
+ # Папка
2
+
3
+ [Ссылка 1](../page1.md)
4
+ [Ссылка 2](../page2.md)
@@ -0,0 +1,5 @@
1
+ # Хэдер
2
+
3
+ Контент
4
+
5
+ [Ссылка 1](page1.md)
@@ -0,0 +1,3 @@
1
+ # Страница 1
2
+
3
+ [Link](page2.md#hash)
@@ -0,0 +1,6 @@
1
+ # Страница 2
2
+
3
+ ## хэш
4
+
5
+ [Ссылка](./folder/index.md)
6
+ [Внешняя ссылка](https://example.com)
@@ -0,0 +1,12 @@
1
+ title: Пропустить расширение HTMLы
2
+ href: index.md
3
+
4
+ items:
5
+ - name: Заголовок 1
6
+ href: page1.md
7
+ - name: Заголовок 2
8
+ href: page2.md
9
+ - name: Заголовок 3
10
+ href: ./folder/index.md
11
+ - name: Заголовок 4
12
+ href: ./index-test-html/index.md
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/cli-tests",
3
- "version": "5.13.0",
3
+ "version": "5.13.1",
4
4
  "bin": {
5
5
  "diplodoc-cli-test": "bin.mjs"
6
6
  },