@diplodoc/cli-tests 5.20.0 → 5.21.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.
Files changed (27) hide show
  1. package/e2e/__snapshots__/cleanup-empty-dirs.spec.ts.snap +71 -0
  2. package/e2e/__snapshots__/{conditions.spec.ts.snap → vars-conditions.spec.ts.snap} +10 -10
  3. package/e2e/cleanup-empty-dirs.spec.ts +59 -0
  4. package/e2e/errors.spec.ts +3 -3
  5. package/e2e/{conditions.spec.ts → vars-conditions.spec.ts} +3 -3
  6. package/mocks/cleanup-empty-dirs/input/.yfm +2 -0
  7. package/mocks/cleanup-empty-dirs/input/active/page.md +5 -0
  8. package/mocks/cleanup-empty-dirs/input/active/presets.yaml +2 -0
  9. package/mocks/cleanup-empty-dirs/input/active/toc.yaml +4 -0
  10. package/mocks/cleanup-empty-dirs/input/empty-section/page.md +5 -0
  11. package/mocks/cleanup-empty-dirs/input/empty-section/presets.yaml +2 -0
  12. package/mocks/cleanup-empty-dirs/input/empty-section/toc.yaml +5 -0
  13. package/mocks/cleanup-empty-dirs/input/index.md +5 -0
  14. package/mocks/cleanup-empty-dirs/input/presets.yaml +2 -0
  15. package/mocks/cleanup-empty-dirs/input/toc.yaml +5 -0
  16. package/mocks/vars-conditions/input/index.md +3 -0
  17. package/mocks/{conditions → vars-conditions}/input/page1.yaml +3 -4
  18. package/mocks/{conditions → vars-conditions}/input/page2.md +3 -1
  19. package/mocks/vars-conditions/input/presets.yaml +9 -0
  20. package/mocks/{conditions → vars-conditions}/input/toc.yaml +7 -0
  21. package/package.json +1 -1
  22. package/mocks/conditions/input/index.md +0 -1
  23. package/mocks/conditions/input/presets.yaml +0 -4
  24. /package/mocks/{conditions → vars-conditions}/input/.yfm +0 -0
  25. /package/mocks/{conditions → vars-conditions}/input/page3.md +0 -0
  26. /package/mocks/{conditions → vars-conditions}/input/page4.md +0 -0
  27. /package/mocks/{conditions → vars-conditions}/input/page5.yaml +0 -0
@@ -0,0 +1,71 @@
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
+
3
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 1`] = `
4
+ "ignoreStage:
5
+ - internal"
6
+ `;
7
+
8
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 2`] = `
9
+ "---
10
+ metadata:
11
+ - name: generator
12
+ content: Diplodoc Platform vDIPLODOC-VERSION
13
+ vcsPath: active/page.md
14
+ ---
15
+ # Active Page
16
+
17
+ This is an active page that should be included in the build.
18
+
19
+ Active variable: {{active_var}}"
20
+ `;
21
+
22
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 3`] = `
23
+ "default:
24
+ active_var: active_value
25
+ "
26
+ `;
27
+
28
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 4`] = `
29
+ "title: Active Section
30
+ items:
31
+ - name: Active Page
32
+ href: page.md
33
+ path: active/toc.yaml
34
+ "
35
+ `;
36
+
37
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 5`] = `
38
+ "default:
39
+ empty_var: empty_value
40
+ "
41
+ `;
42
+
43
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 6`] = `
44
+ "---
45
+ metadata:
46
+ - name: generator
47
+ content: Diplodoc Platform vDIPLODOC-VERSION
48
+ vcsPath: index.md
49
+ ---
50
+ # Main Page
51
+
52
+ This is the main page content.
53
+
54
+ Root variable: {{root_var}}"
55
+ `;
56
+
57
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 7`] = `
58
+ "default:
59
+ root_var: root_value
60
+ "
61
+ `;
62
+
63
+ exports[`Cleanup empty directories with stage filtering > should cleanup directories that contain only presets.yaml when TOC is ignored by stage 8`] = `
64
+ "title: Test Documentation
65
+ href: index.md
66
+ items:
67
+ - name: Active Section
68
+ href: active/page.md
69
+ path: toc.yaml
70
+ "
71
+ `;
@@ -1,6 +1,6 @@
1
1
  // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`Conditions > Conditions > filelist 1`] = `
3
+ exports[`Vars and conditions > Vars and conditions > filelist 1`] = `
4
4
  "[
5
5
  ".yfm",
6
6
  "index.html",
@@ -11,12 +11,12 @@ exports[`Conditions > Conditions > filelist 1`] = `
11
11
  ]"
12
12
  `;
13
13
 
14
- exports[`Conditions > Conditions 1`] = `
14
+ exports[`Vars and conditions > Vars and conditions 1`] = `
15
15
  "allowHTML: true
16
16
  "
17
17
  `;
18
18
 
19
- exports[`Conditions > Conditions 2`] = `
19
+ exports[`Vars and conditions > Vars and conditions 2`] = `
20
20
  "<!DOCTYPE html>
21
21
  <html lang="ru" dir="ltr">
22
22
  <head>
@@ -30,7 +30,7 @@ exports[`Conditions > Conditions 2`] = `
30
30
  <body class="g-root g-root_theme_light">
31
31
  <div id="root"></div>
32
32
  <script type="application/json" id="diplodoc-state">
33
- {"data":{"leading":false,"html":"","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.md"},"headings":[],"title":"Index page"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
33
+ {"data":{"leading":false,"html":"&lt;p&gt;Контент из переменной&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.md"},"headings":[],"title":"Index page"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
34
34
  </script>
35
35
  <script type="application/javascript">
36
36
  const data = document.querySelector('script#diplodoc-state');
@@ -44,7 +44,7 @@ exports[`Conditions > Conditions 2`] = `
44
44
  </html>"
45
45
  `;
46
46
 
47
- exports[`Conditions > Conditions 3`] = `
47
+ exports[`Vars and conditions > Vars and conditions 3`] = `
48
48
  "<!DOCTYPE html>
49
49
  <html lang="ru" dir="ltr">
50
50
  <head>
@@ -58,7 +58,7 @@ exports[`Conditions > Conditions 3`] = `
58
58
  <body class="g-root g-root_theme_light">
59
59
  <div id="root"></div>
60
60
  <script type="application/json" id="diplodoc-state">
61
- {"data":{"leading":true,"data":{"blocks":[{"type":"header-block","title":"&lt;p&gt;&lt;a href=\\"https://example.com\\" target=\\"_blank\\" rel=\\"noreferrer noopener\\"&gt;Test&lt;/a&gt;&lt;/p&gt;/n","description":"&lt;p&gt;Description link&lt;/p&gt;/n"}],"links":[]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page1.yaml"},"title":""},"router":{"pathname":"page1","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
61
+ {"data":{"leading":true,"data":{"blocks":[{"type":"header-block","title":"&lt;p&gt;Тестовая страница&lt;/p&gt;/n","description":"&lt;p&gt;Description: aboba&lt;/p&gt;/n"}],"links":[]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page1.yaml"},"title":""},"router":{"pathname":"page1","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
62
62
  </script>
63
63
  <script type="application/javascript">
64
64
  const data = document.querySelector('script#diplodoc-state');
@@ -72,7 +72,7 @@ exports[`Conditions > Conditions 3`] = `
72
72
  </html>"
73
73
  `;
74
74
 
75
- exports[`Conditions > Conditions 4`] = `
75
+ exports[`Vars and conditions > Vars and conditions 4`] = `
76
76
  "<!DOCTYPE html>
77
77
  <html lang="ru" dir="ltr">
78
78
  <head>
@@ -86,7 +86,7 @@ exports[`Conditions > Conditions 4`] = `
86
86
  <body class="g-root g-root_theme_light">
87
87
  <div id="root"></div>
88
88
  <script type="application/json" id="diplodoc-state">
89
- {"data":{"leading":false,"html":"&lt;div class=\\"yfm-page-constructor\\" data-content-encoded=\\"%7B%22blocks%22%3A%5B%7B%22type%22%3A%22header-block%22%2C%22title%22%3A%22%3Cp%3EWhen%202%3C%2Fp%3E%5Cn%22%2C%22description%22%3A%22%3Cp%3E%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8%20when%202%3C%2Fp%3E%5Cn%22%7D%5D%7D\\" data-hydrated=\\"false\\"&gt;&lt;div class=\\"g-root g-root_theme_light pc-page-constructor\\"&gt;&lt;div class=\\"pc-page-constructor__wrapper\\"&gt;&lt;div class=\\"pc-layout\\"&gt;&lt;main class=\\"pc-layout__content\\"&gt;&lt;header class=\\"pc-header-block pc-header-block_media-view_full pc-header-block_controls-view_light\\"&gt;&lt;div class=\\"pc-Grid pc-header-block\\"&gt;&lt;div class=\\"container-fluid pc-header-block__container-fluid\\"&gt;&lt;div class=\\"row\\"&gt;&lt;div class=\\"col col-reset pc-header-block__content-wrapper\\"&gt;&lt;div class=\\"row\\"&gt;&lt;div class=\\"col pc-header-block__content pc-header-block__content_offset_default pc-header-block__content_theme_light pc-header-block__content_vertical-offset_m\\"&gt;&lt;div class=\\"col col-lg-8 col-md-8 col-sm-12 col-12 pc-header-block__content-inner\\"&gt;&lt;h1 class=\\"pc-header-block__title-container\\"&gt;&lt;div class=\\"yfm yfm_constructor yfm_constructor_theme_light pc-header-block__title\\"&gt;&lt;p&gt;When 2&lt;/p&gt;/n&lt;/div&gt;&lt;/h1&gt;&lt;div class=\\"pc-header-block__description pc-header-block__description_theme_light\\"&gt;&lt;span class=\\"yfm yfm_constructor yfm_constructor_theme_light\\"&gt;&lt;p&gt;Тестовый заголовок для проверки when 2&lt;/p&gt;/n&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=\\"pc-Grid\\"&gt;&lt;div class=\\"container-fluid \\"&gt;&lt;div class=\\"row pc-constructor-row\\"&gt;&lt;div class=\\"col\\"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/main&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h1&gt;Page 2&lt;/h1&gt;/n&lt;p&gt;&lt;/p&gt;/n&lt;p&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"style":["_bundle/page-constructor-extension.css"],"script":["_bundle/page-constructor-extension.js"],"vcsPath":"page2.md"},"headings":[],"title":""},"router":{"pathname":"page2","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
89
+ {"data":{"leading":false,"html":"&lt;div class=\\"yfm-page-constructor\\" data-content-encoded=\\"%7B%22blocks%22%3A%5B%7B%22type%22%3A%22header-block%22%2C%22title%22%3A%22%3Cp%3EWhen%202%3C%2Fp%3E%5Cn%22%2C%22description%22%3A%22%3Cp%3E%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B8%20when%202%3C%2Fp%3E%5Cn%22%7D%5D%7D\\" data-hydrated=\\"false\\"&gt;&lt;div class=\\"g-root g-root_theme_light pc-page-constructor\\"&gt;&lt;div class=\\"pc-page-constructor__wrapper\\"&gt;&lt;div class=\\"pc-layout\\"&gt;&lt;main class=\\"pc-layout__content\\"&gt;&lt;header class=\\"pc-header-block pc-header-block_media-view_full pc-header-block_controls-view_light\\"&gt;&lt;div class=\\"pc-Grid pc-header-block\\"&gt;&lt;div class=\\"container-fluid pc-header-block__container-fluid\\"&gt;&lt;div class=\\"row\\"&gt;&lt;div class=\\"col col-reset pc-header-block__content-wrapper\\"&gt;&lt;div class=\\"row\\"&gt;&lt;div class=\\"col pc-header-block__content pc-header-block__content_offset_default pc-header-block__content_theme_light pc-header-block__content_vertical-offset_m\\"&gt;&lt;div class=\\"col col-lg-8 col-md-8 col-sm-12 col-12 pc-header-block__content-inner\\"&gt;&lt;h1 class=\\"pc-header-block__title-container\\"&gt;&lt;div class=\\"yfm yfm_constructor yfm_constructor_theme_light pc-header-block__title\\"&gt;&lt;p&gt;When 2&lt;/p&gt;/n&lt;/div&gt;&lt;/h1&gt;&lt;div class=\\"pc-header-block__description pc-header-block__description_theme_light\\"&gt;&lt;span class=\\"yfm yfm_constructor yfm_constructor_theme_light\\"&gt;&lt;p&gt;Тестовый заголовок для проверки when 2&lt;/p&gt;/n&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;div class=\\"pc-Grid\\"&gt;&lt;div class=\\"container-fluid \\"&gt;&lt;div class=\\"row pc-constructor-row\\"&gt;&lt;div class=\\"col\\"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/main&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h1&gt;Page 2&lt;/h1&gt;/n&lt;p&gt;&lt;/p&gt;/n&lt;p&gt;&lt;/p&gt;/n&lt;p&gt;Документация&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"style":["_bundle/page-constructor-extension.css"],"script":["_bundle/page-constructor-extension.js"],"vcsPath":"page2.md"},"headings":[],"title":""},"router":{"pathname":"page2","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
90
90
  </script>
91
91
  <script type="application/javascript">
92
92
  const data = document.querySelector('script#diplodoc-state');
@@ -100,7 +100,7 @@ exports[`Conditions > Conditions 4`] = `
100
100
  </html>"
101
101
  `;
102
102
 
103
- exports[`Conditions > Conditions 5`] = `
103
+ exports[`Vars and conditions > Vars and conditions 5`] = `
104
104
  "<!DOCTYPE html>
105
105
  <html lang="ru" dir="ltr">
106
106
  <head>
@@ -128,4 +128,4 @@ exports[`Conditions > Conditions 5`] = `
128
128
  </html>"
129
129
  `;
130
130
 
131
- exports[`Conditions > Conditions 6`] = `"window.__DATA__.data.toc = {"title":"Conditions","href":"index.html","navigation":{"logo":{"url":"./"},"header":{"leftItems":[{"text":"Always visible","type":"link","url":"./index.md"},{"text":"Visible when var2 is true","type":"link","url":"./page2.md"}],"rightItems":[{"type":"controls"}]}},"items":[{"name":"Page 1","href":"page1.html","id":"UUID"},{"name":"Page 2","href":"page2.html","id":"UUID"},{"name":"Page 5","href":"page5.html","id":"UUID"}],"path":"toc.yaml","id":"UUID"};"`;
131
+ exports[`Vars and conditions > Vars and conditions 6`] = `"window.__DATA__.data.toc = {"title":"Conditions","href":"index.html","navigation":{"logo":{"url":"./"},"header":{"leftItems":[{"text":"Always visible","type":"link","url":"./index.md"},{"text":"Visible when var2 is true","type":"link","url":"./page2.md"},{"text":"Документация","type":"link","url":"./docs.md","urlTitle":"Перейти на главную"}],"rightItems":[{"type":"controls"},{"text":"Link to aboba","type":"link","url":"./page1.yaml"}]}},"items":[{"name":"Page 1","href":"page1.html","id":"UUID"},{"name":"Page 2","href":"page2.html","id":"UUID"},{"name":"Page 5","href":"page5.html","id":"UUID"}],"path":"toc.yaml","id":"UUID"};"`;
@@ -0,0 +1,59 @@
1
+ import {describe, expect, test} from 'vitest';
2
+ import {existsSync} from 'node:fs';
3
+ import {resolve} from 'node:path';
4
+
5
+ import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
6
+
7
+ describe('Cleanup empty directories with stage filtering', () => {
8
+ test('should cleanup directories that contain only presets.yaml when TOC is ignored by stage', async () => {
9
+ const {inputPath, outputPath} = getTestPaths('mocks/cleanup-empty-dirs');
10
+
11
+ // Test with disabled templating to trigger cleanupEmptyDirectories
12
+ await TestAdapter.testBuildPass(inputPath, outputPath, {
13
+ md2md: true,
14
+ args: '--no-template',
15
+ });
16
+
17
+ // Verify that the output directory structure is correct
18
+ await compareDirectories(outputPath, false, false, true);
19
+
20
+ // Check that active section files are present
21
+ expect(existsSync(resolve(outputPath, 'active/page.md'))).toBe(true);
22
+ expect(existsSync(resolve(outputPath, 'active/presets.yaml'))).toBe(true);
23
+ expect(existsSync(resolve(outputPath, 'active/toc.yaml'))).toBe(true);
24
+
25
+ expect(existsSync(resolve(outputPath, 'empty-section'))).toBe(true);
26
+ expect(existsSync(resolve(outputPath, 'empty-section/presets.yaml'))).toBe(true);
27
+
28
+ // Check that root files are present
29
+ expect(existsSync(resolve(outputPath, 'index.md'))).toBe(true);
30
+ expect(existsSync(resolve(outputPath, 'presets.yaml'))).toBe(true);
31
+ expect(existsSync(resolve(outputPath, 'toc.yaml'))).toBe(true);
32
+ });
33
+
34
+ test('should not cleanup directories when templating is enabled', async () => {
35
+ const {inputPath, outputPath} = getTestPaths('mocks/cleanup-empty-dirs');
36
+
37
+ // Test with enabled templating - cleanup should not be triggered
38
+ await TestAdapter.testBuildPass(inputPath, outputPath + '-with-template', {
39
+ md2md: true,
40
+ args: '', // Default template enabled
41
+ });
42
+
43
+ // Check that empty-section directory exists (cleanup should not be triggered)
44
+ expect(existsSync(resolve(outputPath + '-with-template', 'empty-section'))).toBe(false);
45
+ expect(
46
+ existsSync(resolve(outputPath + '-with-template', 'empty-section/presets.yaml')),
47
+ ).toBe(false);
48
+
49
+ // Check that active section files are present
50
+ expect(existsSync(resolve(outputPath + '-with-template', 'active/page.md'))).toBe(true);
51
+ expect(existsSync(resolve(outputPath + '-with-template', 'active/presets.yaml'))).toBe(
52
+ false,
53
+ );
54
+
55
+ // Check that root files are present
56
+ expect(existsSync(resolve(outputPath + '-with-template', 'index.md'))).toBe(true);
57
+ expect(existsSync(resolve(outputPath + '-with-template', 'presets.yaml'))).toBe(false);
58
+ });
59
+ });
@@ -32,8 +32,8 @@ function test(path: string, expect: Function, additionalArgs: string[] = []) {
32
32
  describe('Errors', () => {
33
33
  test('mocks/errors/unreachable-link', ({html}: TestResult) => {
34
34
  expectErrors(html, [
35
- 'ERR index.md: 1: YFM003 / unreachable-link Link is unreachable [Context: "Unreachable link: "exists.html"; Reason: File is not declared in toc; Line: [existing file](./exists.md)"]',
36
- 'ERR index.md: 2: YFM003 / unreachable-link Link is unreachable [Context: "Unreachable link: "missed.html"; Reason: File is not declared in toc; Line: [missed file](./missed.md)"]',
35
+ 'ERR index.md: 1: YFM003 / unreachable-link Link is unreachable [Context: "Unreachable link: "exists.html"; Reason: File is not declared in toc; Line: 1"]',
36
+ 'ERR index.md: 2: YFM003 / unreachable-link Link is unreachable [Context: "Unreachable link: "missed.html"; Reason: File is not declared in toc; Line: 2"]',
37
37
  ]);
38
38
  });
39
39
 
@@ -86,7 +86,7 @@ describe('Errors', () => {
86
86
  describe('Warnings', () => {
87
87
  test('mocks/warning/unreachable-autotitle', ({html}: TestResult) => {
88
88
  expectWarnings(html, [
89
- 'WARN index.md: 1: YFM010 / unreachable-autotitle-anchor Auto title anchor is unreachable [Context: "[Unreachable autotitle anchor: "link.html#unknown_yfm010"][{#T}](./link.md#unknown_yfm010)"]',
89
+ 'WARN index.md: 1: YFM010 / unreachable-autotitle-anchor Auto title anchor is unreachable [Context: "[Unreachable autotitle anchor: "link.html#unknown_yfm010"] [{#T}](./link.md#unknown_yfm010)"]',
90
90
  ]);
91
91
  });
92
92
  });
@@ -2,9 +2,9 @@ import {describe, it} from 'vitest';
2
2
 
3
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
4
4
 
5
- describe('Conditions', () => {
6
- it('Conditions', async () => {
7
- const {inputPath, outputPath} = getTestPaths('mocks/conditions');
5
+ describe('Vars and conditions', () => {
6
+ it('Vars and conditions', async () => {
7
+ const {inputPath, outputPath} = getTestPaths('mocks/vars-conditions');
8
8
 
9
9
  await TestAdapter.testBuildPass(inputPath, outputPath, {
10
10
  md2md: false,
@@ -0,0 +1,2 @@
1
+ ignoreStage:
2
+ - internal
@@ -0,0 +1,5 @@
1
+ # Active Page
2
+
3
+ This is an active page that should be included in the build.
4
+
5
+ Active variable: {{active_var}}
@@ -0,0 +1,2 @@
1
+ default:
2
+ active_var: active_value
@@ -0,0 +1,4 @@
1
+ title: Active Section
2
+ items:
3
+ - name: Active Page
4
+ href: page.md
@@ -0,0 +1,5 @@
1
+ # Empty Page
2
+
3
+ This page should be ignored because the TOC has stage "internal".
4
+
5
+ Empty variable: {{empty_var}}
@@ -0,0 +1,2 @@
1
+ default:
2
+ empty_var: empty_value
@@ -0,0 +1,5 @@
1
+ title: Empty Section
2
+ stage: internal
3
+ items:
4
+ - name: Empty Page
5
+ href: page.md
@@ -0,0 +1,5 @@
1
+ # Main Page
2
+
3
+ This is the main page content.
4
+
5
+ Root variable: {{root_var}}
@@ -0,0 +1,2 @@
1
+ default:
2
+ root_var: root_value
@@ -0,0 +1,5 @@
1
+ title: Test Documentation
2
+ href: index.md
3
+ items:
4
+ - name: Active Section
5
+ href: active/page.md
@@ -0,0 +1,3 @@
1
+ # Index page
2
+
3
+ {{md_content}}
@@ -1,7 +1,7 @@
1
1
  blocks:
2
2
  - type: header-block
3
- title: '[Test](https://example.com)'
4
- description: 'Description link'
3
+ title: '{{page_title}}'
4
+ description: 'Description: {{var1}}'
5
5
  when: var3 >= 1
6
6
  - type: header-block
7
7
  title: When 1
@@ -10,5 +10,4 @@ blocks:
10
10
  - type: header-block
11
11
  title: Test title
12
12
  description: 'Test description'
13
- when: var3 < 1
14
-
13
+ when: var3 < 1
@@ -19,4 +19,6 @@ blocks:
19
19
  when: false
20
20
  :::
21
21
 
22
- {% endcut %}
22
+ {% endcut %}
23
+
24
+ {{ nav_text }}
@@ -0,0 +1,9 @@
1
+ default:
2
+ var1: 'aboba'
3
+ var2: true
4
+ var3: 1
5
+ nav_text: 'Документация'
6
+ nav_page: 'docs'
7
+ nav_title: 'Перейти на главную'
8
+ page_title: 'Тестовая страница'
9
+ md_content: 'Контент из переменной'
@@ -20,12 +20,19 @@ navigation:
20
20
  type: "link"
21
21
  url: "./page4.md"
22
22
  when: var3 > 1
23
+ - text: "{{nav_text}}"
24
+ type: "link"
25
+ url: "./{{nav_page}}.md"
26
+ urlTitle: "{{nav_title}}"
23
27
  rightItems:
24
28
  - type: controls
25
29
  - text: "Hidden control"
26
30
  type: "link"
27
31
  url: "./hidden.md"
28
32
  when: var1 == 'not_aboba'
33
+ - text: "Link to {{var1}}"
34
+ type: "link"
35
+ url: "./page1.yaml"
29
36
 
30
37
  items:
31
38
  - name: Page 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/cli-tests",
3
- "version": "5.20.0",
3
+ "version": "5.21.0",
4
4
  "bin": {
5
5
  "diplodoc-cli-test": "bin.mjs"
6
6
  },
@@ -1 +0,0 @@
1
- # Index page
@@ -1,4 +0,0 @@
1
- default:
2
- var1: 'aboba'
3
- var2: true
4
- var3: 1