@diplodoc/cli 5.46.1 → 5.47.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/build/index.js +3 -3
- package/build/index.mjs +3 -3
- package/package.json +24 -8
- package/tests/.eslintrc.js +9 -0
- package/tests/e2e/__snapshots__/alternates.test.ts.snap +1199 -0
- package/tests/e2e/__snapshots__/assets.spec.ts.snap +0 -0
- package/tests/e2e/__snapshots__/build-content-map.spec.ts.snap +329 -0
- package/tests/e2e/__snapshots__/bundles.spec.ts.snap +172 -0
- package/tests/e2e/__snapshots__/cleanup-empty-dirs.spec.ts.snap +65 -0
- package/tests/e2e/__snapshots__/crawler-manifest.spec.ts.snap +28 -0
- package/tests/e2e/__snapshots__/files.spec.ts.snap +164 -0
- package/tests/e2e/__snapshots__/files.test.ts.snap +146 -0
- package/tests/e2e/__snapshots__/generate-map.spec.ts.snap +408 -0
- package/tests/e2e/__snapshots__/include-toc.test.ts.snap +797 -0
- package/tests/e2e/__snapshots__/include-with-meta.test.ts.snap +67 -0
- package/tests/e2e/__snapshots__/includes-conditions.test.ts.snap +78 -0
- package/tests/e2e/__snapshots__/includes.test.ts.snap +780 -0
- package/tests/e2e/__snapshots__/init.test.ts.snap +283 -0
- package/tests/e2e/__snapshots__/llms.spec.ts.snap +257 -0
- package/tests/e2e/__snapshots__/load-custom-resources.spec.ts.snap +362 -0
- package/tests/e2e/__snapshots__/markdown-options.spec.ts.snap +209 -0
- package/tests/e2e/__snapshots__/merge-includes.spec.ts.snap +1058 -0
- package/tests/e2e/__snapshots__/metadata.spec.ts.snap +200 -0
- package/tests/e2e/__snapshots__/neuro-expert.test.ts.snap +625 -0
- package/tests/e2e/__snapshots__/pdf-page.spec.ts.snap +341 -0
- package/tests/e2e/__snapshots__/plugin-corner-cases.spec.ts.snap +0 -0
- package/tests/e2e/__snapshots__/preprocess.test.ts.snap +1558 -0
- package/tests/e2e/__snapshots__/regression.test.ts.snap +2033 -0
- package/tests/e2e/__snapshots__/restricted-access.test.ts.snap +244 -0
- package/tests/e2e/__snapshots__/rtl.spec.ts.snap +234 -0
- package/tests/e2e/__snapshots__/search.test.ts.snap +56 -0
- package/tests/e2e/__snapshots__/single-page.spec.ts.snap +163 -0
- package/tests/e2e/__snapshots__/skip-html-extension.spec.ts.snap +519 -0
- package/tests/e2e/__snapshots__/toc-label.test.ts.snap +127 -0
- package/tests/e2e/__snapshots__/translation.spec.ts.snap +2386 -0
- package/tests/e2e/__snapshots__/vars-conditions.spec.ts.snap +131 -0
- package/tests/e2e/alternates.test.ts +49 -0
- package/tests/e2e/assets.spec.ts +31 -0
- package/tests/e2e/autotitles.spec.ts +37 -0
- package/tests/e2e/build-content-map.spec.ts +220 -0
- package/tests/e2e/bundles.spec.ts +16 -0
- package/tests/e2e/cleanup-empty-dirs.spec.ts +59 -0
- package/tests/e2e/crawler-manifest.spec.ts +129 -0
- package/tests/e2e/disable-csp.spec.ts +55 -0
- package/tests/e2e/empty-presets.spec.ts +32 -0
- package/tests/e2e/errors.spec.ts +158 -0
- package/tests/e2e/files.spec.ts +21 -0
- package/tests/e2e/generate-map.spec.ts +47 -0
- package/tests/e2e/include-toc.test.ts +73 -0
- package/tests/e2e/include-with-meta.test.ts +20 -0
- package/tests/e2e/includes-conditions.test.ts +23 -0
- package/tests/e2e/includes.test.ts +52 -0
- package/tests/e2e/init.test.ts +105 -0
- package/tests/e2e/llms.spec.ts +24 -0
- package/tests/e2e/load-custom-resources.spec.ts +23 -0
- package/tests/e2e/markdown-options.spec.ts +17 -0
- package/tests/e2e/merge-includes.spec.ts +196 -0
- package/tests/e2e/metadata.spec.ts +79 -0
- package/tests/e2e/nested-include-links.spec.ts +26 -0
- package/tests/e2e/neuro-expert.test.ts +16 -0
- package/tests/e2e/openapi-companion.spec.ts +213 -0
- package/tests/e2e/openapi-include-size.spec.ts +55 -0
- package/tests/e2e/pdf-page.spec.ts +127 -0
- package/tests/e2e/plugin-corner-cases.spec.ts +14 -0
- package/tests/e2e/preprocess.test.ts +40 -0
- package/tests/e2e/redirects-validation.spec.ts +62 -0
- package/tests/e2e/regression.test.ts +39 -0
- package/tests/e2e/restricted-access.test.ts +19 -0
- package/tests/e2e/rtl.spec.ts +17 -0
- package/tests/e2e/search.test.ts +16 -0
- package/tests/e2e/single-page.spec.ts +23 -0
- package/tests/e2e/skip-html-extension.spec.ts +17 -0
- package/tests/e2e/themer.test.ts +307 -0
- package/tests/e2e/toc-label.test.ts +23 -0
- package/tests/e2e/translation.spec.ts +221 -0
- package/tests/e2e/vars-conditions.spec.ts +16 -0
- package/tests/e2e/vars-ignore.test.ts +168 -0
- package/tests/fixtures/cli.ts +103 -0
- package/tests/fixtures/file.ts +148 -0
- package/tests/fixtures/globals.d.ts +4 -0
- package/tests/fixtures/index.ts +4 -0
- package/tests/fixtures/runner.ts +49 -0
- package/tests/fixtures/test.ts +210 -0
- package/tests/mocks/alternates/input/.yfm +1 -0
- package/tests/mocks/alternates/input/az/about.md +3 -0
- package/tests/mocks/alternates/input/az/deep/test.md +3 -0
- package/tests/mocks/alternates/input/az/index.yaml +3 -0
- package/tests/mocks/alternates/input/az/toc.yaml +6 -0
- package/tests/mocks/alternates/input/en/about.md +3 -0
- package/tests/mocks/alternates/input/en/deep/test.md +3 -0
- package/tests/mocks/alternates/input/en/index.yaml +3 -0
- package/tests/mocks/alternates/input/en/toc.yaml +6 -0
- package/tests/mocks/alternates/input/ru/about.md +8 -0
- package/tests/mocks/alternates/input/ru/deep/test.md +3 -0
- package/tests/mocks/alternates/input/ru/index.yaml +3 -0
- package/tests/mocks/alternates/input/ru/toc.yaml +6 -0
- package/tests/mocks/assets/input/.yfm +1 -0
- package/tests/mocks/assets/input/_images/camera.svg +1 -0
- package/tests/mocks/assets/input/_images/icons/bulb.svg +1 -0
- package/tests/mocks/assets/input/_images/mountain.jpg +0 -0
- package/tests/mocks/assets/input/_images/versions.png +0 -0
- package/tests/mocks/assets/input/index.md +18 -0
- package/tests/mocks/assets/input/page.yaml +7 -0
- package/tests/mocks/assets/input/toc.yaml +7 -0
- package/tests/mocks/autotitles/input/docs/index.md +3 -0
- package/tests/mocks/autotitles/input/docs/target.md +3 -0
- package/tests/mocks/autotitles/input/toc.yaml +5 -0
- package/tests/mocks/build-content-map/autotitle-chain/input/.yfm +0 -0
- package/tests/mocks/build-content-map/autotitle-chain/input/a.md +3 -0
- package/tests/mocks/build-content-map/autotitle-chain/input/b.md +3 -0
- package/tests/mocks/build-content-map/autotitle-chain/input/c.md +3 -0
- package/tests/mocks/build-content-map/autotitle-chain/input/toc.yaml +9 -0
- package/tests/mocks/build-content-map/autotitle-target-with-include/input/.yfm +0 -0
- package/tests/mocks/build-content-map/autotitle-target-with-include/input/_includes/snippet.md +3 -0
- package/tests/mocks/build-content-map/autotitle-target-with-include/input/a.md +3 -0
- package/tests/mocks/build-content-map/autotitle-target-with-include/input/b.md +3 -0
- package/tests/mocks/build-content-map/autotitle-target-with-include/input/toc.yaml +7 -0
- package/tests/mocks/build-content-map/diamond-includes/input/.yfm +0 -0
- package/tests/mocks/build-content-map/diamond-includes/input/_includes/branch-a.md +5 -0
- package/tests/mocks/build-content-map/diamond-includes/input/_includes/branch-b.md +5 -0
- package/tests/mocks/build-content-map/diamond-includes/input/_includes/shared.md +3 -0
- package/tests/mocks/build-content-map/diamond-includes/input/index.md +7 -0
- package/tests/mocks/build-content-map/diamond-includes/input/toc.yaml +5 -0
- package/tests/mocks/build-content-map/nested-includes/input/.yfm +0 -0
- package/tests/mocks/build-content-map/nested-includes/input/_includes/level1.md +5 -0
- package/tests/mocks/build-content-map/nested-includes/input/_includes/level2.md +3 -0
- package/tests/mocks/build-content-map/nested-includes/input/index.md +5 -0
- package/tests/mocks/build-content-map/nested-includes/input/toc.yaml +5 -0
- package/tests/mocks/build-content-map/with-autotitles/input/.yfm +0 -0
- package/tests/mocks/build-content-map/with-autotitles/input/index.md +3 -0
- package/tests/mocks/build-content-map/with-autotitles/input/other.md +3 -0
- package/tests/mocks/build-content-map/with-autotitles/input/toc.yaml +7 -0
- package/tests/mocks/build-content-map/with-includes/input/.yfm +0 -0
- package/tests/mocks/build-content-map/with-includes/input/_includes/snippet.md +1 -0
- package/tests/mocks/build-content-map/with-includes/input/index.md +5 -0
- package/tests/mocks/build-content-map/with-includes/input/logo.svg +1 -0
- package/tests/mocks/build-content-map/with-includes/input/toc.yaml +5 -0
- package/tests/mocks/bundles/input/.yfm +13 -0
- package/tests/mocks/bundles/input/index.md +12 -0
- package/tests/mocks/bundles/input/page1.md +3 -0
- package/tests/mocks/bundles/input/page2.md +5 -0
- package/tests/mocks/bundles/input/toc.yaml +9 -0
- package/tests/mocks/cleanup-empty-dirs/input/.yfm +2 -0
- package/tests/mocks/cleanup-empty-dirs/input/active/page.md +5 -0
- package/tests/mocks/cleanup-empty-dirs/input/active/presets.yaml +2 -0
- package/tests/mocks/cleanup-empty-dirs/input/active/toc.yaml +4 -0
- package/tests/mocks/cleanup-empty-dirs/input/empty-section/page.md +5 -0
- package/tests/mocks/cleanup-empty-dirs/input/empty-section/presets.yaml +2 -0
- package/tests/mocks/cleanup-empty-dirs/input/empty-section/toc.yaml +5 -0
- package/tests/mocks/cleanup-empty-dirs/input/index.md +5 -0
- package/tests/mocks/cleanup-empty-dirs/input/presets.yaml +2 -0
- package/tests/mocks/cleanup-empty-dirs/input/toc.yaml +5 -0
- package/tests/mocks/crawler-manifest/config/input/.yfm +1 -0
- package/tests/mocks/crawler-manifest/config/input/index.md +3 -0
- package/tests/mocks/crawler-manifest/config/input/toc.yaml +4 -0
- package/tests/mocks/crawler-manifest/exclude/input/.yfm +9 -0
- package/tests/mocks/crawler-manifest/exclude/input/index.md +5 -0
- package/tests/mocks/crawler-manifest/exclude/input/toc.yaml +4 -0
- package/tests/mocks/crawler-manifest/no-links/input/index.md +5 -0
- package/tests/mocks/crawler-manifest/no-links/input/toc.yaml +4 -0
- package/tests/mocks/crawler-manifest/notifications-docs-viewer/input/.yfm +8 -0
- package/tests/mocks/crawler-manifest/notifications-docs-viewer/input/index.md +3 -0
- package/tests/mocks/crawler-manifest/notifications-docs-viewer/input/toc.yaml +4 -0
- package/tests/mocks/crawler-manifest/notifications-no-receivers/input/.yfm +5 -0
- package/tests/mocks/crawler-manifest/notifications-no-receivers/input/index.md +3 -0
- package/tests/mocks/crawler-manifest/notifications-no-receivers/input/toc.yaml +4 -0
- package/tests/mocks/crawler-manifest/notifications-root/input/.yfm +11 -0
- package/tests/mocks/crawler-manifest/notifications-root/input/index.md +3 -0
- package/tests/mocks/crawler-manifest/notifications-root/input/toc.yaml +4 -0
- package/tests/mocks/crawler-manifest/with-links/input/redirects.yaml +5 -0
- package/tests/mocks/crawler-manifest/with-links/input/ru/_includes/snippet.md +1 -0
- package/tests/mocks/crawler-manifest/with-links/input/ru/index.md +35 -0
- package/tests/mocks/crawler-manifest/with-links/input/ru/leading.yaml +5 -0
- package/tests/mocks/crawler-manifest/with-links/input/ru/no-links.md +3 -0
- package/tests/mocks/crawler-manifest/with-links/input/ru/references.md +5 -0
- package/tests/mocks/crawler-manifest/with-links/input/toc.yaml +12 -0
- package/tests/mocks/disable-csp/input/.yfm +8 -0
- package/tests/mocks/disable-csp/input/en/index.md +3 -0
- package/tests/mocks/disable-csp/input/en/page.md +3 -0
- package/tests/mocks/disable-csp/input/en/toc.yaml +5 -0
- package/tests/mocks/docs-viewer-interface/input/.yfm +6 -0
- package/tests/mocks/docs-viewer-interface/input/index.md +3 -0
- package/tests/mocks/docs-viewer-interface/input/toc.yaml +5 -0
- package/tests/mocks/empty-presets/input/.yfm +1 -0
- package/tests/mocks/empty-presets/input/index.md +3 -0
- package/tests/mocks/empty-presets/input/presets.yaml +3 -0
- package/tests/mocks/empty-presets/input/subfolder/presets.yaml +3 -0
- package/tests/mocks/empty-presets/input/subfolder/subpage.md +3 -0
- package/tests/mocks/empty-presets/input/subfolder/toc.yaml +4 -0
- package/tests/mocks/empty-presets/input/toc.yaml +4 -0
- package/tests/mocks/errors/extract-filtered-link/input/filtered.md +1 -0
- package/tests/mocks/errors/extract-filtered-link/input/filtered2.md +0 -0
- package/tests/mocks/errors/extract-filtered-link/input/index.md +7 -0
- package/tests/mocks/errors/extract-filtered-link/input/toc.yaml +1 -0
- package/tests/mocks/errors/invalid-frontmatter/input/index.md +9 -0
- package/tests/mocks/errors/invalid-frontmatter/input/toc.yaml +1 -0
- package/tests/mocks/errors/invalid-toc-entry-href/input/.yfm +1 -0
- package/tests/mocks/errors/invalid-toc-entry-href/input/ru/toc.yaml +3 -0
- package/tests/mocks/errors/invalid-toc-root-array/input/.yfm +1 -0
- package/tests/mocks/errors/invalid-toc-root-array/input/ru/toc.yaml +2 -0
- package/tests/mocks/errors/max-asset-size/input/_images/large-image.png +0 -0
- package/tests/mocks/errors/max-asset-size/input/index.md +5 -0
- package/tests/mocks/errors/max-asset-size/input/toc.yaml +1 -0
- package/tests/mocks/errors/object-validation/input/index.md +3 -0
- package/tests/mocks/errors/object-validation/input/toc.yaml +14 -0
- package/tests/mocks/errors/unreachable-link/input/exists.md +1 -0
- package/tests/mocks/errors/unreachable-link/input/index.md +2 -0
- package/tests/mocks/errors/unreachable-link/input/toc.yaml +1 -0
- package/tests/mocks/errors/unreachable-link-in-include/input/_includes/chapter.md +1 -0
- package/tests/mocks/errors/unreachable-link-in-include/input/index.md +5 -0
- package/tests/mocks/errors/unreachable-link-in-include/input/toc.yaml +1 -0
- package/tests/mocks/errors/unreachable-link-in-nested-include/input/_includes/chapter.md +3 -0
- package/tests/mocks/errors/unreachable-link-in-nested-include/input/_includes/details.md +1 -0
- package/tests/mocks/errors/unreachable-link-in-nested-include/input/index.md +3 -0
- package/tests/mocks/errors/unreachable-link-in-nested-include/input/toc.yaml +1 -0
- package/tests/mocks/errors/valid-link-in-include/input/_includes/content.md +1 -0
- package/tests/mocks/errors/valid-link-in-include/input/index.md +3 -0
- package/tests/mocks/errors/valid-link-in-include/input/page.md +3 -0
- package/tests/mocks/errors/valid-link-in-include/input/toc.yaml +4 -0
- package/tests/mocks/fileContent/metadata/authorAliasInMetadata.md +7 -0
- package/tests/mocks/fileContent/metadata/fullAuthorInMetadata.md +10 -0
- package/tests/mocks/fileContent/metadata/includesContent/firstIncludeFile.md +7 -0
- package/tests/mocks/fileContent/metadata/includesContent/secondIncludeFile.md +5 -0
- package/tests/mocks/fileContent/metadata/includesContent/withIncludes.md +7 -0
- package/tests/mocks/fileContent/metadata/keywordsInMetadata.md +9 -0
- package/tests/mocks/fileContent/metadata/simpleMetadata.md +6 -0
- package/tests/mocks/fileContent/metadata/substitutionsInMetadataPropertyKeys.md +7 -0
- package/tests/mocks/fileContent/metadata/substitutionsInMetadataPropertyValues.md +11 -0
- package/tests/mocks/fileContent/metadata/substitutionsWithEmptyString.md +7 -0
- package/tests/mocks/fileContent/metadata/variableInMetadata.md +7 -0
- package/tests/mocks/fileContent/metadata/withAdditionalSeparatorsInContent.md +9 -0
- package/tests/mocks/fileContent/metadata/withoutMetadata.md +2 -0
- package/tests/mocks/fileContent/metadata/withoutMetadataWithAdditionalSeparatorsInContent.md +6 -0
- package/tests/mocks/files/input/_assets/test.csv +0 -0
- package/tests/mocks/files/input/_assets/test.docx +0 -0
- package/tests/mocks/files/input/_assets/test.pdf +0 -0
- package/tests/mocks/files/input/_assets/test.pptx +0 -0
- package/tests/mocks/files/input/_assets/test.txt +0 -0
- package/tests/mocks/files/input/_assets/test.xlsx +0 -0
- package/tests/mocks/files/input/_assets/test.yaml +50 -0
- package/tests/mocks/files/input/index.md +17 -0
- package/tests/mocks/files/input/pc-index.yaml +70 -0
- package/tests/mocks/files/input/toc.yaml +6 -0
- package/tests/mocks/generate-map/test1/input/.yfm +0 -0
- package/tests/mocks/generate-map/test1/input/ru/_includes/file.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/_includes/plugins.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/folder1/a1.md +1 -0
- package/tests/mocks/generate-map/test1/input/ru/folder1/folder2/a1.md +1 -0
- package/tests/mocks/generate-map/test1/input/ru/folder1/folder2/toc.yaml +5 -0
- package/tests/mocks/generate-map/test1/input/ru/folder1/toc.yaml +7 -0
- package/tests/mocks/generate-map/test1/input/ru/index.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/plugins/import.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/plugins/index.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/project/config.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/project/index.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/settings.md +0 -0
- package/tests/mocks/generate-map/test1/input/ru/toc.yaml +22 -0
- package/tests/mocks/generate-map/test2/input/en/_includes/file.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/_includes/plugins.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/index.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/plugins/import.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/plugins/index.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/project/config.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/project/index.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/settings.md +0 -0
- package/tests/mocks/generate-map/test2/input/en/toc.yaml +18 -0
- package/tests/mocks/generate-map/test2/input/ru/_includes/file.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/_includes/plugins.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/index.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/plugins/import.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/plugins/index.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/project/config.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/project/index.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/settings.md +0 -0
- package/tests/mocks/generate-map/test2/input/ru/toc.yaml +18 -0
- package/tests/mocks/generate-map/test3/input/.yfm +0 -0
- package/tests/mocks/generate-map/test3/input/ru/_includes/file.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/_includes/plugins.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/folder1/a1.md +1 -0
- package/tests/mocks/generate-map/test3/input/ru/folder1/folder2/a1.md +1 -0
- package/tests/mocks/generate-map/test3/input/ru/folder1/folder2/toc.yaml +5 -0
- package/tests/mocks/generate-map/test3/input/ru/folder1/toc.yaml +7 -0
- package/tests/mocks/generate-map/test3/input/ru/index.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/plugins/import.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/plugins/index.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/project/config.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/project/index.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/settings.md +0 -0
- package/tests/mocks/generate-map/test3/input/ru/toc.yaml +22 -0
- package/tests/mocks/include-skip/test1/input/includes/missing.md +1 -0
- package/tests/mocks/include-skip/test1/input/index.md +3 -0
- package/tests/mocks/include-skip/test1/input/toc.yaml +3 -0
- package/tests/mocks/include-skip/test2/input/includes/missing.md +1 -0
- package/tests/mocks/include-skip/test2/input/includes/valid.md +4 -0
- package/tests/mocks/include-skip/test2/input/index.md +4 -0
- package/tests/mocks/include-skip/test2/input/toc.yaml +4 -0
- package/tests/mocks/include-toc/test1/input/a1.md +1 -0
- package/tests/mocks/include-toc/test1/input/folder1/a1.md +1 -0
- package/tests/mocks/include-toc/test1/input/folder1/folder2/a1.md +1 -0
- package/tests/mocks/include-toc/test1/input/folder1/folder2/toc.yaml +5 -0
- package/tests/mocks/include-toc/test1/input/folder1/toc.yaml +7 -0
- package/tests/mocks/include-toc/test1/input/toc.yaml +9 -0
- package/tests/mocks/include-toc/test10/input/test/index.md +4 -0
- package/tests/mocks/include-toc/test10/input/test/sub/index.md +1 -0
- package/tests/mocks/include-toc/test10/input/test/sub/sub/sub-3.md +1 -0
- package/tests/mocks/include-toc/test10/input/test/sub/sub-1.md +5 -0
- package/tests/mocks/include-toc/test10/input/test/sub/sub-2.md +1 -0
- package/tests/mocks/include-toc/test10/input/test/test.md +1 -0
- package/tests/mocks/include-toc/test10/input/toc.yaml +9 -0
- package/tests/mocks/include-toc/test2/input/.yfm +1 -0
- package/tests/mocks/include-toc/test2/input/file1.md +1 -0
- package/tests/mocks/include-toc/test2/input/fileX.md +1 -0
- package/tests/mocks/include-toc/test2/input/folder/fileA.md +11 -0
- package/tests/mocks/include-toc/test2/input/folder/fileB.md +9 -0
- package/tests/mocks/include-toc/test2/input/folder/folder/fileC.md +1 -0
- package/tests/mocks/include-toc/test2/input/folder/folder/toc.yaml +3 -0
- package/tests/mocks/include-toc/test2/input/folder/toc.yaml +6 -0
- package/tests/mocks/include-toc/test2/input/presets.yaml +2 -0
- package/tests/mocks/include-toc/test2/input/toc.yaml +6 -0
- package/tests/mocks/include-toc/test3/input/product1/core/_includes/inc.md +1 -0
- package/tests/mocks/include-toc/test3/input/product1/core/article1.md +3 -0
- package/tests/mocks/include-toc/test3/input/product1/core/toc_m.yaml +2 -0
- package/tests/mocks/include-toc/test3/input/product1/product/toc_p.yaml +3 -0
- package/tests/mocks/include-toc/test3/input/product1/toc.yaml +3 -0
- package/tests/mocks/include-toc/test3/input/product2/core/_includes/inc.md +1 -0
- package/tests/mocks/include-toc/test3/input/product2/core/article1.md +3 -0
- package/tests/mocks/include-toc/test3/input/product2/core/toc_m.yaml +2 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay1/product/article1.md +3 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay1/product/toc_p.yaml +3 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay1/toc.yaml +2 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay2/product/article1.md +3 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay2/product/toc_p.yaml +3 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay2/toc.yaml +2 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay3/product/toc_p.yaml +3 -0
- package/tests/mocks/include-toc/test3/input/product2/overlay3/toc.yaml +2 -0
- package/tests/mocks/include-toc/test3/input/product2/p2.md +4 -0
- package/tests/mocks/include-toc/test3/input/product2/toc.yaml +10 -0
- package/tests/mocks/include-toc/test4/input/a1.md +1 -0
- package/tests/mocks/include-toc/test4/input/index.yaml +20 -0
- package/tests/mocks/include-toc/test4/input/toc.yaml +9 -0
- package/tests/mocks/include-toc/test5/input/core/concepts/toc_i.yaml +2 -0
- package/tests/mocks/include-toc/test5/input/core/concepts/toc_p.yaml +3 -0
- package/tests/mocks/include-toc/test5/input/core/toc_i.yaml +6 -0
- package/tests/mocks/include-toc/test5/input/core/toc_m.yaml +3 -0
- package/tests/mocks/include-toc/test5/input/core/toc_p.yaml +5 -0
- package/tests/mocks/include-toc/test5/input/overlay/toc_p.yaml +3 -0
- package/tests/mocks/include-toc/test5/input/toc.yaml +4 -0
- package/tests/mocks/include-toc/test6/input/test/index.md +4 -0
- package/tests/mocks/include-toc/test6/input/test/sub/sub/sub-3.md +1 -0
- package/tests/mocks/include-toc/test6/input/test/sub/sub-1.md +5 -0
- package/tests/mocks/include-toc/test6/input/test/sub/sub-2.md +1 -0
- package/tests/mocks/include-toc/test6/input/test/test.md +1 -0
- package/tests/mocks/include-toc/test6/input/toc.yaml +8 -0
- package/tests/mocks/include-toc/test7/input/.yfm +1 -0
- package/tests/mocks/include-toc/test7/input/ru/presets.yaml +2 -0
- package/tests/mocks/include-toc/test7/input/ru/sub/folder/index.yaml +4 -0
- package/tests/mocks/include-toc/test7/input/ru/sub/folder/toc.yaml +3 -0
- package/tests/mocks/include-toc/test7/input/ru/toc.yaml +3 -0
- package/tests/mocks/include-toc/test8/input/test/index.md +4 -0
- package/tests/mocks/include-toc/test8/input/test/sub/index.md +1 -0
- package/tests/mocks/include-toc/test8/input/test/sub/sub/sub-3.md +1 -0
- package/tests/mocks/include-toc/test8/input/test/sub/sub-1.md +5 -0
- package/tests/mocks/include-toc/test8/input/test/sub/sub-2.md +1 -0
- package/tests/mocks/include-toc/test8/input/test/test.md +1 -0
- package/tests/mocks/include-toc/test8/input/toc.yaml +9 -0
- package/tests/mocks/include-toc/test9/input/test/index.md +4 -0
- package/tests/mocks/include-toc/test9/input/test/sub/index.md +1 -0
- package/tests/mocks/include-toc/test9/input/test/sub/sub/sub-3.md +1 -0
- package/tests/mocks/include-toc/test9/input/test/sub/sub-1.md +5 -0
- package/tests/mocks/include-toc/test9/input/test/sub/sub-2.md +1 -0
- package/tests/mocks/include-toc/test9/input/test/test.md +1 -0
- package/tests/mocks/include-toc/test9/input/toc.yaml +8 -0
- package/tests/mocks/include-with-meta/input/included.md +16 -0
- package/tests/mocks/include-with-meta/input/index.md +15 -0
- package/tests/mocks/include-with-meta/input/toc.yaml +6 -0
- package/tests/mocks/includes/input/.yfm +1 -0
- package/tests/mocks/includes/input/_assets/4.png +0 -0
- package/tests/mocks/includes/input/includes/commented-include.md +5 -0
- package/tests/mocks/includes/input/includes/deep-include.md +13 -0
- package/tests/mocks/includes/input/includes/fragments.md +23 -0
- package/tests/mocks/includes/input/includes/nested-include.md +5 -0
- package/tests/mocks/includes/input/includes/no-title-include.md +19 -0
- package/tests/mocks/includes/input/includes/root-include.md +11 -0
- package/tests/mocks/includes/input/includes/user.md +5 -0
- package/tests/mocks/includes/input/index.md +69 -0
- package/tests/mocks/includes/input/level1/includes/level1-include.md +11 -0
- package/tests/mocks/includes/input/level1/level2/includes/level2-include.md +11 -0
- package/tests/mocks/includes/input/level1/level2/page2.md +29 -0
- package/tests/mocks/includes/input/level1/page1.md +29 -0
- package/tests/mocks/includes/input/presets.yaml +3 -0
- package/tests/mocks/includes/input/toc-include.md +13 -0
- package/tests/mocks/includes/input/toc.yaml +13 -0
- package/tests/mocks/includes-conditions/input/includes/first.md +5 -0
- package/tests/mocks/includes-conditions/input/includes/second.md +5 -0
- package/tests/mocks/includes-conditions/input/includes/third.md +1 -0
- package/tests/mocks/includes-conditions/input/index.md +7 -0
- package/tests/mocks/includes-conditions/input/presets.yaml +2 -0
- package/tests/mocks/includes-conditions/input/toc.yaml +3 -0
- package/tests/mocks/includes-missing/input/index.md +7 -0
- package/tests/mocks/includes-missing/input/toc.yaml +3 -0
- package/tests/mocks/llms/input/.yfm +1 -0
- package/tests/mocks/llms/input/_includes/requirements.md +4 -0
- package/tests/mocks/llms/input/api.md +9 -0
- package/tests/mocks/llms/input/beta.md +4 -0
- package/tests/mocks/llms/input/index.md +8 -0
- package/tests/mocks/llms/input/presets.yaml +2 -0
- package/tests/mocks/llms/input/start.md +9 -0
- package/tests/mocks/llms/input/toc.yaml +11 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/.yfm +5 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/_assets/script/test1.js +0 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/_assets/style/test.css +13 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/index.yaml +9 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/page.md +14 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/project/config.md +1 -0
- package/tests/mocks/load-custom-resources/md2html-with-resources/input/toc.yaml +7 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/.yfm +5 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/_assets/script/test1.js +0 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/_assets/style/test.css +13 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/index.yaml +9 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/page.md +14 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/project/config.md +1 -0
- package/tests/mocks/load-custom-resources/md2md-with-resources/input/toc.yaml +7 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/.yfm +5 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/_assets/script/test1.js +0 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/_assets/style/test.css +13 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/index.yaml +9 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/page.md +14 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/project/config.md +1 -0
- package/tests/mocks/load-custom-resources/single-page-with-resources/input/toc.yaml +7 -0
- package/tests/mocks/markdown-options/example-1/input/.yfm +5 -0
- package/tests/mocks/markdown-options/example-1/input/breaks.md +5 -0
- package/tests/mocks/markdown-options/example-1/input/linkify-tlds.md +7 -0
- package/tests/mocks/markdown-options/example-1/input/linkify.md +3 -0
- package/tests/mocks/markdown-options/example-1/input/toc.yaml +7 -0
- package/tests/mocks/markdown-options/example-2/input/.yfm +3 -0
- package/tests/mocks/markdown-options/example-2/input/breaks.md +5 -0
- package/tests/mocks/markdown-options/example-2/input/linkify-tlds.md +7 -0
- package/tests/mocks/markdown-options/example-2/input/linkify.md +3 -0
- package/tests/mocks/markdown-options/example-2/input/toc.yaml +7 -0
- package/tests/mocks/merge-includes/basic/input/_includes/simple.md +3 -0
- package/tests/mocks/merge-includes/basic/input/index.md +3 -0
- package/tests/mocks/merge-includes/basic/input/main.md +7 -0
- package/tests/mocks/merge-includes/basic/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/hash-fallback/input/_includes/sections.md +19 -0
- package/tests/mocks/merge-includes/hash-fallback/input/index.md +1 -0
- package/tests/mocks/merge-includes/hash-fallback/input/main.md +5 -0
- package/tests/mocks/merge-includes/hash-fallback/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/hash-section-html/input/_includes/mixed.md +11 -0
- package/tests/mocks/merge-includes/hash-section-html/input/index.md +3 -0
- package/tests/mocks/merge-includes/hash-section-html/input/main.md +13 -0
- package/tests/mocks/merge-includes/hash-section-html/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/html-comment-blanks/input/_includes/examples.md +27 -0
- package/tests/mocks/merge-includes/html-comment-blanks/input/index.md +3 -0
- package/tests/mocks/merge-includes/html-comment-blanks/input/main.md +15 -0
- package/tests/mocks/merge-includes/html-comment-blanks/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/html-in-list/input/_includes/styles.md +7 -0
- package/tests/mocks/merge-includes/html-in-list/input/index.md +3 -0
- package/tests/mocks/merge-includes/html-in-list/input/main.md +11 -0
- package/tests/mocks/merge-includes/html-in-list/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/include-after-fence/input/_includes/chat-button.md +1 -0
- package/tests/mocks/merge-includes/include-after-fence/input/_includes/footer.md +1 -0
- package/tests/mocks/merge-includes/include-after-fence/input/index.md +3 -0
- package/tests/mocks/merge-includes/include-after-fence/input/main.md +14 -0
- package/tests/mocks/merge-includes/include-after-fence/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/include-in-code-block/input/_includes/glossary.md +1 -0
- package/tests/mocks/merge-includes/include-in-code-block/input/index.md +3 -0
- package/tests/mocks/merge-includes/include-in-code-block/input/main.md +19 -0
- package/tests/mocks/merge-includes/include-in-code-block/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/indent-paragraph-in-include/input/_includes/requirements.md +9 -0
- package/tests/mocks/merge-includes/indent-paragraph-in-include/input/index.md +3 -0
- package/tests/mocks/merge-includes/indent-paragraph-in-include/input/main.md +12 -0
- package/tests/mocks/merge-includes/indent-paragraph-in-include/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/inline-context/input/_includes/snippet.md +12 -0
- package/tests/mocks/merge-includes/inline-context/input/index.md +3 -0
- package/tests/mocks/merge-includes/inline-context/input/main.md +11 -0
- package/tests/mocks/merge-includes/inline-context/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/nested/input/_includes/inner.md +3 -0
- package/tests/mocks/merge-includes/nested/input/_includes/outer.md +7 -0
- package/tests/mocks/merge-includes/nested/input/index.md +3 -0
- package/tests/mocks/merge-includes/nested/input/main.md +7 -0
- package/tests/mocks/merge-includes/nested/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/relative-paths/input/_includes/sub/with-links.md +7 -0
- package/tests/mocks/merge-includes/relative-paths/input/index.md +3 -0
- package/tests/mocks/merge-includes/relative-paths/input/main.md +3 -0
- package/tests/mocks/merge-includes/relative-paths/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/term-extract/input/_includes/chapter.md +7 -0
- package/tests/mocks/merge-includes/term-extract/input/index.md +3 -0
- package/tests/mocks/merge-includes/term-extract/input/main.md +7 -0
- package/tests/mocks/merge-includes/term-extract/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/term-inline/input/_includes/defs.md +20 -0
- package/tests/mocks/merge-includes/term-inline/input/index.md +3 -0
- package/tests/mocks/merge-includes/term-inline/input/main.md +19 -0
- package/tests/mocks/merge-includes/term-inline/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/yfm-table/input/_includes/cell-content.md +1 -0
- package/tests/mocks/merge-includes/yfm-table/input/index.md +3 -0
- package/tests/mocks/merge-includes/yfm-table/input/main.md +12 -0
- package/tests/mocks/merge-includes/yfm-table/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/yfm-table-html-block/input/_includes/button.md +8 -0
- package/tests/mocks/merge-includes/yfm-table-html-block/input/index.md +3 -0
- package/tests/mocks/merge-includes/yfm-table-html-block/input/main.md +12 -0
- package/tests/mocks/merge-includes/yfm-table-html-block/input/toc.yaml +5 -0
- package/tests/mocks/merge-includes/yfm-table-pipe-in-content/input/_includes/example.md +1 -0
- package/tests/mocks/merge-includes/yfm-table-pipe-in-content/input/index.md +3 -0
- package/tests/mocks/merge-includes/yfm-table-pipe-in-content/input/main.md +22 -0
- package/tests/mocks/merge-includes/yfm-table-pipe-in-content/input/toc.yaml +5 -0
- package/tests/mocks/metadata/include-with-csp-meta/input/.yfm +8 -0
- package/tests/mocks/metadata/include-with-csp-meta/input/_includes/support.md +1 -0
- package/tests/mocks/metadata/include-with-csp-meta/input/page.md +7 -0
- package/tests/mocks/metadata/include-with-csp-meta/input/toc.yaml +4 -0
- package/tests/mocks/metadata/md2html-with-metadata/input/.yfm +1 -0
- package/tests/mocks/metadata/md2html-with-metadata/input/index.yaml +9 -0
- package/tests/mocks/metadata/md2html-with-metadata/input/page.md +16 -0
- package/tests/mocks/metadata/md2html-with-metadata/input/presets.yaml +6 -0
- package/tests/mocks/metadata/md2html-with-metadata/input/project/config.md +7 -0
- package/tests/mocks/metadata/md2html-with-metadata/input/toc.yaml +7 -0
- package/tests/mocks/metadata/md2md-with-metadata/input/index.yaml +9 -0
- package/tests/mocks/metadata/md2md-with-metadata/input/page.md +14 -0
- package/tests/mocks/metadata/md2md-with-metadata/input/presets.yaml +6 -0
- package/tests/mocks/metadata/md2md-with-metadata/input/project/config.md +7 -0
- package/tests/mocks/metadata/md2md-with-metadata/input/toc.yaml +7 -0
- package/tests/mocks/nested-docs/input/.yfm +1 -0
- package/tests/mocks/nested-docs/input/.yfm-subdoc +5 -0
- package/tests/mocks/nested-docs/input/index.md +5 -0
- package/tests/mocks/nested-docs/input/presets.yaml +3 -0
- package/tests/mocks/nested-docs/input/subdoc/.yfm +0 -0
- package/tests/mocks/nested-docs/input/subdoc/index.md +5 -0
- package/tests/mocks/nested-docs/input/subdoc/presets.yaml +3 -0
- package/tests/mocks/nested-docs/input/subdoc/toc.yaml +4 -0
- package/tests/mocks/nested-docs/input/toc.yaml +6 -0
- package/tests/mocks/nested-include-links/input/includes/middle.md +4 -0
- package/tests/mocks/nested-include-links/input/other/page.md +4 -0
- package/tests/mocks/nested-include-links/input/sub/deep/entry.md +8 -0
- package/tests/mocks/nested-include-links/input/target.md +4 -0
- package/tests/mocks/nested-include-links/input/toc.yaml +6 -0
- package/tests/mocks/neuro-expert/input/.yfm +14 -0
- package/tests/mocks/neuro-expert/input/en/folder/index.md +1 -0
- package/tests/mocks/neuro-expert/input/en/index-test-html/index.md +4 -0
- package/tests/mocks/neuro-expert/input/en/index.md +11 -0
- package/tests/mocks/neuro-expert/input/en/page1.md +8 -0
- package/tests/mocks/neuro-expert/input/en/page2.md +6 -0
- package/tests/mocks/neuro-expert/input/en/toc.yaml +13 -0
- package/tests/mocks/neuro-expert/input/ru/folder/index.md +1 -0
- package/tests/mocks/neuro-expert/input/ru/index-test-html/index.md +4 -0
- package/tests/mocks/neuro-expert/input/ru/index.md +5 -0
- package/tests/mocks/neuro-expert/input/ru/page1.md +3 -0
- package/tests/mocks/neuro-expert/input/ru/page2.md +11 -0
- package/tests/mocks/neuro-expert/input/ru/toc.yaml +12 -0
- package/tests/mocks/openapi-companion/input/petstore.yaml +29 -0
- package/tests/mocks/openapi-companion/input/toc.yaml +9 -0
- package/tests/mocks/openapi-companion-disabled/input/.yfm +2 -0
- package/tests/mocks/openapi-companion-disabled/input/petstore.yaml +29 -0
- package/tests/mocks/openapi-companion-disabled/input/toc.yaml +9 -0
- package/tests/mocks/openapi-companion-link/input/petstore.yaml +29 -0
- package/tests/mocks/openapi-companion-link/input/toc.yaml +12 -0
- package/tests/mocks/openapi-include-size-exceeds/input/openapi-spec.yaml +190 -0
- package/tests/mocks/openapi-include-size-exceeds/input/toc.yaml +9 -0
- package/tests/mocks/openapi-include-size-within/input/openapi-spec.yaml +16 -0
- package/tests/mocks/openapi-include-size-within/input/toc.yaml +9 -0
- package/tests/mocks/pdf-page/custom-pdf-icon/input/.yfm +6 -0
- package/tests/mocks/pdf-page/custom-pdf-icon/input/_assets/custom-pdf-icon.svg +1 -0
- package/tests/mocks/pdf-page/custom-pdf-icon/input/index.md +1 -0
- package/tests/mocks/pdf-page/custom-pdf-icon/input/pdf/output.pdf +0 -0
- package/tests/mocks/pdf-page/custom-pdf-icon/input/toc.yaml +2 -0
- package/tests/mocks/pdf-page/flag-enabled/input/__includes/include1.md +3 -0
- package/tests/mocks/pdf-page/flag-enabled/input/index.md +7 -0
- package/tests/mocks/pdf-page/flag-enabled/input/page1.md +6 -0
- package/tests/mocks/pdf-page/flag-enabled/input/page2.md +7 -0
- package/tests/mocks/pdf-page/flag-enabled/input/page3.md +1 -0
- package/tests/mocks/pdf-page/flag-enabled/input/syntax/test.md +1 -0
- package/tests/mocks/pdf-page/flag-enabled/input/toc.yaml +17 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/.yfm +2 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/section1/index.md +5 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/section1/page1.md +3 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/section1/toc.yaml +6 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/section2/index.md +5 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/section2/page1.md +3 -0
- package/tests/mocks/pdf-page/multiple-tocs/input/section2/toc.yaml +6 -0
- package/tests/mocks/pdf-page/pc-page/input/__images/mountain.jpg +0 -0
- package/tests/mocks/pdf-page/pc-page/input/__includes/include1.md +1 -0
- package/tests/mocks/pdf-page/pc-page/input/index.md +1 -0
- package/tests/mocks/pdf-page/pc-page/input/index.yaml +87 -0
- package/tests/mocks/pdf-page/pc-page/input/index2.yaml +135 -0
- package/tests/mocks/pdf-page/pc-page/input/page1.md +3 -0
- package/tests/mocks/pdf-page/pc-page/input/page2.md +3 -0
- package/tests/mocks/pdf-page/pc-page/input/pdf-titles/pdf-title-page1.md +13 -0
- package/tests/mocks/pdf-page/pc-page/input/pdf-titles/pdf-title-page2.md +5 -0
- package/tests/mocks/pdf-page/pc-page/input/presets.yaml +2 -0
- package/tests/mocks/pdf-page/pc-page/input/toc.yaml +13 -0
- package/tests/mocks/pdf-page/pc-page/input/with-pc-page.md +363 -0
- package/tests/mocks/pdf-page/title-pages/input/.yfm +6 -0
- package/tests/mocks/pdf-page/title-pages/input/__assets/start-page.css +16 -0
- package/tests/mocks/pdf-page/title-pages/input/__images/mountain.jpg +0 -0
- package/tests/mocks/pdf-page/title-pages/input/__includes/include1.md +1 -0
- package/tests/mocks/pdf-page/title-pages/input/index.md +1 -0
- package/tests/mocks/pdf-page/title-pages/input/page1.md +3 -0
- package/tests/mocks/pdf-page/title-pages/input/page2.md +3 -0
- package/tests/mocks/pdf-page/title-pages/input/pdf-endings/pdf-ending-page1.md +13 -0
- package/tests/mocks/pdf-page/title-pages/input/pdf-endings/pdf-ending-page2.md +3 -0
- package/tests/mocks/pdf-page/title-pages/input/pdf-titles/pdf-title-page1.md +13 -0
- package/tests/mocks/pdf-page/title-pages/input/pdf-titles/pdf-title-page2.md +3 -0
- package/tests/mocks/pdf-page/title-pages/input/presets.yaml +2 -0
- package/tests/mocks/pdf-page/title-pages/input/toc.yaml +15 -0
- package/tests/mocks/pdf-page/yfm-config/input/.yfm +5 -0
- package/tests/mocks/pdf-page/yfm-config/input/index.md +6 -0
- package/tests/mocks/pdf-page/yfm-config/input/page1.md +3 -0
- package/tests/mocks/pdf-page/yfm-config/input/page2.md +7 -0
- package/tests/mocks/pdf-page/yfm-config/input/page3.md +1 -0
- package/tests/mocks/pdf-page/yfm-config/input/toc.yaml +15 -0
- package/tests/mocks/plugin-corner-cases/images-in-deflists/input/image.jpeg +0 -0
- package/tests/mocks/plugin-corner-cases/images-in-deflists/input/index.md +5 -0
- package/tests/mocks/plugin-corner-cases/images-in-deflists/input/toc.yaml +4 -0
- package/tests/mocks/preprocess/input/.yfm +1 -0
- package/tests/mocks/preprocess/input/1.md +29 -0
- package/tests/mocks/preprocess/input/_assets/1.png +0 -0
- package/tests/mocks/preprocess/input/_assets/1.svg +15 -0
- package/tests/mocks/preprocess/input/_assets/2.svg +19 -0
- package/tests/mocks/preprocess/input/autotitle.md +39 -0
- package/tests/mocks/preprocess/input/commented-include.md +3 -0
- package/tests/mocks/preprocess/input/images.md +163 -0
- package/tests/mocks/preprocess/input/included-item.md +12 -0
- package/tests/mocks/preprocess/input/includes/deep.md +1 -0
- package/tests/mocks/preprocess/input/includes/deepWithIndent.md +6 -0
- package/tests/mocks/preprocess/input/includes/level1.md +9 -0
- package/tests/mocks/preprocess/input/includes/level11.md +1 -0
- package/tests/mocks/preprocess/input/includes/presets.yaml +2 -0
- package/tests/mocks/preprocess/input/includes/sub/level2.md +7 -0
- package/tests/mocks/preprocess/input/includes/sub/user.md +1 -0
- package/tests/mocks/preprocess/input/includes/sub/userWithIndent.md +5 -0
- package/tests/mocks/preprocess/input/includes/test.md +1 -0
- package/tests/mocks/preprocess/input/includes/user.md +1 -0
- package/tests/mocks/preprocess/input/includes.md +18 -0
- package/tests/mocks/preprocess/input/latex.md +3 -0
- package/tests/mocks/preprocess/input/level0.md +7 -0
- package/tests/mocks/preprocess/input/level1/level1.md +7 -0
- package/tests/mocks/preprocess/input/level1/level2/level2.md +6 -0
- package/tests/mocks/preprocess/input/level1/toc.yaml +5 -0
- package/tests/mocks/preprocess/input/mermaid.md +13 -0
- package/tests/mocks/preprocess/input/presets.yaml +8 -0
- package/tests/mocks/preprocess/input/sub/folder/item-1.md +7 -0
- package/tests/mocks/preprocess/input/sub/toc.yaml +5 -0
- package/tests/mocks/preprocess/input/toc-i.yaml +3 -0
- package/tests/mocks/preprocess/input/toc.yaml +24 -0
- package/tests/mocks/redirects-validation/extensions-deprecation/input/blah.md +0 -0
- package/tests/mocks/redirects-validation/extensions-deprecation/input/redirects.yaml +5 -0
- package/tests/mocks/redirects-validation/extensions-deprecation/input/toc.yaml +4 -0
- package/tests/mocks/redirects-validation/invalid-regex/input/blah.md +0 -0
- package/tests/mocks/redirects-validation/invalid-regex/input/redirects.yaml +3 -0
- package/tests/mocks/redirects-validation/invalid-regex/input/toc.yaml +4 -0
- package/tests/mocks/redirects-validation/malformed-redirect/input/blah.md +0 -0
- package/tests/mocks/redirects-validation/malformed-redirect/input/redirects.yaml +6 -0
- package/tests/mocks/redirects-validation/malformed-redirect/input/toc.yaml +4 -0
- package/tests/mocks/redirects-validation/same-path/input/blah.md +0 -0
- package/tests/mocks/redirects-validation/same-path/input/redirects.yaml +3 -0
- package/tests/mocks/redirects-validation/same-path/input/toc.yaml +4 -0
- package/tests/mocks/redirects-validation/unparseable/input/blah.md +0 -0
- package/tests/mocks/redirects-validation/unparseable/input/redirects.yaml +11 -0
- package/tests/mocks/redirects-validation/unparseable/input/toc.yaml +4 -0
- package/tests/mocks/regression/input/.yfm +2 -0
- package/tests/mocks/regression/input/1.md +29 -0
- package/tests/mocks/regression/input/_assets/1.png +0 -0
- package/tests/mocks/regression/input/_assets/2.png +0 -0
- package/tests/mocks/regression/input/_assets/3.png +0 -0
- package/tests/mocks/regression/input/_assets/4.png +0 -0
- package/tests/mocks/regression/input/_assets/5_1.png +0 -0
- package/tests/mocks/regression/input/_assets/empty.pdf +0 -0
- package/tests/mocks/regression/input/autotitle.md +58 -0
- package/tests/mocks/regression/input/commented-include.md +3 -0
- package/tests/mocks/regression/input/entry-as-include.md +3 -0
- package/tests/mocks/regression/input/generic/1.md +3 -0
- package/tests/mocks/regression/input/generic/2.md +3 -0
- package/tests/mocks/regression/input/generic/3.md +1 -0
- package/tests/mocks/regression/input/generic/Sub notes/1.md +3 -0
- package/tests/mocks/regression/input/generic/Sub notes/2.md +3 -0
- package/tests/mocks/regression/input/images.md +13 -0
- package/tests/mocks/regression/input/included-item.md +13 -0
- package/tests/mocks/regression/input/includer-of-entry.md +5 -0
- package/tests/mocks/regression/input/includes/deep.md +3 -0
- package/tests/mocks/regression/input/includes/fragments.md +41 -0
- package/tests/mocks/regression/input/includes/presets.yaml +3 -0
- package/tests/mocks/regression/input/includes/styles.md +8 -0
- package/tests/mocks/regression/input/includes/test.md +1 -0
- package/tests/mocks/regression/input/includes/tools.md +1 -0
- package/tests/mocks/regression/input/includes/user.md +1 -0
- package/tests/mocks/regression/input/includes.md +33 -0
- package/tests/mocks/regression/input/index.yaml +9 -0
- package/tests/mocks/regression/input/latex.md +3 -0
- package/tests/mocks/regression/input/merge/merge.md +5 -0
- package/tests/mocks/regression/input/merge/presets.yaml +3 -0
- package/tests/mocks/regression/input/merge/toc.yaml +6 -0
- package/tests/mocks/regression/input/merge-source/merged.md +3 -0
- package/tests/mocks/regression/input/merge-source/toc-m.yaml +4 -0
- package/tests/mocks/regression/input/mermaid.md +13 -0
- package/tests/mocks/regression/input/openapi-spec.yaml +111 -0
- package/tests/mocks/regression/input/presets.yaml +12 -0
- package/tests/mocks/regression/input/redirects.yaml +6 -0
- package/tests/mocks/regression/input/sub/folder/item-1.md +5 -0
- package/tests/mocks/regression/input/sub/toc.yaml +5 -0
- package/tests/mocks/regression/input/toc-i.yaml +3 -0
- package/tests/mocks/regression/input/toc.yaml +43 -0
- package/tests/mocks/restricted-access/test1/input/index.md +0 -0
- package/tests/mocks/restricted-access/test1/input/plugins/index.md +0 -0
- package/tests/mocks/restricted-access/test1/input/plugins/index2.md +0 -0
- package/tests/mocks/restricted-access/test1/input/plugins/index3.md +0 -0
- package/tests/mocks/restricted-access/test1/input/plugins/index4.md +4 -0
- package/tests/mocks/restricted-access/test1/input/toc.yaml +28 -0
- package/tests/mocks/restricted-access/test2/input/index.md +0 -0
- package/tests/mocks/restricted-access/test2/input/plugins/index.md +0 -0
- package/tests/mocks/restricted-access/test2/input/project/index.md +0 -0
- package/tests/mocks/restricted-access/test2/input/toc.yaml +21 -0
- package/tests/mocks/restricted-access/test3/input/a1.md +1 -0
- package/tests/mocks/restricted-access/test3/input/folder1/a1.md +1 -0
- package/tests/mocks/restricted-access/test3/input/folder1/folder2/a1.md +1 -0
- package/tests/mocks/restricted-access/test3/input/folder1/folder2/toc.yaml +8 -0
- package/tests/mocks/restricted-access/test3/input/folder1/toc.yaml +10 -0
- package/tests/mocks/restricted-access/test3/input/index.md +0 -0
- package/tests/mocks/restricted-access/test3/input/toc.yaml +16 -0
- package/tests/mocks/rtl/multidirectional-languages/input/.yfm +1 -0
- package/tests/mocks/rtl/multidirectional-languages/input/ar/index.yaml +4 -0
- package/tests/mocks/rtl/multidirectional-languages/input/ar/page.md +1 -0
- package/tests/mocks/rtl/multidirectional-languages/input/ar/toc.yaml +5 -0
- package/tests/mocks/rtl/multidirectional-languages/input/en/index.yaml +9 -0
- package/tests/mocks/rtl/multidirectional-languages/input/en/page.md +7 -0
- package/tests/mocks/rtl/multidirectional-languages/input/en/toc.yaml +5 -0
- package/tests/mocks/rtl/rtl-language/input/.yfm +1 -0
- package/tests/mocks/rtl/rtl-language/input/index.yaml +4 -0
- package/tests/mocks/rtl/rtl-language/input/page.md +1 -0
- package/tests/mocks/rtl/rtl-language/input/toc.yaml +5 -0
- package/tests/mocks/search/input/.yfm +12 -0
- package/tests/mocks/search/input/index.md +3 -0
- package/tests/mocks/search/input/toc.yaml +1 -0
- package/tests/mocks/single-page/input/ru/index.yaml +9 -0
- package/tests/mocks/single-page/input/ru/page.md +14 -0
- package/tests/mocks/single-page/input/ru/project/config.md +1 -0
- package/tests/mocks/single-page/input/ru/toc.yaml +7 -0
- package/tests/mocks/skip-html-extension/monolingual/input/.yfm +1 -0
- package/tests/mocks/skip-html-extension/monolingual/input/folder/index.md +1 -0
- package/tests/mocks/skip-html-extension/monolingual/input/index-test-html/index.md +4 -0
- package/tests/mocks/skip-html-extension/monolingual/input/index.md +6 -0
- package/tests/mocks/skip-html-extension/monolingual/input/page1.md +3 -0
- package/tests/mocks/skip-html-extension/monolingual/input/page2.md +6 -0
- package/tests/mocks/skip-html-extension/monolingual/input/toc.yaml +13 -0
- package/tests/mocks/skip-html-extension/multilingual/input/.yfm +2 -0
- package/tests/mocks/skip-html-extension/multilingual/input/en/folder/index.md +1 -0
- package/tests/mocks/skip-html-extension/multilingual/input/en/index-test-html/index.md +4 -0
- package/tests/mocks/skip-html-extension/multilingual/input/en/index.md +6 -0
- package/tests/mocks/skip-html-extension/multilingual/input/en/page1.md +3 -0
- package/tests/mocks/skip-html-extension/multilingual/input/en/page2.md +6 -0
- package/tests/mocks/skip-html-extension/multilingual/input/en/toc.yaml +13 -0
- package/tests/mocks/skip-html-extension/multilingual/input/ru/folder/index.md +1 -0
- package/tests/mocks/skip-html-extension/multilingual/input/ru/index-test-html/index.md +4 -0
- package/tests/mocks/skip-html-extension/multilingual/input/ru/index.md +5 -0
- package/tests/mocks/skip-html-extension/multilingual/input/ru/page1.md +3 -0
- package/tests/mocks/skip-html-extension/multilingual/input/ru/page2.md +6 -0
- package/tests/mocks/skip-html-extension/multilingual/input/ru/toc.yaml +12 -0
- package/tests/mocks/themer/test1/input/.yfm +3 -0
- package/tests/mocks/themer/test1/input/_assets/style/custom.css +3 -0
- package/tests/mocks/themer/test1/input/index.md +1 -0
- package/tests/mocks/themer/test1/input/theme.yaml +14 -0
- package/tests/mocks/themer/test1/input/toc.yaml +3 -0
- package/tests/mocks/themer/test2/input/index.md +1 -0
- package/tests/mocks/themer/test2/input/theme.yaml +8 -0
- package/tests/mocks/themer/test2/input/toc.yaml +3 -0
- package/tests/mocks/themer/test3/input/index.md +1 -0
- package/tests/mocks/themer/test3/input/toc.yaml +3 -0
- package/tests/mocks/themer/test4/input/index.md +1 -0
- package/tests/mocks/themer/test4/input/theme.yaml +3 -0
- package/tests/mocks/themer/test4/input/toc.yaml +3 -0
- package/tests/mocks/themer/test5/input/.yfm +1 -0
- package/tests/mocks/themer/test5/input/index.md +1 -0
- package/tests/mocks/themer/test5/input/toc.yaml +3 -0
- package/tests/mocks/themer/test6/input/.yfm +3 -0
- package/tests/mocks/themer/test6/input/index.md +11 -0
- package/tests/mocks/themer/test6/input/toc.yaml +5 -0
- package/tests/mocks/themer/test7/input/.yfm +3 -0
- package/tests/mocks/themer/test7/input/index.md +5 -0
- package/tests/mocks/themer/test7/input/theme.yaml +7 -0
- package/tests/mocks/themer/test7/input/toc.yaml +5 -0
- package/tests/mocks/themer/test8/input/.yfm +3 -0
- package/tests/mocks/themer/test8/input/index.md +5 -0
- package/tests/mocks/themer/test8/input/toc.yaml +5 -0
- package/tests/mocks/toc-label/input/.yfm +1 -0
- package/tests/mocks/toc-label/input/index.md +3 -0
- package/tests/mocks/toc-label/input/page1.md +3 -0
- package/tests/mocks/toc-label/input/toc.yaml +10 -0
- package/tests/mocks/translation/compose/input/openapi-spec.yaml.skl +41 -0
- package/tests/mocks/translation/compose/input/openapi-spec.yaml.xliff +52 -0
- package/tests/mocks/translation/compose/input/toc.yaml.skl +8 -0
- package/tests/mocks/translation/compose/input/toc.yaml.xliff +16 -0
- package/tests/mocks/translation/conditions/input/index.md +37 -0
- package/tests/mocks/translation/conditions/input/toc.yaml +5 -0
- package/tests/mocks/translation/custom-schema/custom-openapi-schema-30.yaml +1054 -0
- package/tests/mocks/translation/dir-files/input/.yfm +6 -0
- package/tests/mocks/translation/dir-files/input/ru/_includes/test.md +1 -0
- package/tests/mocks/translation/dir-files/input/ru/_no-translate/exclude.md +1 -0
- package/tests/mocks/translation/dir-files/input/ru/aboba.md +5 -0
- package/tests/mocks/translation/dir-files/input/ru/index.md +3 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/a1.md +3 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/folder1/a1.md +3 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/folder1/toc-i.yaml +3 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/index-yfm.md +2 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/index.yaml +24 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/not-in-toc.md +20 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/syntax/base.md +3 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/syntax/index.md +2 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/syntax/lists.md +1 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/toc.yaml +19 -0
- package/tests/mocks/translation/dir-files/input/ru/nested/use_filtered_above.md +4 -0
- package/tests/mocks/translation/dir-files/input/ru/no-var-page.md +3 -0
- package/tests/mocks/translation/dir-files/input/ru/not-in-toc.md +20 -0
- package/tests/mocks/translation/dir-files/input/ru/to-be-excluded.md +1 -0
- package/tests/mocks/translation/dir-files/input/ru/toc.yaml +13 -0
- package/tests/mocks/translation/no-translate/input/index.md +7 -0
- package/tests/mocks/translation/no-translate/input/no-translate.md +57 -0
- package/tests/mocks/translation/no-translate/input/openapi-spec.yaml +37 -0
- package/tests/mocks/translation/no-translate/input/toc.yaml +11 -0
- package/tests/mocks/translation/openapi/input/openapi-spec.yaml +50 -0
- package/tests/mocks/translation/openapi/input/toc.yaml +8 -0
- package/tests/mocks/translation/toc-include/input/included-toc/merged-included-toc-item.md +1 -0
- package/tests/mocks/translation/toc-include/input/included-toc/toc.yaml +3 -0
- package/tests/mocks/translation/toc-include/input/included-toc.md +1 -0
- package/tests/mocks/translation/toc-include/input/index.md +7 -0
- package/tests/mocks/translation/toc-include/input/merged-included-toc-item.md +1 -0
- package/tests/mocks/translation/toc-include/input/no-translate.md +57 -0
- package/tests/mocks/translation/toc-include/input/openapi-spec.yaml +37 -0
- package/tests/mocks/translation/toc-include/input/toc.yaml +14 -0
- package/tests/mocks/translation/yaml-scheme/input/ru/.yfm +1 -0
- package/tests/mocks/translation/yaml-scheme/input/ru/index-direct.yaml +133 -0
- package/tests/mocks/translation/yaml-scheme/input/ru/index.yaml +32 -0
- package/tests/mocks/translation/yaml-scheme/input/ru/toc.yaml +19 -0
- package/tests/mocks/vars-conditions/input/.yfm +1 -0
- package/tests/mocks/vars-conditions/input/index.md +3 -0
- package/tests/mocks/vars-conditions/input/page1.yaml +13 -0
- package/tests/mocks/vars-conditions/input/page2.md +24 -0
- package/tests/mocks/vars-conditions/input/page3.md +1 -0
- package/tests/mocks/vars-conditions/input/page4.md +1 -0
- package/tests/mocks/vars-conditions/input/page5.yaml +10 -0
- package/tests/mocks/vars-conditions/input/presets.yaml +9 -0
- package/tests/mocks/vars-conditions/input/toc.yaml +51 -0
- package/tests/mocks/vars-ignore/input/.yfm +1 -0
- package/tests/mocks/vars-ignore/input/data/data-test.md +4 -0
- package/tests/mocks/vars-ignore/input/data/presets.yaml +3 -0
- package/tests/mocks/vars-ignore/input/data/temp-test.md +4 -0
- package/tests/mocks/vars-ignore/input/ignored/ignored-test.md +4 -0
- package/tests/mocks/vars-ignore/input/ignored/presets.yaml +3 -0
- package/tests/mocks/vars-ignore/input/presets.yaml +3 -0
- package/tests/mocks/vars-ignore/input/test.md +6 -0
- package/tests/mocks/vars-ignore/input/toc.yaml +8 -0
- package/tests/mocks/warning/unreachable-autotitle/input/index.md +1 -0
- package/tests/mocks/warning/unreachable-autotitle/input/link.md +0 -0
- package/tests/mocks/warning/unreachable-autotitle/input/toc.yaml +4 -0
- package/tests/tsconfig.json +13 -0
- package/vitest.integration.config.ts +26 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import {mkdtemp, rm} from 'node:fs/promises';
|
|
2
|
+
import {tmpdir} from 'node:os';
|
|
3
|
+
import {join} from 'node:path';
|
|
4
|
+
import {afterEach, beforeEach, describe, expect, it} from 'vitest';
|
|
5
|
+
|
|
6
|
+
import {TestAdapter, compareDirectories} from '../fixtures';
|
|
7
|
+
|
|
8
|
+
function run(args: string[]) {
|
|
9
|
+
return TestAdapter.runner.runYfmDocs(['init', ...args]);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
let tmpDir: string;
|
|
13
|
+
|
|
14
|
+
beforeEach(async () => {
|
|
15
|
+
tmpDir = await mkdtemp(join(tmpdir(), 'yfm-init-'));
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
afterEach(async () => {
|
|
19
|
+
await rm(tmpDir, {recursive: true, force: true});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
describe('yfm init — single-lang', () => {
|
|
23
|
+
it('creates project structure', async () => {
|
|
24
|
+
const out = join(tmpDir, 'proj');
|
|
25
|
+
const report = await run(['--output', out, '--name', 'My Docs', '--skip-interactive']);
|
|
26
|
+
|
|
27
|
+
expect(report.code).toBe(0);
|
|
28
|
+
await compareDirectories(out);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('derives project name from output directory basename', async () => {
|
|
32
|
+
const out = join(tmpDir, 'my-project');
|
|
33
|
+
await run(['--output', out]);
|
|
34
|
+
|
|
35
|
+
await compareDirectories(out);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('--no-header removes navigation block', async () => {
|
|
39
|
+
const out = join(tmpDir, 'proj');
|
|
40
|
+
await run(['--output', out, '--name', 'My Docs', '--no-header', '--skip-interactive']);
|
|
41
|
+
|
|
42
|
+
await compareDirectories(out);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
describe('yfm init — multi-lang', () => {
|
|
47
|
+
it('creates project structure', async () => {
|
|
48
|
+
const out = join(tmpDir, 'proj');
|
|
49
|
+
const report = await run([
|
|
50
|
+
'--output',
|
|
51
|
+
out,
|
|
52
|
+
'--langs',
|
|
53
|
+
'ru,en',
|
|
54
|
+
'--name',
|
|
55
|
+
'My Docs',
|
|
56
|
+
'--skip-interactive',
|
|
57
|
+
]);
|
|
58
|
+
|
|
59
|
+
expect(report.code).toBe(0);
|
|
60
|
+
await compareDirectories(out);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('--default-lang sets lang field in .yfm', async () => {
|
|
64
|
+
const out = join(tmpDir, 'proj');
|
|
65
|
+
await run([
|
|
66
|
+
'--output',
|
|
67
|
+
out,
|
|
68
|
+
'--langs',
|
|
69
|
+
'ru,en',
|
|
70
|
+
'--default-lang',
|
|
71
|
+
'en',
|
|
72
|
+
'--name',
|
|
73
|
+
'My Docs',
|
|
74
|
+
'--skip-interactive',
|
|
75
|
+
]);
|
|
76
|
+
|
|
77
|
+
await compareDirectories(out);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('--no-header removes navigation from all toc.yaml files', async () => {
|
|
81
|
+
const out = join(tmpDir, 'proj');
|
|
82
|
+
await run([
|
|
83
|
+
'--output',
|
|
84
|
+
out,
|
|
85
|
+
'--langs',
|
|
86
|
+
'ru,en',
|
|
87
|
+
'--no-header',
|
|
88
|
+
'--name',
|
|
89
|
+
'My Docs',
|
|
90
|
+
'--skip-interactive',
|
|
91
|
+
]);
|
|
92
|
+
|
|
93
|
+
await compareDirectories(out);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
describe('yfm init — errors', () => {
|
|
98
|
+
it('fails with non-zero exit code if output directory is not empty', async () => {
|
|
99
|
+
const out = join(tmpDir, 'proj');
|
|
100
|
+
await run(['--output', out]);
|
|
101
|
+
|
|
102
|
+
const report = await run(['--output', out]);
|
|
103
|
+
expect(report.code).toBeGreaterThan(0);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {describe, test} from 'vitest';
|
|
2
|
+
|
|
3
|
+
import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
|
|
4
|
+
|
|
5
|
+
describe('llms.txt', () => {
|
|
6
|
+
// Builds the same fixture in both md and html with `--llms` (variant B):
|
|
7
|
+
// - md output -> `${outputPath}` (llms-full.txt has includes merged)
|
|
8
|
+
// - html output -> `${outputPath}-html` (llms-full.txt keeps include directives)
|
|
9
|
+
// The fixture also has per-page frontmatter descriptions (surfaced in
|
|
10
|
+
// llms.txt) and a `when: showBeta` page that the default version filters
|
|
11
|
+
// out — proving the artifacts stay consistent with the built "version".
|
|
12
|
+
test('generates llms.txt and llms-full.txt for md and html', async () => {
|
|
13
|
+
const {inputPath, outputPath} = getTestPaths('mocks/llms');
|
|
14
|
+
|
|
15
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
16
|
+
md2md: true,
|
|
17
|
+
md2html: true,
|
|
18
|
+
args: '--llms',
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
await compareDirectories(outputPath);
|
|
22
|
+
await compareDirectories(`${outputPath}-html`);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {describe} from 'vitest';
|
|
2
|
+
|
|
3
|
+
import {generateMapTestTemplate} from '../fixtures';
|
|
4
|
+
|
|
5
|
+
describe('Allow load custom resources', () => {
|
|
6
|
+
generateMapTestTemplate(
|
|
7
|
+
'md2md with custom resources',
|
|
8
|
+
'mocks/load-custom-resources/md2md-with-resources',
|
|
9
|
+
{md2html: false, args: '--allow-custom-resources'},
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
generateMapTestTemplate(
|
|
13
|
+
'md2html with custom resources',
|
|
14
|
+
'mocks/load-custom-resources/md2html-with-resources',
|
|
15
|
+
{md2md: false, args: '--allow-custom-resources'},
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
generateMapTestTemplate(
|
|
19
|
+
'md2html single page with custom resources',
|
|
20
|
+
'mocks/load-custom-resources/single-page-with-resources',
|
|
21
|
+
{md2md: false, args: '--allow-custom-resources --single-page'},
|
|
22
|
+
);
|
|
23
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {describe} from 'vitest';
|
|
2
|
+
|
|
3
|
+
import {generateMapTestTemplate} from '../fixtures';
|
|
4
|
+
|
|
5
|
+
describe('Markdown options from .yfm config', () => {
|
|
6
|
+
generateMapTestTemplate(
|
|
7
|
+
'Markdown options from .yfm config 1',
|
|
8
|
+
'mocks/markdown-options/example-1',
|
|
9
|
+
{md2html: true, md2md: false, args: '-j2'},
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
generateMapTestTemplate(
|
|
13
|
+
'Markdown options from .yfm config 2',
|
|
14
|
+
'mocks/markdown-options/example-2',
|
|
15
|
+
{md2html: true, md2md: false, args: '-j2'},
|
|
16
|
+
);
|
|
17
|
+
});
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import {describe, test} from 'vitest';
|
|
2
|
+
|
|
3
|
+
import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
|
|
4
|
+
|
|
5
|
+
describe('Merge includes (md2md)', () => {
|
|
6
|
+
test('basic: simple include is inlined', async () => {
|
|
7
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/basic');
|
|
8
|
+
|
|
9
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
10
|
+
md2md: true,
|
|
11
|
+
md2html: false,
|
|
12
|
+
args: '--merge-includes',
|
|
13
|
+
});
|
|
14
|
+
await compareDirectories(outputPath);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
test('nested: outer inlined, inner as fallback', async () => {
|
|
18
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/nested');
|
|
19
|
+
|
|
20
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
21
|
+
md2md: true,
|
|
22
|
+
md2html: false,
|
|
23
|
+
args: '--merge-includes',
|
|
24
|
+
});
|
|
25
|
+
await compareDirectories(outputPath);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('relative-paths: inlined content has rebased paths', async () => {
|
|
29
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/relative-paths');
|
|
30
|
+
|
|
31
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
32
|
+
md2md: true,
|
|
33
|
+
md2html: false,
|
|
34
|
+
args: '--merge-includes',
|
|
35
|
+
});
|
|
36
|
+
await compareDirectories(outputPath);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('hash-section: includes with hash extract sections inline', async () => {
|
|
40
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/hash-fallback');
|
|
41
|
+
|
|
42
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
43
|
+
md2md: true,
|
|
44
|
+
md2html: false,
|
|
45
|
+
args: '--merge-includes',
|
|
46
|
+
});
|
|
47
|
+
await compareDirectories(outputPath);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('term-inline: includes inside term defs use fallback (not inlined)', async () => {
|
|
51
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/term-inline');
|
|
52
|
+
|
|
53
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
54
|
+
md2md: true,
|
|
55
|
+
md2html: false,
|
|
56
|
+
args: '--merge-includes --multiline-term-definitions',
|
|
57
|
+
});
|
|
58
|
+
await compareDirectories(outputPath);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test('inline-context: non-standalone includes use fallback', async () => {
|
|
62
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/inline-context');
|
|
63
|
+
|
|
64
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
65
|
+
md2md: true,
|
|
66
|
+
md2html: false,
|
|
67
|
+
args: '--merge-includes',
|
|
68
|
+
});
|
|
69
|
+
await compareDirectories(outputPath);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test('term-extract: dep with terms → terms extracted, content inlined (Step 4)', async () => {
|
|
73
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/term-extract');
|
|
74
|
+
|
|
75
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
76
|
+
md2md: true,
|
|
77
|
+
md2html: false,
|
|
78
|
+
args: '--merge-includes --multiline-term-definitions',
|
|
79
|
+
});
|
|
80
|
+
await compareDirectories(outputPath);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
test('yfm-table: include followed by || separator is inlined', async () => {
|
|
84
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/yfm-table');
|
|
85
|
+
|
|
86
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
87
|
+
md2md: true,
|
|
88
|
+
md2html: false,
|
|
89
|
+
args: '--merge-includes',
|
|
90
|
+
});
|
|
91
|
+
await compareDirectories(outputPath);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
test('yfm-table: include ending with HTML block places || on its own line', async () => {
|
|
95
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/yfm-table-html-block');
|
|
96
|
+
|
|
97
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
98
|
+
md2md: true,
|
|
99
|
+
md2html: false,
|
|
100
|
+
args: '--merge-includes',
|
|
101
|
+
});
|
|
102
|
+
await compareDirectories(outputPath);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test('yfm-table: include with `|` in inline code falls back to {% included %}', async () => {
|
|
106
|
+
const {inputPath, outputPath} = getTestPaths(
|
|
107
|
+
'mocks/merge-includes/yfm-table-pipe-in-content',
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
111
|
+
md2md: true,
|
|
112
|
+
md2html: false,
|
|
113
|
+
args: '--merge-includes',
|
|
114
|
+
});
|
|
115
|
+
await compareDirectories(outputPath);
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
test('indent-paragraph: include under indent with indented top-level paragraph falls back to {% included %}', async () => {
|
|
119
|
+
const {inputPath, outputPath} = getTestPaths(
|
|
120
|
+
'mocks/merge-includes/indent-paragraph-in-include',
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
124
|
+
md2md: true,
|
|
125
|
+
md2html: false,
|
|
126
|
+
args: '--merge-includes',
|
|
127
|
+
});
|
|
128
|
+
await compareDirectories(outputPath);
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
test('html-in-list: include with <style> in list (any indent) uses fallback', async () => {
|
|
132
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/html-in-list');
|
|
133
|
+
|
|
134
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
135
|
+
md2md: true,
|
|
136
|
+
md2html: false,
|
|
137
|
+
args: '--merge-includes',
|
|
138
|
+
});
|
|
139
|
+
await compareDirectories(outputPath);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
test('hash-section-html: hash-section include in list is inlined when only other section has <style>', async () => {
|
|
143
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/hash-section-html');
|
|
144
|
+
|
|
145
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
146
|
+
md2md: true,
|
|
147
|
+
md2html: false,
|
|
148
|
+
args: '--merge-includes',
|
|
149
|
+
});
|
|
150
|
+
await compareDirectories(outputPath);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
test('without flag: includes are NOT merged', async () => {
|
|
154
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/basic');
|
|
155
|
+
|
|
156
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
157
|
+
md2md: true,
|
|
158
|
+
md2html: false,
|
|
159
|
+
args: '--no-merge-includes',
|
|
160
|
+
});
|
|
161
|
+
await compareDirectories(outputPath);
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
test('html-comment-blanks: blank lines inside HTML comments keep list/cut continuity', async () => {
|
|
165
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/html-comment-blanks');
|
|
166
|
+
|
|
167
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
168
|
+
md2md: true,
|
|
169
|
+
md2html: false,
|
|
170
|
+
args: '--merge-includes',
|
|
171
|
+
});
|
|
172
|
+
await compareDirectories(outputPath);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
test('include-in-code-block: include shown as code example is NOT expanded', async () => {
|
|
176
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/include-in-code-block');
|
|
177
|
+
|
|
178
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
179
|
+
md2md: true,
|
|
180
|
+
md2html: false,
|
|
181
|
+
args: '--merge-includes',
|
|
182
|
+
});
|
|
183
|
+
await compareDirectories(outputPath);
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
test('include-after-fence: include placed right after a closing ``` fence is inlined', async () => {
|
|
187
|
+
const {inputPath, outputPath} = getTestPaths('mocks/merge-includes/include-after-fence');
|
|
188
|
+
|
|
189
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
190
|
+
md2md: true,
|
|
191
|
+
md2html: false,
|
|
192
|
+
args: '--merge-includes',
|
|
193
|
+
});
|
|
194
|
+
await compareDirectories(outputPath);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import {readFileSync, readdirSync} from 'node:fs';
|
|
2
|
+
import {join} from 'node:path';
|
|
3
|
+
import {describe, expect, test} from 'vitest';
|
|
4
|
+
|
|
5
|
+
import {TestAdapter, generateMapTestTemplate, getTestPaths} from '../fixtures';
|
|
6
|
+
|
|
7
|
+
function findFile(dir: string, predicate: (name: string) => boolean): string | null {
|
|
8
|
+
try {
|
|
9
|
+
for (const name of readdirSync(dir, {withFileTypes: true})) {
|
|
10
|
+
const full = join(dir, name.name);
|
|
11
|
+
|
|
12
|
+
if (name.isDirectory()) {
|
|
13
|
+
const found = findFile(full, predicate);
|
|
14
|
+
|
|
15
|
+
if (found) {
|
|
16
|
+
return found;
|
|
17
|
+
}
|
|
18
|
+
} else if (predicate(name.name)) {
|
|
19
|
+
return full;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
} catch {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe('Allow load custom resources', () => {
|
|
30
|
+
generateMapTestTemplate('md2md with metadata', 'mocks/metadata/md2md-with-metadata', {
|
|
31
|
+
md2html: false,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
generateMapTestTemplate('md2html with metadata', 'mocks/metadata/md2html-with-metadata', {
|
|
35
|
+
md2md: false,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
test('include file with csp metadata does not leak frontmatter into rendered HTML (two-step build)', async () => {
|
|
39
|
+
const {inputPath, outputPath} = getTestPaths('mocks/metadata/include-with-csp-meta');
|
|
40
|
+
|
|
41
|
+
// Step 1: md2md — include files get CSP frontmatter from config resources
|
|
42
|
+
// Disable merge-includes so include files are written to disk for verification
|
|
43
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
44
|
+
md2md: true,
|
|
45
|
+
md2html: false,
|
|
46
|
+
args: '--no-merge-includes',
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// Verify that md2md wrote frontmatter to the include file
|
|
50
|
+
const mdIncludePath = findFile(
|
|
51
|
+
outputPath,
|
|
52
|
+
(n) => n.includes('support') && n.endsWith('.md'),
|
|
53
|
+
);
|
|
54
|
+
expect(mdIncludePath).toBeTruthy();
|
|
55
|
+
if (!mdIncludePath) {
|
|
56
|
+
throw new Error('mdIncludePath is null');
|
|
57
|
+
}
|
|
58
|
+
const mdContent = readFileSync(mdIncludePath, 'utf8');
|
|
59
|
+
expect(mdContent).toMatch(/^---/);
|
|
60
|
+
expect(mdContent).toMatch(/csp:/);
|
|
61
|
+
|
|
62
|
+
// Step 2: md2html on md2md output — include frontmatter must not leak into HTML
|
|
63
|
+
await TestAdapter.testBuildPass(outputPath, outputPath + '-html', {
|
|
64
|
+
md2md: false,
|
|
65
|
+
md2html: true,
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const htmlPath = findFile(outputPath + '-html', (n) => n === 'page.html');
|
|
69
|
+
expect(htmlPath).toBeTruthy();
|
|
70
|
+
if (!htmlPath) {
|
|
71
|
+
throw new Error('htmlPath is null');
|
|
72
|
+
}
|
|
73
|
+
const html = readFileSync(htmlPath, 'utf8');
|
|
74
|
+
|
|
75
|
+
expect(html).not.toMatch(/style-src:\s*unsafe-inline/);
|
|
76
|
+
expect(html).not.toMatch(/connect-src:\s*uaas\.yandex\.ru/);
|
|
77
|
+
expect(html).toMatch(/Support content only/);
|
|
78
|
+
}, 45000);
|
|
79
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {readFileSync} from 'node:fs';
|
|
2
|
+
import {resolve} from 'node:path';
|
|
3
|
+
import {describe, expect, test} from 'vitest';
|
|
4
|
+
|
|
5
|
+
import {TestAdapter, getTestPaths} from '../fixtures';
|
|
6
|
+
|
|
7
|
+
describe('Nested include links', () => {
|
|
8
|
+
test('Links in nested includes should resolve relative to the include file, not the entry file', async () => {
|
|
9
|
+
const {inputPath, outputPath} = getTestPaths('mocks/nested-include-links');
|
|
10
|
+
|
|
11
|
+
// Build directly to HTML
|
|
12
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
13
|
+
md2md: false,
|
|
14
|
+
md2html: true,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const htmlPath = resolve(outputPath, 'sub/deep/entry.html');
|
|
18
|
+
const html = readFileSync(htmlPath, 'utf8');
|
|
19
|
+
|
|
20
|
+
// The link from other/page.md is [link to target](../target.md)
|
|
21
|
+
// It should resolve relative to other/page.md → target.md → target.html
|
|
22
|
+
// NOT relative to the entry file sub/deep/entry.md → sub/deep/target.html
|
|
23
|
+
expect(html).toContain('target.html');
|
|
24
|
+
expect(html).not.toContain('sub/deep/target.html');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {describe, it} from 'vitest';
|
|
2
|
+
|
|
3
|
+
import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
|
|
4
|
+
|
|
5
|
+
describe('Neuro-expert', () => {
|
|
6
|
+
it('Neuro-expert', async () => {
|
|
7
|
+
const {inputPath, outputPath} = getTestPaths('mocks/neuro-expert');
|
|
8
|
+
|
|
9
|
+
await TestAdapter.testBuildPass(inputPath, outputPath, {
|
|
10
|
+
md2md: false,
|
|
11
|
+
md2html: true,
|
|
12
|
+
args: '-j2',
|
|
13
|
+
});
|
|
14
|
+
await compareDirectories(outputPath);
|
|
15
|
+
});
|
|
16
|
+
});
|