From e17671c44882008e48fb440fa4c5cfdba0f1c3e9 Mon Sep 17 00:00:00 2001 From: Thomas Allmer Date: Thu, 3 Mar 2022 00:01:43 +0100 Subject: [PATCH] feat: engine --- .eleventyignore | 4 - .eslintignore | 4 + .gitignore | 6 +- .nvmrc | 2 +- .vscode/extensions.json | 7 + .vscode/launch.json | 34 + .vscode/settings.json | 11 + .vscode/tasks.json | 29 + README.md | 12 +- TODO.md | 39 + config/rocket.config.js | 44 + docs/.eleventyignore | 1 - docs/404.md | 4 - docs/_assets/_static/logos/npm.svg | 1 - docs/_assets/_static/logos/pnpm.svg | 3 - docs/_assets/_static/logos/yarn.svg | 1 - docs/_assets/body.css | 10 - docs/_assets/home-background-original.svg | 1 - docs/_assets/logo.svg | 33 - docs/_assets/social-media-image.jpg | Bin 52525 -> 0 bytes docs/_assets/style.css | 51 - docs/_assets/theme.css | 141 - docs/_assets/webmanifest.json | 29 - docs/_data/footer.json | 45 - docs/_data/rocketLaunch.json | 4 - docs/_data/site.cjs | 28 - .../head/45-stylesheets-custom.njk | 1 - docs/_includes/_joiningBlocks/head/site.njk | 3 - docs/about/slack.md | 5 - docs/about/sponsor.md | 9 - docs/blog/index.md | 15 - .../introducing-check-html-links.11tydata.cjs | 12 - docs/browserconfig.xml | 9 - docs/docs/configuration/computed-config.md | 40 - docs/docs/configuration/index.md | 1 - docs/docs/configuration/overview.md | 166 - docs/docs/eleventy-plugins/index.md | 1 - docs/docs/eleventy-plugins/mdjs-unified.md | 94 - docs/docs/markdown-javascript/index.md | 1 - docs/docs/presets/blog.md | 36 - docs/docs/presets/index.md | 5 - docs/docs/presets/joining-blocks.md | 102 - docs/docs/presets/launch/custom-elements.txt | 7 - docs/docs/presets/launch/index.md | 3 - docs/docs/presets/search/custom-elements.txt | 9 - docs/docs/presets/search/index.md | 3 - docs/docs/presets/search/preset.md | 36 - docs/docs/tools/index.md | 1 - docs/favicon.ico | Bin 15086 -> 0 bytes docs/guides/configuration/getting-started.md | 38 - docs/guides/configuration/index.md | 1 - docs/guides/first-pages/adding-pages.md | 85 - docs/guides/first-pages/getting-started.md | 188 - docs/guides/first-pages/index.md | 1 - docs/guides/first-pages/layouts.md | 29 - .../guides/first-pages/link-to-other-pages.md | 7 - docs/guides/first-pages/manage-sidebar.md | 57 - docs/guides/first-pages/urls.md | 5 - docs/guides/first-pages/use-javascript.md | 49 - docs/guides/go-live/index.md | 1 - docs/guides/go-live/overview.md | 54 - docs/guides/go-live/social-media.md | 164 - docs/guides/index.11tydata.cjs | 13 - .../create-your-own/getting-started.md | 54 - docs/guides/presets/create-your-own/hooks.md | 22 - docs/guides/presets/create-your-own/index.md | 7 - .../presets/create-your-own/publishing.md | 60 - docs/guides/presets/getting-started.md | 36 - docs/guides/presets/index.md | 6 - docs/guides/presets/overriding.md | 26 - docs/guides/presets/using-templates.md | 71 - docs/index.11tydata.cjs | 13 - docs/index.md | 24 - docs/simulator.md | 5 - docs/sitemap.njk | 15 - examples/blog/.gitignore | 22 + examples/blog/README.md | 44 + examples/blog/package.json | 24 + .../site/pages/blog/assets/liftoff-flames.jpg | Bin 0 -> 1861956 bytes .../site/pages/blog/hello-world.rocket.md | 37 + examples/blog/site/pages/blog/index.rocket.js | 9 + examples/blog/site/pages/blog/local.data.js | 5 + .../blog/site/pages/blog/with-image.rocket.md | 27 + examples/blog/site/pages/index.rocket.js | 96 + .../pages/pageTreeData.rocketGenerated.json | 58 + examples/blog/site/pages/recursive.data.js | 3 + examples/blog/site/public/favicon.ico | Bin 0 -> 15086 bytes .../blog/site/src/components/blog-author.js | 28 + .../blog/site/src/components/blog-header.js | 91 + .../site/src/components/blog-post-preview.js | 65 + .../blog/site/src/components/blog-post.js | 107 + .../blog/site/src/layouts/LayoutBlogPost.js | 43 + examples/blog/site/src/parts/baseHead.js | 39 + examples/blog/site/src/styles/blog.css | 284 ++ examples/blog/site/src/styles/shared.js | 12 + examples/blog/tsconfig.json | 7 + examples/minimal/.gitignore | 22 + examples/minimal/.vscode/settings.json | 8 + examples/minimal/README.md | 44 + examples/minimal/config/rocket.config.js | 3 + examples/minimal/package.json | 19 + examples/minimal/site/pages/index.rocket.html | 17 + .../pages/pageTreeData.rocketGenerated.json | 10 + examples/minimal/site/public/favicon.ico | Bin 0 -> 15086 bytes examples/minimal/tsconfig.json | 7 + package.json | 28 +- .../sidebar/20-navigation.njk | 25 - .../content/30-articles.njk | 20 +- packages/blog/preset/rocketBlog.js | 80 +- packages/cli/demo/docs/blog/first.md | 8 - packages/cli/demo/docs/blog/index.md | 16 - .../cli/demo/docs/blog/introducing-mdjs.md | 362 -- packages/cli/demo/docs/docs/dev-server.md | 7 - packages/cli/demo/docs/docs/index.md | 6 - packages/cli/demo/docs/docs/modern-web.md | 46 - packages/cli/demo/docs/docs/open-wc.md | 54 - packages/cli/demo/docs/docs/rocket.md | 45 - packages/cli/demo/docs/index.md | 29 - .../cli/demo/docs/learn/codelabs/index.md | 20 - .../01-custom-elements.md | 71 - .../codelabs/web-components-basics/index.md | 54 - .../learn/developing/dedupe-mixin/index.md | 8 - .../cli/demo/docs/learn/developing/index.md | 22 - .../docs/learn/developing/scoped-elements.md | 12 - packages/cli/demo/docs/learn/index.md | 36 - packages/cli/demo/rocket.config.js | 6 - packages/cli/index.cjs | 26 - packages/cli/index.js | 16 - packages/cli/package.json | 48 +- .../_inline-scripts/serviceWorkerUpdate.js | 30 - packages/cli/preset/_assets/logo.svg | 33 - .../cli/preset/_data/eleventyComputed.cjs | 5 - packages/cli/preset/_data/rocketConfig.cjs | 3 - packages/cli/preset/_data/site.cjs | 8 - .../_layoutIndex/content/10-content.njk | 1 - .../bottom/180-register-service-worker.njk | 9 - .../bottom/190-google-analytics.njk | 10 - .../_joiningBlocks/content/10-content.njk | 1 - .../_joiningBlocks/head/10-defaults.njk | 22 - .../_joiningBlocks/head/20-social-media.njk | 7 - .../_joiningBlocks/header/10-logo.njk | 4 - .../cli/preset/_includes/layout-default.njk | 34 - .../cli/preset/_includes/layout-index.njk | 5 - packages/cli/preset/_includes/layout-raw.njk | 1 - .../cli/preset/_includes/layout-simulator.njk | 89 - .../partials/_layoutIndex/content.njk | 5 - .../cli/preset/_includes/partials/bottom.njk | 3 - .../cli/preset/_includes/partials/content.njk | 5 - .../cli/preset/_includes/partials/footer.njk | 5 - .../cli/preset/_includes/partials/head.njk | 5 - .../cli/preset/_includes/partials/header.njk | 7 - packages/cli/src/RocketBuild.js | 99 +- packages/cli/src/RocketCli.js | 477 +- packages/cli/src/RocketInit.js | 86 + packages/cli/src/RocketLint.js | 139 +- packages/cli/src/RocketStart.js | 236 +- packages/cli/src/RocketUpgrade.js | 188 + packages/cli/src/cli.js | 21 +- .../processLocalReferences.cjs | 221 - .../eleventy-plugins/rocketCollections.cjs | 54 - .../cli/src/eleventy-plugins/rocketCopy.cjs | 11 - .../src/eleventy-plugins/rocketFilters.cjs | 33 - packages/cli/src/helpers/mergeDeep.js | 30 + packages/cli/src/images/ignore.js | 14 + packages/cli/src/index.js | 4 + .../cli/src/init-files/.vscode/settings.json | 10 + packages/cli/src/init-files/README.md | 9 + packages/cli/src/init-files/_gitignore | 8 + .../src/init-files/config/rocket.config.js | 6 + .../10--getting-started.rocket.md | 29 + .../20--custom-layout.rocket.md | 24 + .../10--first-pages/20--images.rocket.md | 43 + .../10--first-pages/index.rocket.js | 12 + .../docs/10--guides/index.rocket.md | 17 + .../init-files/docs/20--docs/index.rocket.js | 16 + .../docs/20--docs/star-wars.rocket.js | 21 + .../src/init-files/docs/404.html.rocket.js | 11 + .../docs/__public}/home-background.svg | 0 .../init-files/docs/__shared/footerMenu.js | 45 + .../init-files/docs/__shared/rocket-image.jpg | Bin 0 -> 182523 bytes .../cli/src/init-files/docs/index.rocket.js | 54 + .../docs/pageTreeData.rocketGenerated.json | 121 + .../cli/src/init-files/docs/recursive.data.js | 16 + packages/cli/src/init-files/tsconfig.json | 33 + packages/cli/src/normalizeConfig.js | 206 - packages/cli/src/orderedCopyFiles.js | 35 - packages/cli/src/public/bootstrap/_gitignore | 6 - .../src/public/bootstrap/docs/.eleventyignore | 3 - .../cli/src/public/bootstrap/docs/index.md | 3 - .../cli/src/public/bootstrap/rocket.config.js | 5 - packages/cli/src/public/computedConfig.cjs | 24 - packages/cli/src/public/createSocialImage.cjs | 45 - .../cli/src/public/createSocialImageSvg.cjs | 33 - .../src/public/generateEleventyComputed.cjs | 225 - packages/cli/src/shared/.eleventy.cjs | 93 - packages/cli/src/shared/mdjsImageHandler.cjs | 17 - .../cli/src/upgrades/upgrade202109menu.js | 169 + packages/cli/test-helpers/index.js | 34 +- packages/cli/test-node/01-config.test.js | 86 + packages/cli/test-node/02-build.test.js | 33 + .../RocketCli.computedConfig.test.js | 236 - ...Cli.e2e.test.js => RocketCli.e2e.test2.js} | 142 +- ...ages.test.js => RocketCli.images.test2.js} | 8 +- .../RocketCli.mergeTemplates.test.js | 72 - .../cli/test-node/RocketCli.preset.test.js | 136 - ...t.js => RocketCli.service-worker.test2.js} | 0 .../{RocketCli.test.js => RocketCli.test2.js} | 9 - .../cli/test-node/RocketCli.upgrade.test2.js | 57 + ...es.test.js => RocketCli.useCases.test2.js} | 0 .../headlines/docs/.eleventyignore | 1 - .../headlines/docs/_data/layout.cjs | 1 - .../headlines/docs/_data/socialMediaImage.cjs | 1 - .../headlines/docs/_includes/layout.njk | 2 - .../headlines/docs/index.md | 1 - .../headlines/docs/sub/index.md | 1 - .../headlines/docs/sub/subsub/index.md | 1 - .../headlines/docs/sub2/index.md | 1 - .../headlines/docs/with-data.md | 3 - .../headlines/rocket.config.js | 4 - .../image-link/docs/_data/layout.cjs | 1 - .../image-link/docs/guides.md | 15 - .../image-link/docs/images/my-img.svg | 3 - .../docs/images/picture-fallback.jpg | Bin 5875 -> 0 bytes .../docs/images/picture-min-465.jpg | Bin 63178 -> 0 bytes .../image-link/docs/index.md | 21 - .../image-link/docs/no-adjust.md | 1 - .../image-link/docs/one-level/raw.html | 10 - .../image-link/docs/template.njk | 10 - .../image-link/rocket.config.js | 21 - .../layout/docs/.eleventyignore | 1 - .../layout/docs/_data/socialMediaImage.cjs | 1 - .../layout/docs/index.md | 1 - .../layout/docs/page.md | 1 - .../layout/docs/sub/index.md | 1 - .../layout/docs/sub/sub-page.md | 1 - .../setup/addPlugin.rocket.config.js | 16 - .../setup/docs/.eleventyignore | 1 - .../setup/docs/_data/layout.cjs | 1 - .../setup/docs/_data/socialMediaImage.cjs | 1 - .../setup/docs/_includes/layout.njk | 1 - .../docs/.eleventyignore | 1 - .../docs/_includes/layout-default.njk | 1 - .../social-images-only-build/docs/index.md | 1 - .../social-images-only-build/rocket.config.js | 4 - .../docs/.eleventyignore | 1 - .../docs/_includes/layout-default.njk | 1 - .../guides/first-pages/getting-started.md | 1 - .../docs/guides/index.md | 1 - .../social-images-override/docs/index.md | 1 - .../social-images-override/rocket.config.js | 26 - .../social-images/docs/.eleventyignore | 1 - .../docs/_includes/layout-default.njk | 1 - .../guides/first-pages/getting-started.md | 1 - .../docs/guides/index.11tydata.cjs | 12 - .../social-images/docs/guides/index.md | 1 - .../social-images/docs/index.11tydata.cjs | 43 - .../social-images/docs/index.md | 1 - .../social-images/rocket.config.js | 8 - .../cli/test-node/computedConfig.test.cjs | 16 - .../docs/.eleventyignore | 1 - .../adjust-eleventy-config/docs/index.md | 5 - .../adjust-eleventy-config/rocket.config.js | 15 - .../bootstrap/expected/_gitignore | 6 - .../bootstrap/expected/docs/.eleventyignore | 3 - .../bootstrap/expected/docs/index.md | 3 - .../bootstrap/expected/package.json | 7 - .../bootstrap/expected/rocket.config.js | 5 - .../e2e-fixtures/images/docs/two-images.md | 4 +- .../10--content/10--accordion.md | 1 + .../10--components/10--content/20--tabs.md | 1 + .../docs/10--components/10--content/index.md | 1 + .../menu/docs/10--components/index.md | 1 + .../10--setup/10--software.md | 1 + .../20--getting-started/10--setup/20--node.md | 1 + .../20--getting-started/10--setup/index.md | 1 + .../menu/docs/20--getting-started/index.md | 1 + .../e2e-fixtures/menu/docs/30--blog/index.md | 1 + .../menu/docs/_includes/layout-default.njk | 11 + .../test-node/e2e-fixtures/menu/docs/index.md | 1 + .../e2e-fixtures/menu/rocket.config.js | 1 + .../docs/.eleventyignore | 1 - .../rocket-config-in-template/docs/index.md | 5 - .../rocket.config.js | 6 - .../devbuild-build.rocket.config.js | 14 - .../rollup-plugin/devbuild.rocket.config.js | 15 - .../rollup-plugin/docs/.eleventyignore | 1 - .../e2e-fixtures/rollup-plugin/docs/index.md | 11 - .../unified-plugin/docs/.eleventyignore | 1 - .../e2e-fixtures/unified-plugin/docs/index.md | 5 - .../unified-plugin/rocket.config.js | 11 - .../docs/_includes/layout-default.njk | 11 + .../docs/components/content/accordion/api.md | 1 + .../components/content/accordion/index.md | 1 + .../components/content/accordion/overview.md | 1 + .../docs/components/content/index.md | 1 + .../docs/components/content/tabs/index.md | 1 + .../2021-09-menu/docs/components/index.md | 8 + .../2021-09-menu/docs/index.md | 3 + .../2021-09-menu}/rocket.config.js | 1 - .../01-no-config/site/pages/index.rocket.js | 5 + .../pages/pageTreeData.rocketGenerated.json | 8 + .../config/rocket.config.js | 3 + .../different-input/index.rocket.js | 5 + .../pageTreeData.rocketGenerated.json | 8 + .../03-add-middleware/config/rocket.config.js | 13 + .../site/pages/index.rocket.js | 5 + .../pages/pageTreeData.rocketGenerated.json | 8 + .../config/rocket.config.js | 13 + .../site/pages/index.rocket.md | 13 + .../pages/pageTreeData.rocketGenerated.json | 16 + .../site/pages}/test-data.json | 0 .../site/public/copy-for-test.json | 3 + .../site/pages/index.rocket.js | 5 + .../pages/pageTreeData.rocketGenerated.json | 8 + .../site/public/favicon.ico} | 0 .../cli/test-node/normalizeConfig.test.js | 192 - packages/cli/test-node/test-helpers.js | 232 + packages/cli/tsconfig.json | 17 +- packages/cli/tsconfig.override.json | 3 + packages/cli/types/eleventy.d.ts | 29 - packages/cli/types/main.d.ts | 104 +- packages/cli/types/preset.d.ts | 27 +- packages/cli/types/upgrade.d.ts | 22 + packages/core/CHANGELOG.md | 19 - packages/core/README.md | 5 - packages/core/package.json | 44 - packages/core/src/helpers/index.js | 22 - packages/core/src/index.js | 2 - packages/core/src/title/extractTitle.js | 20 - packages/core/src/title/index.js | 3 - packages/core/src/title/parseTitle.js | 75 - .../core/src/title/processContentWithTitle.js | 14 - packages/core/src/title/types.d.ts | 10 - packages/core/test-web/extractTitle.test.js | 24 - packages/core/test-web/parseTitle.test.js | 87 - packages/core/tsconfig.build.types.json | 17 - packages/create/README.md | 7 + packages/create/package.json | 60 + packages/create/scripts/prepublish.js | 26 + packages/create/src/CreateCli.js | 183 + packages/create/src/choices.json | 17 + packages/create/src/cli.js | 6 + packages/create/src/index.js | 1 + .../eleventy-plugin-mdjs-unified/CHANGELOG.md | 81 - .../eleventy-plugin-mdjs-unified/README.md | 5 - .../eleventy-plugin-mdjs-unified/index.js | 3 - .../eleventy-plugin-mdjs-unified/package.json | 39 - .../src/eleventy-plugin-mdjs-unified.js | 192 - .../eleventy-plugin-mdjs-unified.test.js | 107 - .../test-node/fixtures/links/.eleventy.cjs | 6 - .../test-node/fixtures/links/file.md | 1 - .../test-node/fixtures/links/folder/index.md | 1 - .../test-node/fixtures/links/index.md | 4 - .../test-node/fixtures/md/.eleventy.cjs | 6 - .../test-node/fixtures/md/first.md | 1 - .../mdjs-import-in-subpage/.eleventy.cjs | 6 - .../mdjs-import-in-subpage/subpage/first.md | 6 - .../fixtures/mdjs-import-index/.eleventy.cjs | 6 - .../fixtures/mdjs-import-index/index.md | 6 - .../fixtures/mdjs-import/.eleventy.cjs | 6 - .../test-node/fixtures/mdjs-import/first.md | 6 - .../test-node/fixtures/mdjs/.eleventy.cjs | 6 - .../test-node/fixtures/mdjs/first.md | 14 - .../fixtures/plugin-configure/.eleventy.cjs | 25 - .../fixtures/plugin-configure/first.md | 1 - .../types/code.d.ts | 18 - .../types/es-module-lexer.d.ts | 7 - packages/eleventy-rocket-nav/.eleventy.js | 21 - packages/eleventy-rocket-nav/CHANGELOG.md | 35 - packages/eleventy-rocket-nav/README.md | 5 - .../eleventy-rocket-nav.js | 257 - packages/eleventy-rocket-nav/package.json | 34 - .../eleventy-rocket-nav/src/addPageAnchors.js | 137 - .../test-node/addPageAnchors.test.js | 32 - .../fixtures/three-pages/.eleventy.js | 5 - .../fixtures/three-pages/_data/layout.cjs | 1 - .../fixtures/three-pages/_includes/layout.njk | 9 - .../test-node/fixtures/three-pages/bats.md | 9 - .../test-node/fixtures/three-pages/humans.md | 12 - .../test-node/fixtures/three-pages/mammals.md | 7 - .../test-node/integration.test.js | 96 - packages/eleventy-rocket-nav/tsconfig.json | 24 - packages/eleventy-rocket-nav/types.d.ts | 34 - .../types/eleventy-url-filter.d.ts | 4 - packages/engine/README.md | 5 + packages/engine/assets/logo.svg | 12 + packages/engine/package.json | 67 + packages/engine/src/Engine.js | 410 ++ packages/engine/src/Watcher.js | 342 ++ packages/engine/src/converts.js | 42 + .../dev-server/devServerAdjustAssetUrls.js | 60 + .../src/dev-server/devServerRegisterTab.js | 65 + .../engine/src/file-header/import-names.js | 52 + .../src/file-header/updateRocketHeader.js | 206 + .../src/file-header/urlPathConverter.js | 95 + .../src/formats/cleanupAutoGeneratedFiles.js | 30 + .../engine/src/formats/getServerCodeFromMd.js | 27 + packages/engine/src/formats/html.js | 115 + packages/engine/src/formats/markdown.js | 262 + packages/engine/src/gatherFiles.js | 68 + .../engine/src/helpers/es-module-lexer.js | 5 + .../engine/src/helpers/findJsDependencies.js | 99 + packages/engine/src/helpers/inlineFile.js | 11 + .../engine/src/helpers/isRocketIndexFile.js | 11 + .../engine/src/helpers/isRocketPageFile.js | 11 + .../engine/src/helpers/litServerRender.js | 39 + .../engine/src/helpers/renderJoiningGroup.js | 28 + packages/engine/src/helpers/slugify.js | 16 + .../engine/src/helpers/stripRocketSuffix.js | 23 + packages/engine/src/helpers/transformFile.js | 23 + packages/engine/src/index.js | 34 + packages/engine/src/index.server.js | 1 + packages/engine/src/layouts/Layout.js | 128 + packages/engine/src/layouts/LayoutRaw.js | 13 + packages/engine/src/layouts/LayoutSitemap.js | 28 + .../src/transformers/AdjustAssetUrls.js | 154 + packages/engine/src/web-menu/PageTree.js | 314 ++ .../engine/src/web-menu/getHtmlMetaData.js | 101 + .../src/web-menu/menus/ArticleOverviewMenu.js | 48 + .../src/web-menu/menus/BreadcrumbMenu.js | 32 + .../src/web-menu/menus/ChildListMenu.js | 77 + .../engine/src/web-menu/menus/IndexMenu.js | 80 + packages/engine/src/web-menu/menus/Menu.js | 101 + .../engine/src/web-menu/menus/NextMenu.js | 61 + .../engine/src/web-menu/menus/PreviousMenu.js | 56 + .../engine/src/web-menu/menus/SiteMenu.js | 26 + .../src/web-menu/menus/TableOfContentsMenu.js | 109 + packages/engine/src/web-menu/sax-helpers.js | 62 + packages/engine/src/web-menu/sax-parser.js | 14 + .../engine/src/worker/generateErrorPage.js | 81 + packages/engine/src/worker/importViaWorker.js | 72 + packages/engine/src/worker/importWorker.js | 47 + packages/engine/src/worker/renderViaWorker.js | 97 + packages/engine/src/worker/renderWorker.js | 159 + .../engine/test-node/00a-gatherFiles.test.js | 53 + .../test-node/01a-urlPathConverter.test.js | 156 + .../engine/test-node/01b-import-names.test.js | 45 + .../engine/test-node/01z-data-cascade.test.js | 384 ++ packages/engine/test-node/02-urls.test.js | 21 + .../03a-format-markdown-conversion.test.js | 269 + .../test-node/03b-format-markdown.test.js | 63 + .../engine/test-node/03c-format-html.test.js | 109 + .../test-node/03d-format-various.test.js | 20 + .../test-node/04a-renderJoiningGroup.test.js | 74 + packages/engine/test-node/04z-layouts.test.js | 145 + .../engine/test-node/05b-menu-types.test.js | 532 ++ packages/engine/test-node/05z-menu.test.js | 709 +++ .../test-node/06-error-handling.test.js | 20 + packages/engine/test-node/07-unified.test.js | 13 + .../test-node/08a-AdjustAssetUrls.test.js | 90 + packages/engine/test-node/08z-assets.test.js | 192 + packages/engine/test-node/09-watch.test.js | 738 +++ .../09b-watch-error-handling.test.js | 123 + packages/engine/test-node/10-plugins.test.js | 26 + .../engine/test-node/11-open-graph.test.js | 58 + .../engine/test-node/12-playwright.spec.js | 23 + packages/engine/test-node/13-config.test.js | 73 + .../01-single-dir/docs/01--first.rocket.js} | 0 .../01-single-dir/docs/02--second.rocket.js} | 0 .../01-single-dir/docs/index.rocket.js | 4 + .../02-sub-dir/docs/01--first.rocket.js} | 0 .../02-sub-dir/docs/02--second.rocket.js} | 0 .../docs/about/01--first.rocket.js} | 0 .../docs/about/02--second.rocket.js} | 0 .../02-sub-dir/docs/about/index.rocket.js} | 0 .../02-sub-dir/docs/index.rocket.js | 0 .../docs/about.rocket.js | 0 .../docs/components/index.rocket.js | 0 .../docs/components/tabs.rocket.js | 0 .../docs/index.rocket.js | 0 .../01-basics/docs/empty.rocket.js | 6 + .../01-basics/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 26 + .../01-basics/docs/sub-dir/index.rocket.js | 8 + .../02-local/docs/about.rocket.js | 8 + .../docs/components/accordion.rocket.js | 8 + .../02-local/docs/components/index.rocket.js | 8 + .../02-local/docs/components/local.data.js | 1 + .../02-local/docs/components/tabs.rocket.js | 8 + .../02-local/docs/index.rocket.js | 8 + .../02-local/docs/local.data.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 44 + .../docs/index.rocket.js | 8 + .../docs/local.data.js | 2 + .../docs/pageTreeData.rocketGenerated.json | 10 + .../docs/index.rocket.js | 9 + .../04-import-as-original/docs/local.data.js | 3 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../05-recursive/docs/about.rocket.js | 8 + .../docs/components/index.rocket.js | 8 + .../docs/components/tabs.rocket.js | 8 + .../05-recursive/docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 36 + .../05-recursive/docs/recursive.data.js | 1 + .../docs/components/index.rocket.js | 8 + .../docs/components/local.data.js | 1 + .../docs/components/tabs.rocket.js | 8 + .../06-local-overwrite/docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 28 + .../06-local-overwrite/docs/recursive.data.js | 1 + .../07-markdown/docs/index.rocket.md | 9 + .../docs/pageTreeData.rocketGenerated.json | 16 + .../08-consider-user-imports/docs/_dep.js | 1 + .../docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../docs/recursive.data.js | 3 + .../docs/index.rocket.md | 15 + .../docs/pageTreeData.rocketGenerated.json | 27 + .../docs/second.rocket.js | 12 + .../fixtures/01-data-cascade/index.html | 1 + .../components/index.rocket.js | 0 .../01-index-rocket-js-files/index.rocket.js | 0 .../components/accordion.rocket.js | 0 .../02-named-rocket-js-files/tabs.rocket.js | 0 .../01--components/01--accordion.rocket.js | 0 .../01--tabs.rocket.js | 0 .../components/index.rocket.md | 0 .../04-index-rocket-md-files/index.rocket.md | 0 .../components/accordion.rocket.md | 0 .../05-named-rocket-md-files/tabs.rocket.md | 0 .../components/index.rocket.html | 0 .../index.rocket.html | 0 .../components/accordion.rocket.html | 0 .../tabs.rocket.html | 0 .../02-urls/docs/01--discover/index.rocket.js | 6 + .../docs/02--components/01--tabs.rocket.js | 6 + .../02--components/02--accordion.rocket.js | 6 + .../docs/02--components/index.rocket.js | 6 + .../fixtures/02-urls/docs/about.rocket.js | 6 + .../02-urls/docs/assets/data.json.rocket.js | 5 + .../02-urls/docs/assets/script.js.rocket.js | 5 + .../fixtures/02-urls/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 52 + .../02-urls/docs/sitemap.xml.rocket.js | 5 + .../01-basic/empty.rocket.md | 7 + .../01-basic/index.rocket.md | 20 + .../pageTreeData.rocketGenerated.json | 18 + .../02-mdjs/docs/index.rocket.md | 11 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../03-cleanup/index.rocket.md | 7 + .../pageTreeData.rocketGenerated.json | 8 + .../index-converted-md-source.js | 15 + .../index-converted-md.js | 7 + .../04-keep-converted-files/index.rocket.md | 8 + .../pageTreeData.rocketGenerated.json | 8 + .../c01-md-in-js-to-md-html/md-in-js.js | 21 + .../03c-format-html/01-basic/docs/index.html | 1 + .../01-basic/docs/index.rocket.html | 7 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../02-client-js/docs/index-converted-html.js | 21 + .../02-client-js/docs/index.rocket.html | 23 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../docs/index.rocket.html | 23 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../01-js-single/index.rocket.js | 7 + .../pageTreeData.rocketGenerated.json | 9 + .../04-xml/sitemap.xml.rocket.js | 5 + .../01-function/docs/index.rocket.js | 27 + .../04-layouts/01-function/docs/local.data.js | 18 + .../01-function/docs/markdown.rocket.md | 28 + .../04-layouts/01-function/docs/members.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 36 + .../02-class/docs/adding-before.rocket.js | 14 + .../04-layouts/02-class/docs/index.rocket.js | 9 + .../02-class/docs/layout-raw.rocket.js | 10 + .../04-layouts/02-class/docs/local.data.js | 14 + .../docs/pageTreeData.rocketGenerated.json | 35 + .../02-class/docs/show-data.rocket.js | 15 + .../03-dynamic-title/docs/index.rocket.js | 22 + .../docs/pageTreeData.rocketGenerated.json | 10 + .../05-menu/01-two-pages/docs/about.rocket.js | 8 + .../01-two-pages/docs/components.rocket.js | 8 + .../05-menu/01-two-pages/docs/index.rocket.js | 9 + .../05-menu/01-two-pages/docs/local.data.js | 48 + .../05-menu/01-two-pages/docs/pageTree.js | 31 + .../docs/pageTreeData.rocketGenerated.json | 29 + .../docs/about.rocket.js | 12 + .../docs/components.rocket.js | 11 + .../docs/index.rocket.js | 11 + .../02-generate-page-tree/docs/local.data.js | 16 + .../docs/pageTreeData.rocketGenerated.json | 30 + .../docs/_some-dependency/LayoutSidebar.js | 19 + .../03-dependency-layout/docs/about.rocket.js | 11 + .../docs/components.rocket.js | 11 + .../03-dependency-layout/docs/index.rocket.js | 11 + .../03-dependency-layout/docs/local.data.js | 10 + .../docs/pageTreeData.rocketGenerated.json | 29 + .../05-menu/04-markdown/docs/index.rocket.md | 7 + .../docs/pageTreeData.rocketGenerated.json | 16 + .../05-update-on-change/docs/index.rocket.md | 7 + .../docs/pageTreeData.rocketGenerated.json | 16 + .../06-saves-exports/docs/index.rocket.md | 13 + .../docs/pageTreeData.rocketGenerated.json | 22 + .../07-update-exports/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../07b-update-exports-[md]/docs/index.html | 1 + .../docs/index.rocket.md | 11 + .../docs/pageTreeData.rocketGenerated.json | 16 + .../docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 10 + .../docs/recursive.data.js | 18 + .../docs/about-me.rocket.js | 7 + .../docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 20 + .../docs/recursive.data.js | 18 + .../docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 10 + .../docs/recursive.data.js | 18 + .../docs/about-me/index.rocket.js | 7 + .../docs/about-me/me.rocket.js | 7 + .../docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 31 + .../docs/recursive.data.js | 18 + .../docs/components/button-blue.rocket.js | 9 + .../docs/components/button-red.rocket.js | 9 + .../docs/components/index.rocket.js | 9 + .../01-breadcrumb/docs/index.rocket.js | 9 + .../docs/pageTreeData.rocketGenerated.json | 40 + .../01-breadcrumb/docs/recursive.data.js | 15 + .../02-site/docs/about.rocket.js | 8 + .../docs/components/button-red.rocket.js | 8 + .../02-site/docs/components/index.rocket.js | 8 + .../02-site/docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 40 + .../02-site/docs/recursive.data.js | 15 + .../03-next-previous/docs/10--one.rocket.js | 8 + .../03-next-previous/docs/20--two.rocket.js | 8 + .../03-next-previous/docs/30--three.rocket.js | 8 + .../03-next-previous/docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 38 + .../03-next-previous/docs/recursive.data.js | 16 + .../10--setup/10--getting-started.rocket.js | 8 + .../docs/10--guides/10--setup/index.rocket.js | 11 + .../10--getting-started.rocket.js | 8 + .../20--adding-pages.rocket.js | 8 + .../30--writing-content.rocket.js | 8 + .../20--first-pages/index.rocket.js | 11 + .../10--getting-started.rocket.js | 8 + .../30--configuration/index.rocket.js | 11 + .../docs/10--guides/index.rocket.js | 8 + .../docs/20--components/index.rocket.js | 8 + .../docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 112 + .../docs/recursive.data.js | 16 + .../blog/comparing-apple-to-oranges.rocket.js | 15 + .../docs/blog/index.rocket.js | 8 + .../docs/blog/local.data.js | 15 + .../blog/new-year-new-challenge.rocket.js | 15 + .../04-article-overview/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 46 + .../content/accordion/10--overview.rocket.js | 8 + .../content/accordion/20--api.rocket.js | 8 + .../content/accordion/index.rocket.js | 8 + .../docs/components/content/index.rocket.js | 8 + .../05-index/docs/components/index.rocket.js | 8 + .../docs/components/inputs/index.rocket.js | 8 + .../inputs/input-text/index.rocket.js | 8 + .../inputs/textarea/index.rocket.js | 8 + .../docs/getting-started/index.rocket.js | 8 + .../getting-started/setup/index.rocket.js | 8 + .../setup/install-cli.rocket.js | 8 + .../05-index/docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 122 + .../05-index/docs/recursive.data.js | 15 + .../06-table-of-contents/docs/empty.rocket.js | 12 + .../06-table-of-contents/docs/index.rocket.js | 20 + .../docs/pageTreeData.rocketGenerated.json | 72 + .../docs/recursive.data.js | 15 + .../content/accordion/10--overview.rocket.js | 8 + .../content/accordion/20--api.rocket.js | 8 + .../content/accordion/index.rocket.js | 10 + .../docs/components/content/index.rocket.js | 10 + .../docs/components/index.rocket.js | 10 + .../docs/components/inputs/index.rocket.js | 10 + .../inputs/input-text/index.rocket.js | 8 + .../inputs/textarea/index.rocket.js | 8 + .../docs/getting-started/index.rocket.js | 8 + .../getting-started/setup/index.rocket.js | 8 + .../setup/install-cli.rocket.js | 8 + .../07-child-list/docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 126 + .../07-child-list/docs/recursive.data.js | 15 + .../01-page-error/docs/index.rocket.js | 5 + .../01-add-plugin/docs/index.rocket.md | 9 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../01-add-plugin/docs/recursive.data.js | 5 + .../docs/about/index.rocket.js | 6 + .../01-image-in-index/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../08-assets/01-image-in-index/docs/test.png | Bin .../02-image-named-file/docs/about.rocket.js | 6 + .../docs/components/index.rocket.js | 6 + .../docs/components/tabs.rocket.js | 6 + .../02-image-named-file/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 36 + .../02-image-named-file/docs/test.png | Bin 0 -> 3768 bytes .../03-multiple-images/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../03-multiple-images/docs/test.png | Bin 0 -> 3768 bytes .../04-link-href/docs/about.rocket.js | 6 + .../04-link-href/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../08-assets/04-link-href/docs/style.css | 0 .../08-assets/05-a-href/docs/about.rocket.js | 6 + .../08-assets/05-a-href/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../08-assets/05-a-href/docs/style.css | 0 .../docs/about/index.rocket.js | 6 + .../docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../06-node-resolve-local/package.json | 7 + .../08-assets/06-node-resolve-local/test.png | Bin 0 -> 3768 bytes .../07-node-resolve-dependency/.gitignore | 1 + .../docs/about/index.rocket.js | 6 + .../docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../some-dependency/assets/test.png | Bin 0 -> 3768 bytes .../node_modules/some-dependency/package.json | 7 + .../07-node-resolve-dependency/package.json | 7 + .../07-node-resolve-dependency/test.png | Bin 0 -> 3768 bytes .../docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../public/added-via-input-folder.txt | 0 .../add-nested-via-input-folder.txt | 0 .../01-update-header/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../01b-update-header-md/docs/index.rocket.md | 7 + .../index.rocket.rocket-generated-from-md.js | 12 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../docs/about.rocket.js | 8 + .../docs/index.rocket.js | 8 + .../docs/local.data.js | 2 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../docs/about.rocket.js | 8 + .../docs/index.rocket.js | 8 + .../03-update-single-page/docs/local.data.js | 5 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../docs/index.rocket.js | 8 + .../docs/name-inital.js | 1 + .../04-update-js-dependency/docs/name.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../docs/index.rocket.md | 11 + .../index.rocket.rocket-generated-from-md.js | 20 + .../04b-update-js-dependency-md/docs/name.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../04c-npm-dependency-update/.gitignore | 1 + .../04c-npm-dependency-update/__package.json | 7 + .../docs/index.rocket.js | 8 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../node_modules/some-dependency/index.js | 1 + .../node_modules/some-dependency/package.json | 7 + .../docs/index.rocket.js | 8 + .../docs/name-initial.js | 1 + .../docs/name.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../docs/about.rocket.js | 10 + .../docs/index.rocket.js | 8 + .../06-create-single-page/docs/local.data.js | 16 + .../06-create-single-page/docs/name.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 17 + .../07-delete-page/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../docs/about.rocket.js | 8 + .../docs/components.rocket.js | 8 + .../docs/index.rocket.js | 8 + .../docs/local.data.js | 24 + .../docs/pageTreeData.rocketGenerated.json | 32 + .../docs/about.rocket.js | 8 + .../docs/components.rocket.js | 8 + .../docs/getting-started.rocket.js | 8 + .../docs/index.rocket.js | 8 + .../docs/local.data.js | 24 + .../docs/pageTreeData.rocketGenerated.json | 41 + .../docs/about.rocket.js | 8 + .../docs/index.rocket.js | 8 + .../11-deletes-html-cache/docs/local.data.js | 4 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../02-import/docs/index.rocket.js | 6 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../03-markdown/docs/index.rocket.md | 11 + .../docs/pageTreeData.rocketGenerated.json | 16 + .../01-add-public-files/docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../preset/__public/added-via-plugin.txt | 0 .../docs/index.rocket.js | 9 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../02-formats/docs/404.html.rocket.js | 8 + .../02-formats/docs/about.rocket.js | 8 + .../docs/components/accordion.rocket.js | 8 + .../docs/components/index.rocket.js | 8 + .../02-formats/docs/index.rocket.md | 9 + .../docs/pageTreeData.rocketGenerated.json | 44 + .../02-formats/docs/recursive.data.js | 3 + .../02-formats/docs/some.xml.rocket.js | 7 + .../03-page-data/docs/index.rocket.js | 8 + .../03-page-data/docs/local.data.js | 23 + .../docs/pageTreeData.rocketGenerated.json | 9 + .../docs/index.rocket.js | 15 + .../01-file-change-reloads/docs/name.js | 1 + .../docs/pageTreeData.rocketGenerated.json | 18 + .../01-add-rollup-plugin/docs/index.rocket.js | 7 + .../docs/pageTreeData.rocketGenerated.json | 8 + .../public/test-data.json | 3 + .../02-add-middleware/pages/index.rocket.js | 7 + .../pages/pageTreeData.rocketGenerated.json | 8 + packages/engine/test-node/test-helpers.js | 226 + packages/{core => engine}/tsconfig.json | 14 +- packages/engine/tsconfig.override.json | 3 + packages/engine/types/layout.d.ts | 36 + packages/engine/types/main.d.ts | 39 + packages/engine/types/menu.d.ts | 48 + .../__public/android-chrome-192x192.png | Bin 0 -> 22062 bytes .../__public/android-chrome-512x512.png | Bin 0 -> 70325 bytes packages/launch/__public/apple-touch-icon.png | Bin 0 -> 10521 bytes packages/launch/__public/favicon.ico | Bin 0 -> 15086 bytes packages/launch/__public/icon.svg | 12 + packages/launch/__public/site.webmanifest | 19 + .../{preset/_assets => assets}/404/404.svg | 0 .../_assets => assets}/404/astronaut.svg | 0 .../{preset/_assets => assets}/404/earth.svg | 0 .../{preset/_assets => assets}/404/moon.svg | 0 .../{preset/_assets => assets}/404/rocket.svg | 0 .../brand-logos/discord.svg | 0 .../_assets => assets}/brand-logos/github.svg | 0 .../_assets => assets}/brand-logos/gitlab.svg | 0 packages/launch/assets/brand-logos/info.txt | 1 + .../_assets => assets}/brand-logos/slack.svg | 0 .../brand-logos/telegram.svg | 0 .../brand-logos/twitter.svg | 0 .../_assets => assets}/burger-menu.svg | 0 packages/launch/css/404.css | 316 ++ .../_assets/_static => css}/404/bg_purple.png | Bin .../_static => css}/404/overlay_stars.svg | 0 .../launch/{preset/_assets => css}/layout.css | 82 +- .../{preset/_assets => css}/markdown.css | 0 .../_assets/_static => css}/noscript.css | 0 .../launch/{preset/_assets => css}/style.css | 0 .../{preset/_assets => css}/variables.css | 0 .../launch/custom-elements-manifest.config.js | 24 +- packages/launch/index.js | 1 - packages/launch/package.json | 50 +- .../_static/icons/android-chrome-192x192.png | Bin 4405 -> 0 bytes .../_static/icons/android-chrome-512x512.png | Bin 10999 -> 0 bytes .../_static/icons/apple-touch-icon.png | Bin 5284 -> 0 bytes .../_assets/_static/icons/favicon-16x16.png | Bin 872 -> 0 bytes .../_assets/_static/icons/favicon-32x32.png | Bin 1531 -> 0 bytes .../_assets/_static/icons/icon-128x128.png | Bin 6634 -> 0 bytes .../_assets/_static/icons/icon-512x512.png | Bin 30184 -> 0 bytes .../_static/icons/maskable-icon-128x128.png | Bin 6634 -> 0 bytes .../_assets/_static/icons/maskable-icon.png | Bin 10999 -> 0 bytes .../_assets/_static/icons/mstile-150x150.png | Bin 4294 -> 0 bytes .../_static/icons/safari-pinned-tab.svg | 82 - packages/launch/preset/_assets/logo.svg | 37 - packages/launch/preset/_assets/octicon.svg | 1 - .../preset/_assets/scripts/init-navigation.js | 11 - .../preset/_assets/social-media-image.jpg | Bin 52525 -> 0 bytes .../launch/preset/_assets/webmanifest.json | 29 - packages/launch/preset/_data/footer.json | 33 - .../launch/preset/_data/rocketLaunch.json | 4 - packages/launch/preset/_data/site.cjs | 26 - packages/launch/preset/_data/siteUrl.cjs | 17 - .../_layoutHome/content/10-hero.njk | 15 - .../_layoutHome/content/20-reasons.njk | 10 - .../_layoutHome/content/30-content.njk | 1 - .../_layoutHome/sidebar/10-logo.njk | 1 - .../_layoutHome/sidebar/20-navigation.njk | 13 - .../_layoutIndex/content/50-footer.njk | 4 - .../_layoutSidebar/content/10-content.njk | 1 - .../_layoutSidebar/content/100-footer.njk | 6 - .../_layoutSidebar/sidebar/10-logo.njk | 1 - .../_layoutSidebar/sidebar/20-navigation.njk | 8 - .../bottom/10-init-navigation.njk | 1 - .../_joiningBlocks/footer/10-newsletter.njk | 14 - .../_joiningBlocks/footer/20-menu.njk | 16 - .../_joiningBlocks/head/20-icons.njk | 7 - .../_joiningBlocks/head/30-social-media.njk | 7 - .../head/40-stylesheets-fonts.njk | 10 - .../_joiningBlocks/head/40-stylesheets.njk | 4 - .../_joiningBlocks/head/50-noscript.njk | 1 - .../header/10-mobile-menu-trigger.njk | 4 - .../_joiningBlocks/header/20-logo.njk | 8 - .../header/30-collection-header.njk | 6 - .../_joiningBlocks/header/40-dark-switch.njk | 1 - .../_joiningBlocks/header/50-social-links.njk | 10 - .../launch/preset/_includes/layout-404.njk | 364 -- .../_includes/layout-home-background.njk | 1 - .../launch/preset/_includes/layout-home.njk | 9 - .../launch/preset/_includes/layout-index.njk | 5 - .../preset/_includes/layout-sidebar.njk | 14 - .../partials/_layoutHome/content.njk | 5 - .../partials/_layoutHome/sidebar.njk | 7 - .../partials/_layoutSidebar/content.njk | 5 - .../partials/_layoutSidebar/sidebar.njk | 7 - .../_includes/partials/_shared/darkSwitch.njk | 1 - .../_includes/partials/_shared/logoLink.njk | 4 - .../preset/_includes/partials/darkModeJs.njk | 69 - .../partials/mobile-sidebar-bottom.njk | 6 - packages/launch/preset/rocketLaunch.js | 66 - packages/launch/src/Layout404.js | 54 + packages/launch/src/LayoutHome.js | 79 + packages/launch/src/LayoutSidebar.js | 272 ++ packages/launch/src/_shared.js | 8 + packages/launch/src/index.js | 4 + .../InlineNotification.js} | 2 +- .../inline-notification/define.js} | 2 +- .../launch/src/inline-notification/index.js | 1 + .../src/public/init-mobile-navigation.js | 14 + .../src/public/register-service-worker.js} | 2 + .../src/public}/service-worker.js | 5 +- packages/launch/src/rocketLaunch.js | 73 + ...t.test.js => RocketLaunch.preset.test2.js} | 36 +- .../tsconfig.json | 14 +- packages/launch/types/layout.d.ts | 112 + packages/mdjs-core/index.js | 6 +- packages/mdjs-core/package.json | 3 +- packages/mdjs-core/src/mdjsParse.js | 2 + packages/mdjs-core/src/mdjsSetupCode.js | 2 +- packages/mdjs-core/src/mdjsStoryParse.js | 4 +- packages/mdjs-core/tsconfig.json | 6 - packages/mdjs-preview/package.json | 3 +- .../mdjs-preview/server/LayoutSimulator.js | 103 + packages/mdjs-preview/server/index.js | 1 + packages/navigation/CHANGELOG.md | 27 - packages/navigation/README.md | 3 - packages/navigation/index.js | 1 - packages/navigation/package.json | 37 - packages/navigation/rocket-navigation.js | 3 - packages/navigation/src/RocketNavigation.js | 123 - .../test-web/rocket-navigation.test.js | 118 - packages/navigation/tsconfig.json | 24 - packages/plugins-manager/index.js | 4 +- packages/plugins-manager/package.json | 4 +- packages/plugins-manager/src/addPlugin.js | 9 +- .../src/adjustPluginOptions.js | 11 +- packages/plugins-manager/src/applyPlugins.js | 8 +- .../src/executeSetupFunctions.js | 4 +- packages/plugins-manager/src/removePlugin.js | 6 +- .../test-node/addPlugin.test.js | 4 +- .../test-node/applyPlugins.test.js | 4 +- .../test-node/executeSetupFunction.test.js | 2 +- ...tml.test.js => getIdBlocksOfHtml.test2.js} | 0 ...Results.test.js => renderResults.test2.js} | 0 packages/vscode-rocket/.eslintrc.json | 24 + packages/vscode-rocket/.vscodeignore | 10 + packages/vscode-rocket/.yarnrc | 1 + packages/vscode-rocket/CHANGELOG.md | 9 + packages/vscode-rocket/README.md | 71 + packages/vscode-rocket/media/main.js | 114 + .../vscode-rocket/out/WebDevServerPanel.js | 109 + .../out/WebDevServerPanel.js.map | 1 + packages/vscode-rocket/out/extension.js | 108 + packages/vscode-rocket/out/extension.js.map | 1 + packages/vscode-rocket/out/getNonce.js | 13 + packages/vscode-rocket/out/getNonce.js.map | 1 + packages/vscode-rocket/package.json | 61 + .../vscode-rocket/src/WebDevServerPanel.ts | 106 + packages/vscode-rocket/src/extension.ts | 74 + packages/vscode-rocket/src/getNonce.ts | 8 + .../vscode-rocket/src/test/runTest.ts.txt | 23 + .../src/test/suite/extension.test.ts.txt | 17 + .../vscode-rocket/src/test/suite/index.ts.txt | 40 + packages/vscode-rocket/tsconfig.json | 23 + .../vscode-rocket/vsc-extension-quickstart.md | 41 + patches/@web+dev-server+0.1.29.patch | 12 + patches/@web+dev-server-core+0.3.17.patch | 12 + patches/es-module-lexer+0.9.3.patch | 12 + patches/rehype-prism+1.0.0.patch | 12 + rocket.config.js | 61 - scripts/testMochaGlobalHooks.js | 10 + .../10--setup/10--getting-started.rocket.md | 76 + .../10--setup/20--adding-pages.rocket.md | 91 + .../10--setup/30--use-javascript.rocket.md | 122 + site/pages/10--docs/10--setup/index.rocket.js | 9 + .../10--project-structure.rocket.md | 101 + .../10--docs/20--basics/20--pages.rocket.md | 226 + .../20--basics/30--data-cascade.rocket.md | 78 + .../20--basics/40--components.rocket.md | 119 + .../10--docs/20--basics/50--layouts.rocket.md | 236 + .../10--docs/20--basics/60--routing.rocket.md | 122 + .../20--basics/70--navigation.rocket.md | 448 ++ .../20--basics/80--hydration.rocket.md | 15 + .../10--docs/20--basics/90--assets.rocket.md | 60 + .../20--basics/90--configuration.rocket.md | 184 + .../pages/10--docs/20--basics/index.rocket.js | 11 + .../30--guides/10--overview.rocket.md | 11 + .../30--guides/20--social-media.rocket.md | 42 + .../10--docs/30--guides/30--images.rocket.md | 58 +- .../30--guides/40--markdown.rocket.md | 56 + .../10--docs/30--guides/50--go-live.rocket.md | 79 + .../pages/10--docs/30--guides/index.rocket.js | 9 + .../pages/10--docs/index.rocket.md | 22 +- .../10--launch/10--overview.rocket.md | 102 +- .../10--launch/20--service-worker.rocket.md | 54 +- .../20--presets/10--launch/index.rocket.js | 9 + site/pages/20--presets/index.rocket.md | 11 + .../10--overview.rocket.md | 10 +- .../10--plugins-manager/index.rocket.js | 7 + .../10--overview.rocket.md | 12 +- .../20--preview.rocket.md | 18 +- .../30--story.rocket.md | 10 +- .../assets/demo-element.js | 0 .../20--markdown-javascript/index.rocket.js | 10 + .../30--rollup-config/10--overview.rocket.md | 10 +- .../30--rollup-config/index.rocket.js | 7 + .../10--overview.rocket.md | 14 +- .../images/check-html-links-screenshot.png | Bin .../40--check-html-links/index.rocket.js | 7 + .../pages/30--tools/index.rocket.md | 24 +- ...01--introducing-check-html-links.rocket.md | 20 +- .../pages/40--blog/002--introducing-rocket.md | 13 + site/pages/40--blog/index.rocket.js | 15 + site/pages/404.html.rocket.js | 11 + site/pages/__shared/footerMenu.js | 45 + site/pages/__shared/pageTree.js | 4 + site/pages/index.rocket.js | 59 + site/pages/pageTreeData.rocketGenerated.json | 1267 +++++ site/pages/recursive.data.js | 27 + site/pages/simulator.rocket.js | 11 + site/pages/sitemap.xml.rocket.js | 17 + .../public}/home-background.svg | 0 site/public/netlify.toml | 9 + tsconfig.json | 21 +- tsconfig.node-base.json | 2 +- workspace-packages.mjs | 16 +- yarn.lock | 4323 ++++++++--------- 1027 files changed, 24036 insertions(+), 11601 deletions(-) delete mode 100644 .eleventyignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 TODO.md create mode 100644 config/rocket.config.js delete mode 100644 docs/.eleventyignore delete mode 100644 docs/404.md delete mode 100644 docs/_assets/_static/logos/npm.svg delete mode 100644 docs/_assets/_static/logos/pnpm.svg delete mode 100644 docs/_assets/_static/logos/yarn.svg delete mode 100644 docs/_assets/body.css delete mode 100644 docs/_assets/home-background-original.svg delete mode 100644 docs/_assets/logo.svg delete mode 100644 docs/_assets/social-media-image.jpg delete mode 100644 docs/_assets/style.css delete mode 100644 docs/_assets/theme.css delete mode 100644 docs/_assets/webmanifest.json delete mode 100644 docs/_data/footer.json delete mode 100644 docs/_data/rocketLaunch.json delete mode 100644 docs/_data/site.cjs delete mode 100644 docs/_includes/_joiningBlocks/head/45-stylesheets-custom.njk delete mode 100644 docs/_includes/_joiningBlocks/head/site.njk delete mode 100644 docs/about/slack.md delete mode 100644 docs/about/sponsor.md delete mode 100644 docs/blog/index.md delete mode 100644 docs/blog/introducing-check-html-links.11tydata.cjs delete mode 100644 docs/browserconfig.xml delete mode 100644 docs/docs/configuration/computed-config.md delete mode 100644 docs/docs/configuration/index.md delete mode 100644 docs/docs/configuration/overview.md delete mode 100644 docs/docs/eleventy-plugins/index.md delete mode 100644 docs/docs/eleventy-plugins/mdjs-unified.md delete mode 100644 docs/docs/markdown-javascript/index.md delete mode 100644 docs/docs/presets/blog.md delete mode 100644 docs/docs/presets/index.md delete mode 100644 docs/docs/presets/joining-blocks.md delete mode 100644 docs/docs/presets/launch/custom-elements.txt delete mode 100644 docs/docs/presets/launch/index.md delete mode 100644 docs/docs/presets/search/custom-elements.txt delete mode 100644 docs/docs/presets/search/index.md delete mode 100644 docs/docs/presets/search/preset.md delete mode 100644 docs/docs/tools/index.md delete mode 100644 docs/favicon.ico delete mode 100644 docs/guides/configuration/getting-started.md delete mode 100644 docs/guides/configuration/index.md delete mode 100644 docs/guides/first-pages/adding-pages.md delete mode 100644 docs/guides/first-pages/getting-started.md delete mode 100644 docs/guides/first-pages/index.md delete mode 100644 docs/guides/first-pages/layouts.md delete mode 100644 docs/guides/first-pages/link-to-other-pages.md delete mode 100644 docs/guides/first-pages/manage-sidebar.md delete mode 100644 docs/guides/first-pages/urls.md delete mode 100644 docs/guides/first-pages/use-javascript.md delete mode 100644 docs/guides/go-live/index.md delete mode 100644 docs/guides/go-live/overview.md delete mode 100644 docs/guides/go-live/social-media.md delete mode 100644 docs/guides/index.11tydata.cjs delete mode 100644 docs/guides/presets/create-your-own/getting-started.md delete mode 100644 docs/guides/presets/create-your-own/hooks.md delete mode 100644 docs/guides/presets/create-your-own/index.md delete mode 100644 docs/guides/presets/create-your-own/publishing.md delete mode 100644 docs/guides/presets/getting-started.md delete mode 100644 docs/guides/presets/index.md delete mode 100644 docs/guides/presets/overriding.md delete mode 100644 docs/guides/presets/using-templates.md delete mode 100644 docs/index.11tydata.cjs delete mode 100644 docs/index.md delete mode 100644 docs/simulator.md delete mode 100644 docs/sitemap.njk create mode 100644 examples/blog/.gitignore create mode 100644 examples/blog/README.md create mode 100644 examples/blog/package.json create mode 100644 examples/blog/site/pages/blog/assets/liftoff-flames.jpg create mode 100644 examples/blog/site/pages/blog/hello-world.rocket.md create mode 100644 examples/blog/site/pages/blog/index.rocket.js create mode 100644 examples/blog/site/pages/blog/local.data.js create mode 100644 examples/blog/site/pages/blog/with-image.rocket.md create mode 100644 examples/blog/site/pages/index.rocket.js create mode 100644 examples/blog/site/pages/pageTreeData.rocketGenerated.json create mode 100644 examples/blog/site/pages/recursive.data.js create mode 100644 examples/blog/site/public/favicon.ico create mode 100644 examples/blog/site/src/components/blog-author.js create mode 100644 examples/blog/site/src/components/blog-header.js create mode 100644 examples/blog/site/src/components/blog-post-preview.js create mode 100644 examples/blog/site/src/components/blog-post.js create mode 100644 examples/blog/site/src/layouts/LayoutBlogPost.js create mode 100644 examples/blog/site/src/parts/baseHead.js create mode 100644 examples/blog/site/src/styles/blog.css create mode 100644 examples/blog/site/src/styles/shared.js create mode 100644 examples/blog/tsconfig.json create mode 100644 examples/minimal/.gitignore create mode 100644 examples/minimal/.vscode/settings.json create mode 100644 examples/minimal/README.md create mode 100644 examples/minimal/config/rocket.config.js create mode 100644 examples/minimal/package.json create mode 100644 examples/minimal/site/pages/index.rocket.html create mode 100644 examples/minimal/site/pages/pageTreeData.rocketGenerated.json create mode 100644 examples/minimal/site/public/favicon.ico create mode 100644 examples/minimal/tsconfig.json delete mode 100644 packages/blog/preset/_includes/_joiningBlocks/_layoutBlogDetails/sidebar/20-navigation.njk delete mode 100644 packages/cli/demo/docs/blog/first.md delete mode 100644 packages/cli/demo/docs/blog/index.md delete mode 100644 packages/cli/demo/docs/blog/introducing-mdjs.md delete mode 100644 packages/cli/demo/docs/docs/dev-server.md delete mode 100644 packages/cli/demo/docs/docs/index.md delete mode 100644 packages/cli/demo/docs/docs/modern-web.md delete mode 100644 packages/cli/demo/docs/docs/open-wc.md delete mode 100644 packages/cli/demo/docs/docs/rocket.md delete mode 100644 packages/cli/demo/docs/index.md delete mode 100644 packages/cli/demo/docs/learn/codelabs/index.md delete mode 100644 packages/cli/demo/docs/learn/codelabs/web-components-basics/01-custom-elements.md delete mode 100644 packages/cli/demo/docs/learn/codelabs/web-components-basics/index.md delete mode 100644 packages/cli/demo/docs/learn/developing/dedupe-mixin/index.md delete mode 100644 packages/cli/demo/docs/learn/developing/index.md delete mode 100644 packages/cli/demo/docs/learn/developing/scoped-elements.md delete mode 100644 packages/cli/demo/docs/learn/index.md delete mode 100644 packages/cli/demo/rocket.config.js delete mode 100644 packages/cli/index.cjs delete mode 100644 packages/cli/index.js delete mode 100644 packages/cli/preset/_assets/_inline-scripts/serviceWorkerUpdate.js delete mode 100644 packages/cli/preset/_assets/logo.svg delete mode 100644 packages/cli/preset/_data/eleventyComputed.cjs delete mode 100644 packages/cli/preset/_data/rocketConfig.cjs delete mode 100644 packages/cli/preset/_data/site.cjs delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/_layoutIndex/content/10-content.njk delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/bottom/180-register-service-worker.njk delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/bottom/190-google-analytics.njk delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/content/10-content.njk delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/head/10-defaults.njk delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/head/20-social-media.njk delete mode 100644 packages/cli/preset/_includes/_joiningBlocks/header/10-logo.njk delete mode 100644 packages/cli/preset/_includes/layout-default.njk delete mode 100644 packages/cli/preset/_includes/layout-index.njk delete mode 100644 packages/cli/preset/_includes/layout-raw.njk delete mode 100644 packages/cli/preset/_includes/layout-simulator.njk delete mode 100644 packages/cli/preset/_includes/partials/_layoutIndex/content.njk delete mode 100644 packages/cli/preset/_includes/partials/bottom.njk delete mode 100644 packages/cli/preset/_includes/partials/content.njk delete mode 100644 packages/cli/preset/_includes/partials/footer.njk delete mode 100644 packages/cli/preset/_includes/partials/head.njk delete mode 100644 packages/cli/preset/_includes/partials/header.njk create mode 100755 packages/cli/src/RocketInit.js create mode 100755 packages/cli/src/RocketUpgrade.js delete mode 100644 packages/cli/src/eleventy-plugins/processLocalReferences.cjs delete mode 100644 packages/cli/src/eleventy-plugins/rocketCollections.cjs delete mode 100644 packages/cli/src/eleventy-plugins/rocketCopy.cjs delete mode 100644 packages/cli/src/eleventy-plugins/rocketFilters.cjs create mode 100644 packages/cli/src/helpers/mergeDeep.js create mode 100644 packages/cli/src/images/ignore.js create mode 100644 packages/cli/src/index.js create mode 100644 packages/cli/src/init-files/.vscode/settings.json create mode 100644 packages/cli/src/init-files/README.md create mode 100644 packages/cli/src/init-files/_gitignore create mode 100644 packages/cli/src/init-files/config/rocket.config.js create mode 100644 packages/cli/src/init-files/docs/10--guides/10--first-pages/10--getting-started.rocket.md create mode 100644 packages/cli/src/init-files/docs/10--guides/10--first-pages/20--custom-layout.rocket.md create mode 100644 packages/cli/src/init-files/docs/10--guides/10--first-pages/20--images.rocket.md create mode 100644 packages/cli/src/init-files/docs/10--guides/10--first-pages/index.rocket.js create mode 100644 packages/cli/src/init-files/docs/10--guides/index.rocket.md create mode 100644 packages/cli/src/init-files/docs/20--docs/index.rocket.js create mode 100644 packages/cli/src/init-files/docs/20--docs/star-wars.rocket.js create mode 100644 packages/cli/src/init-files/docs/404.html.rocket.js rename {docs/_assets => packages/cli/src/init-files/docs/__public}/home-background.svg (100%) create mode 100644 packages/cli/src/init-files/docs/__shared/footerMenu.js create mode 100644 packages/cli/src/init-files/docs/__shared/rocket-image.jpg create mode 100644 packages/cli/src/init-files/docs/index.rocket.js create mode 100644 packages/cli/src/init-files/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/cli/src/init-files/docs/recursive.data.js create mode 100644 packages/cli/src/init-files/tsconfig.json delete mode 100644 packages/cli/src/normalizeConfig.js delete mode 100644 packages/cli/src/orderedCopyFiles.js delete mode 100644 packages/cli/src/public/bootstrap/_gitignore delete mode 100644 packages/cli/src/public/bootstrap/docs/.eleventyignore delete mode 100644 packages/cli/src/public/bootstrap/docs/index.md delete mode 100644 packages/cli/src/public/bootstrap/rocket.config.js delete mode 100644 packages/cli/src/public/computedConfig.cjs delete mode 100644 packages/cli/src/public/createSocialImage.cjs delete mode 100644 packages/cli/src/public/createSocialImageSvg.cjs delete mode 100644 packages/cli/src/public/generateEleventyComputed.cjs delete mode 100644 packages/cli/src/shared/.eleventy.cjs delete mode 100644 packages/cli/src/shared/mdjsImageHandler.cjs create mode 100644 packages/cli/src/upgrades/upgrade202109menu.js create mode 100644 packages/cli/test-node/01-config.test.js create mode 100644 packages/cli/test-node/02-build.test.js delete mode 100644 packages/cli/test-node/RocketCli.computedConfig.test.js rename packages/cli/test-node/{RocketCli.e2e.test.js => RocketCli.e2e.test2.js} (50%) rename packages/cli/test-node/{RocketCli.images.test.js => RocketCli.images.test2.js} (97%) delete mode 100644 packages/cli/test-node/RocketCli.mergeTemplates.test.js delete mode 100644 packages/cli/test-node/RocketCli.preset.test.js rename packages/cli/test-node/{RocketCli.service-worker.test.js => RocketCli.service-worker.test2.js} (100%) rename packages/cli/test-node/{RocketCli.test.js => RocketCli.test2.js} (68%) create mode 100644 packages/cli/test-node/RocketCli.upgrade.test2.js rename packages/cli/test-node/{RocketCli.useCases.test.js => RocketCli.useCases.test2.js} (100%) delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/.eleventyignore delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/_data/layout.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/_data/socialMediaImage.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/_includes/layout.njk delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/sub/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/sub/subsub/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/sub2/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/docs/with-data.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/headlines/rocket.config.js delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/_data/layout.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/guides.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/images/my-img.svg delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/images/picture-fallback.jpg delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/images/picture-min-465.jpg delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/no-adjust.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/one-level/raw.html delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/docs/template.njk delete mode 100644 packages/cli/test-node/computed-config-fixtures/image-link/rocket.config.js delete mode 100644 packages/cli/test-node/computed-config-fixtures/layout/docs/.eleventyignore delete mode 100644 packages/cli/test-node/computed-config-fixtures/layout/docs/_data/socialMediaImage.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/layout/docs/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/layout/docs/page.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/layout/docs/sub/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/layout/docs/sub/sub-page.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/setup/addPlugin.rocket.config.js delete mode 100644 packages/cli/test-node/computed-config-fixtures/setup/docs/.eleventyignore delete mode 100644 packages/cli/test-node/computed-config-fixtures/setup/docs/_data/layout.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/setup/docs/_data/socialMediaImage.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/setup/docs/_includes/layout.njk delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-only-build/docs/.eleventyignore delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-only-build/docs/_includes/layout-default.njk delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-only-build/docs/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-only-build/rocket.config.js delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-override/docs/.eleventyignore delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-override/docs/_includes/layout-default.njk delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-override/docs/guides/first-pages/getting-started.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-override/docs/guides/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-override/docs/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images-override/rocket.config.js delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/.eleventyignore delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/_includes/layout-default.njk delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/guides/first-pages/getting-started.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/guides/index.11tydata.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/guides/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/index.11tydata.cjs delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/docs/index.md delete mode 100644 packages/cli/test-node/computed-config-fixtures/social-images/rocket.config.js delete mode 100644 packages/cli/test-node/computedConfig.test.cjs delete mode 100644 packages/cli/test-node/e2e-fixtures/adjust-eleventy-config/docs/.eleventyignore delete mode 100644 packages/cli/test-node/e2e-fixtures/adjust-eleventy-config/docs/index.md delete mode 100644 packages/cli/test-node/e2e-fixtures/adjust-eleventy-config/rocket.config.js delete mode 100644 packages/cli/test-node/e2e-fixtures/bootstrap/expected/_gitignore delete mode 100644 packages/cli/test-node/e2e-fixtures/bootstrap/expected/docs/.eleventyignore delete mode 100644 packages/cli/test-node/e2e-fixtures/bootstrap/expected/docs/index.md delete mode 100644 packages/cli/test-node/e2e-fixtures/bootstrap/expected/package.json delete mode 100644 packages/cli/test-node/e2e-fixtures/bootstrap/expected/rocket.config.js create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/10--components/10--content/10--accordion.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/10--components/10--content/20--tabs.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/10--components/10--content/index.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/10--components/index.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/20--getting-started/10--setup/10--software.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/20--getting-started/10--setup/20--node.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/20--getting-started/10--setup/index.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/20--getting-started/index.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/30--blog/index.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/_includes/layout-default.njk create mode 100644 packages/cli/test-node/e2e-fixtures/menu/docs/index.md create mode 100644 packages/cli/test-node/e2e-fixtures/menu/rocket.config.js delete mode 100644 packages/cli/test-node/e2e-fixtures/rocket-config-in-template/docs/.eleventyignore delete mode 100644 packages/cli/test-node/e2e-fixtures/rocket-config-in-template/docs/index.md delete mode 100644 packages/cli/test-node/e2e-fixtures/rocket-config-in-template/rocket.config.js delete mode 100644 packages/cli/test-node/e2e-fixtures/rollup-plugin/devbuild-build.rocket.config.js delete mode 100644 packages/cli/test-node/e2e-fixtures/rollup-plugin/devbuild.rocket.config.js delete mode 100644 packages/cli/test-node/e2e-fixtures/rollup-plugin/docs/.eleventyignore delete mode 100644 packages/cli/test-node/e2e-fixtures/rollup-plugin/docs/index.md delete mode 100644 packages/cli/test-node/e2e-fixtures/unified-plugin/docs/.eleventyignore delete mode 100644 packages/cli/test-node/e2e-fixtures/unified-plugin/docs/index.md delete mode 100644 packages/cli/test-node/e2e-fixtures/unified-plugin/rocket.config.js create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/_includes/layout-default.njk create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/components/content/accordion/api.md create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/components/content/accordion/index.md create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/components/content/accordion/overview.md create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/components/content/index.md create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/components/content/tabs/index.md create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/components/index.md create mode 100644 packages/cli/test-node/fixtures-upgrade/2021-09-menu/docs/index.md rename packages/cli/test-node/{computed-config-fixtures/layout => fixtures-upgrade/2021-09-menu}/rocket.config.js (99%) create mode 100644 packages/cli/test-node/fixtures/01-config/01-no-config/site/pages/index.rocket.js create mode 100644 packages/cli/test-node/fixtures/01-config/01-no-config/site/pages/pageTreeData.rocketGenerated.json create mode 100644 packages/cli/test-node/fixtures/01-config/02-change-input-dir/config/rocket.config.js create mode 100644 packages/cli/test-node/fixtures/01-config/02-change-input-dir/different-input/index.rocket.js create mode 100644 packages/cli/test-node/fixtures/01-config/02-change-input-dir/different-input/pageTreeData.rocketGenerated.json create mode 100644 packages/cli/test-node/fixtures/01-config/03-add-middleware/config/rocket.config.js create mode 100644 packages/cli/test-node/fixtures/01-config/03-add-middleware/site/pages/index.rocket.js create mode 100644 packages/cli/test-node/fixtures/01-config/03-add-middleware/site/pages/pageTreeData.rocketGenerated.json create mode 100644 packages/cli/test-node/fixtures/01-config/04-add-rollup-plugin/config/rocket.config.js create mode 100644 packages/cli/test-node/fixtures/01-config/04-add-rollup-plugin/site/pages/index.rocket.md create mode 100644 packages/cli/test-node/fixtures/01-config/04-add-rollup-plugin/site/pages/pageTreeData.rocketGenerated.json rename packages/cli/test-node/{e2e-fixtures/rollup-plugin/docs => fixtures/01-config/04-add-rollup-plugin/site/pages}/test-data.json (100%) create mode 100644 packages/cli/test-node/fixtures/01-config/04-add-rollup-plugin/site/public/copy-for-test.json create mode 100644 packages/cli/test-node/fixtures/02-build/01-copy-public-files/site/pages/index.rocket.js create mode 100644 packages/cli/test-node/fixtures/02-build/01-copy-public-files/site/pages/pageTreeData.rocketGenerated.json rename packages/cli/test-node/{computed-config-fixtures/image-link/docs/rules/tabindex.md => fixtures/02-build/01-copy-public-files/site/public/favicon.ico} (100%) delete mode 100644 packages/cli/test-node/normalizeConfig.test.js create mode 100644 packages/cli/test-node/test-helpers.js create mode 100644 packages/cli/tsconfig.override.json delete mode 100644 packages/cli/types/eleventy.d.ts create mode 100644 packages/cli/types/upgrade.d.ts delete mode 100644 packages/core/CHANGELOG.md delete mode 100644 packages/core/README.md delete mode 100644 packages/core/package.json delete mode 100644 packages/core/src/helpers/index.js delete mode 100644 packages/core/src/index.js delete mode 100644 packages/core/src/title/extractTitle.js delete mode 100644 packages/core/src/title/index.js delete mode 100644 packages/core/src/title/parseTitle.js delete mode 100644 packages/core/src/title/processContentWithTitle.js delete mode 100644 packages/core/src/title/types.d.ts delete mode 100644 packages/core/test-web/extractTitle.test.js delete mode 100644 packages/core/test-web/parseTitle.test.js delete mode 100644 packages/core/tsconfig.build.types.json create mode 100644 packages/create/README.md create mode 100644 packages/create/package.json create mode 100644 packages/create/scripts/prepublish.js create mode 100644 packages/create/src/CreateCli.js create mode 100644 packages/create/src/choices.json create mode 100755 packages/create/src/cli.js create mode 100644 packages/create/src/index.js delete mode 100644 packages/eleventy-plugin-mdjs-unified/CHANGELOG.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/README.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/index.js delete mode 100644 packages/eleventy-plugin-mdjs-unified/package.json delete mode 100644 packages/eleventy-plugin-mdjs-unified/src/eleventy-plugin-mdjs-unified.js delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/eleventy-plugin-mdjs-unified.test.js delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/links/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/links/file.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/links/folder/index.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/links/index.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/md/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/md/first.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-in-subpage/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-in-subpage/subpage/first.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-index/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-index/index.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import/first.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs/first.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/plugin-configure/.eleventy.cjs delete mode 100644 packages/eleventy-plugin-mdjs-unified/test-node/fixtures/plugin-configure/first.md delete mode 100644 packages/eleventy-plugin-mdjs-unified/types/code.d.ts delete mode 100644 packages/eleventy-plugin-mdjs-unified/types/es-module-lexer.d.ts delete mode 100644 packages/eleventy-rocket-nav/.eleventy.js delete mode 100644 packages/eleventy-rocket-nav/CHANGELOG.md delete mode 100644 packages/eleventy-rocket-nav/README.md delete mode 100644 packages/eleventy-rocket-nav/eleventy-rocket-nav.js delete mode 100644 packages/eleventy-rocket-nav/package.json delete mode 100644 packages/eleventy-rocket-nav/src/addPageAnchors.js delete mode 100644 packages/eleventy-rocket-nav/test-node/addPageAnchors.test.js delete mode 100644 packages/eleventy-rocket-nav/test-node/fixtures/three-pages/.eleventy.js delete mode 100644 packages/eleventy-rocket-nav/test-node/fixtures/three-pages/_data/layout.cjs delete mode 100644 packages/eleventy-rocket-nav/test-node/fixtures/three-pages/_includes/layout.njk delete mode 100644 packages/eleventy-rocket-nav/test-node/fixtures/three-pages/bats.md delete mode 100644 packages/eleventy-rocket-nav/test-node/fixtures/three-pages/humans.md delete mode 100644 packages/eleventy-rocket-nav/test-node/fixtures/three-pages/mammals.md delete mode 100644 packages/eleventy-rocket-nav/test-node/integration.test.js delete mode 100644 packages/eleventy-rocket-nav/tsconfig.json delete mode 100644 packages/eleventy-rocket-nav/types.d.ts delete mode 100644 packages/eleventy-rocket-nav/types/eleventy-url-filter.d.ts create mode 100644 packages/engine/README.md create mode 100644 packages/engine/assets/logo.svg create mode 100644 packages/engine/package.json create mode 100644 packages/engine/src/Engine.js create mode 100644 packages/engine/src/Watcher.js create mode 100644 packages/engine/src/converts.js create mode 100644 packages/engine/src/dev-server/devServerAdjustAssetUrls.js create mode 100644 packages/engine/src/dev-server/devServerRegisterTab.js create mode 100644 packages/engine/src/file-header/import-names.js create mode 100644 packages/engine/src/file-header/updateRocketHeader.js create mode 100644 packages/engine/src/file-header/urlPathConverter.js create mode 100644 packages/engine/src/formats/cleanupAutoGeneratedFiles.js create mode 100644 packages/engine/src/formats/getServerCodeFromMd.js create mode 100644 packages/engine/src/formats/html.js create mode 100644 packages/engine/src/formats/markdown.js create mode 100644 packages/engine/src/gatherFiles.js create mode 100644 packages/engine/src/helpers/es-module-lexer.js create mode 100644 packages/engine/src/helpers/findJsDependencies.js create mode 100644 packages/engine/src/helpers/inlineFile.js create mode 100644 packages/engine/src/helpers/isRocketIndexFile.js create mode 100644 packages/engine/src/helpers/isRocketPageFile.js create mode 100644 packages/engine/src/helpers/litServerRender.js create mode 100644 packages/engine/src/helpers/renderJoiningGroup.js create mode 100644 packages/engine/src/helpers/slugify.js create mode 100644 packages/engine/src/helpers/stripRocketSuffix.js create mode 100644 packages/engine/src/helpers/transformFile.js create mode 100644 packages/engine/src/index.js create mode 100644 packages/engine/src/index.server.js create mode 100644 packages/engine/src/layouts/Layout.js create mode 100644 packages/engine/src/layouts/LayoutRaw.js create mode 100644 packages/engine/src/layouts/LayoutSitemap.js create mode 100644 packages/engine/src/transformers/AdjustAssetUrls.js create mode 100644 packages/engine/src/web-menu/PageTree.js create mode 100644 packages/engine/src/web-menu/getHtmlMetaData.js create mode 100644 packages/engine/src/web-menu/menus/ArticleOverviewMenu.js create mode 100644 packages/engine/src/web-menu/menus/BreadcrumbMenu.js create mode 100644 packages/engine/src/web-menu/menus/ChildListMenu.js create mode 100644 packages/engine/src/web-menu/menus/IndexMenu.js create mode 100644 packages/engine/src/web-menu/menus/Menu.js create mode 100644 packages/engine/src/web-menu/menus/NextMenu.js create mode 100644 packages/engine/src/web-menu/menus/PreviousMenu.js create mode 100644 packages/engine/src/web-menu/menus/SiteMenu.js create mode 100644 packages/engine/src/web-menu/menus/TableOfContentsMenu.js create mode 100644 packages/engine/src/web-menu/sax-helpers.js create mode 100644 packages/engine/src/web-menu/sax-parser.js create mode 100644 packages/engine/src/worker/generateErrorPage.js create mode 100644 packages/engine/src/worker/importViaWorker.js create mode 100644 packages/engine/src/worker/importWorker.js create mode 100644 packages/engine/src/worker/renderViaWorker.js create mode 100644 packages/engine/src/worker/renderWorker.js create mode 100644 packages/engine/test-node/00a-gatherFiles.test.js create mode 100644 packages/engine/test-node/01a-urlPathConverter.test.js create mode 100644 packages/engine/test-node/01b-import-names.test.js create mode 100644 packages/engine/test-node/01z-data-cascade.test.js create mode 100644 packages/engine/test-node/02-urls.test.js create mode 100644 packages/engine/test-node/03a-format-markdown-conversion.test.js create mode 100644 packages/engine/test-node/03b-format-markdown.test.js create mode 100644 packages/engine/test-node/03c-format-html.test.js create mode 100644 packages/engine/test-node/03d-format-various.test.js create mode 100644 packages/engine/test-node/04a-renderJoiningGroup.test.js create mode 100644 packages/engine/test-node/04z-layouts.test.js create mode 100644 packages/engine/test-node/05b-menu-types.test.js create mode 100644 packages/engine/test-node/05z-menu.test.js create mode 100644 packages/engine/test-node/06-error-handling.test.js create mode 100644 packages/engine/test-node/07-unified.test.js create mode 100644 packages/engine/test-node/08a-AdjustAssetUrls.test.js create mode 100644 packages/engine/test-node/08z-assets.test.js create mode 100644 packages/engine/test-node/09-watch.test.js create mode 100644 packages/engine/test-node/09b-watch-error-handling.test.js create mode 100644 packages/engine/test-node/10-plugins.test.js create mode 100644 packages/engine/test-node/11-open-graph.test.js create mode 100644 packages/engine/test-node/12-playwright.spec.js create mode 100644 packages/engine/test-node/13-config.test.js rename packages/{cli/test-node/computed-config-fixtures/setup/docs/index.md => engine/test-node/fixtures/00-gather-files/01-single-dir/docs/01--first.rocket.js} (100%) rename packages/{eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-in-subpage/import-me-too.js => engine/test-node/fixtures/00-gather-files/01-single-dir/docs/02--second.rocket.js} (100%) create mode 100644 packages/engine/test-node/fixtures/00-gather-files/01-single-dir/docs/index.rocket.js rename packages/{eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-in-subpage/import-me.js => engine/test-node/fixtures/00-gather-files/02-sub-dir/docs/01--first.rocket.js} (100%) rename packages/{eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-index/import-me-too.js => engine/test-node/fixtures/00-gather-files/02-sub-dir/docs/02--second.rocket.js} (100%) rename packages/{eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import-index/import-me.js => engine/test-node/fixtures/00-gather-files/02-sub-dir/docs/about/01--first.rocket.js} (100%) rename packages/{eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import/import-me-too.js => engine/test-node/fixtures/00-gather-files/02-sub-dir/docs/about/02--second.rocket.js} (100%) rename packages/{eleventy-plugin-mdjs-unified/test-node/fixtures/mdjs-import/import-me.js => engine/test-node/fixtures/00-gather-files/02-sub-dir/docs/about/index.rocket.js} (100%) create mode 100644 packages/engine/test-node/fixtures/00-gather-files/02-sub-dir/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/00-gather-files/03-not-ordered-sub-dir/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/00-gather-files/03-not-ordered-sub-dir/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/00-gather-files/03-not-ordered-sub-dir/docs/components/tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/00-gather-files/03-not-ordered-sub-dir/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/01-basics/docs/empty.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/01-basics/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/01-basics/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/01-basics/docs/sub-dir/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/components/accordion.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/components/local.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/components/tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/02-local/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/03-local-multiple-exports/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/03-local-multiple-exports/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/03-local-multiple-exports/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/04-import-as-original/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/04-import-as-original/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/04-import-as-original/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/05-recursive/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/05-recursive/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/05-recursive/docs/components/tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/05-recursive/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/05-recursive/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/05-recursive/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/06-local-overwrite/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/06-local-overwrite/docs/components/local.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/06-local-overwrite/docs/components/tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/06-local-overwrite/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/06-local-overwrite/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/06-local-overwrite/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/07-markdown/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/07-markdown/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/08-consider-user-imports/docs/_dep.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/08-consider-user-imports/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/08-consider-user-imports/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/08-consider-user-imports/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/09-touch-only-first-header/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/09-touch-only-first-header/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/09-touch-only-first-header/docs/second.rocket.js create mode 100644 packages/engine/test-node/fixtures/01-data-cascade/index.html create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/01-index-rocket-js-files/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/01-index-rocket-js-files/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/02-named-rocket-js-files/components/accordion.rocket.js create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/02-named-rocket-js-files/tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/03-ordered-named-rocket-js-files/01--components/01--accordion.rocket.js create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/03-ordered-named-rocket-js-files/01--tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/04-index-rocket-md-files/components/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/04-index-rocket-md-files/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/05-named-rocket-md-files/components/accordion.rocket.md create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/05-named-rocket-md-files/tabs.rocket.md create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/07-index-rocket-html-files/components/index.rocket.html create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/07-index-rocket-html-files/index.rocket.html create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/08-named-rocket-html-files/components/accordion.rocket.html create mode 100644 packages/engine/test-node/fixtures/01a-url-path-converters/08-named-rocket-html-files/tabs.rocket.html create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/01--discover/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/02--components/01--tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/02--components/02--accordion.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/02--components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/assets/data.json.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/assets/script.js.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/02-urls/docs/sitemap.xml.rocket.js create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/01-basic/empty.rocket.md create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/01-basic/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/01-basic/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/02-mdjs/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/02-mdjs/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/03-cleanup/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/03-cleanup/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/04-keep-converted-files/index-converted-md-source.js create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/04-keep-converted-files/index-converted-md.js create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/04-keep-converted-files/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/04-keep-converted-files/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03b-format-markdown/c01-md-in-js-to-md-html/md-in-js.js create mode 100644 packages/engine/test-node/fixtures/03c-format-html/01-basic/docs/index.html create mode 100644 packages/engine/test-node/fixtures/03c-format-html/01-basic/docs/index.rocket.html create mode 100644 packages/engine/test-node/fixtures/03c-format-html/01-basic/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03c-format-html/02-client-js/docs/index-converted-html.js create mode 100644 packages/engine/test-node/fixtures/03c-format-html/02-client-js/docs/index.rocket.html create mode 100644 packages/engine/test-node/fixtures/03c-format-html/02-client-js/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03c-format-html/03-multiple-server-blocks/docs/index.rocket.html create mode 100644 packages/engine/test-node/fixtures/03c-format-html/03-multiple-server-blocks/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03d-format-various/01-js-single/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/03d-format-various/01-js-single/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/03d-format-various/04-xml/sitemap.xml.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/01-function/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/01-function/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/01-function/docs/markdown.rocket.md create mode 100644 packages/engine/test-node/fixtures/04-layouts/01-function/docs/members.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/01-function/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/04-layouts/02-class/docs/adding-before.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/02-class/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/02-class/docs/layout-raw.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/02-class/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/02-class/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/04-layouts/02-class/docs/show-data.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/03-dynamic-title/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/04-layouts/03-dynamic-title/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/01-two-pages/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/01-two-pages/docs/components.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/01-two-pages/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/01-two-pages/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/05-menu/01-two-pages/docs/pageTree.js create mode 100644 packages/engine/test-node/fixtures/05-menu/01-two-pages/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/02-generate-page-tree/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/02-generate-page-tree/docs/components.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/02-generate-page-tree/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/02-generate-page-tree/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/05-menu/02-generate-page-tree/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/03-dependency-layout/docs/_some-dependency/LayoutSidebar.js create mode 100644 packages/engine/test-node/fixtures/05-menu/03-dependency-layout/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/03-dependency-layout/docs/components.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/03-dependency-layout/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/03-dependency-layout/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/05-menu/03-dependency-layout/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/04-markdown/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/05-menu/04-markdown/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/05-update-on-change/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/05-menu/05-update-on-change/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/06-saves-exports/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/05-menu/06-saves-exports/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/07-update-exports/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/07-update-exports/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/07b-update-exports-[md]/docs/index.html create mode 100644 packages/engine/test-node/fixtures/05-menu/07b-update-exports-[md]/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/05-menu/07b-update-exports-[md]/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/08-syncs-delete-to-page-tree/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/08-syncs-delete-to-page-tree/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/08-syncs-delete-to-page-tree/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05-menu/09-syncs-rename-to-page-tree/docs/about-me.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/09-syncs-rename-to-page-tree/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/09-syncs-rename-to-page-tree/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/09-syncs-rename-to-page-tree/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05-menu/10-syncs-folder-delete-to-page-tree/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/10-syncs-folder-delete-to-page-tree/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/10-syncs-folder-delete-to-page-tree/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05-menu/11-syncs-folder-rename-to-page-tree/docs/about-me/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/11-syncs-folder-rename-to-page-tree/docs/about-me/me.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/11-syncs-folder-rename-to-page-tree/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05-menu/11-syncs-folder-rename-to-page-tree/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05-menu/11-syncs-folder-rename-to-page-tree/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/01-breadcrumb/docs/components/button-blue.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/01-breadcrumb/docs/components/button-red.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/01-breadcrumb/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/01-breadcrumb/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/01-breadcrumb/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/01-breadcrumb/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/02-site/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/02-site/docs/components/button-red.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/02-site/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/02-site/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/02-site/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/02-site/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03-next-previous/docs/10--one.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03-next-previous/docs/20--two.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03-next-previous/docs/30--three.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03-next-previous/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03-next-previous/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03-next-previous/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/10--setup/10--getting-started.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/10--setup/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/20--first-pages/10--getting-started.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/20--first-pages/20--adding-pages.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/20--first-pages/30--writing-content.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/20--first-pages/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/30--configuration/10--getting-started.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/30--configuration/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/10--guides/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/20--components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/03b-next-previous-nested/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/04-article-overview/docs/blog/comparing-apple-to-oranges.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/04-article-overview/docs/blog/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/04-article-overview/docs/blog/local.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/04-article-overview/docs/blog/new-year-new-challenge.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/04-article-overview/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/04-article-overview/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/content/accordion/10--overview.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/content/accordion/20--api.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/content/accordion/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/content/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/inputs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/inputs/input-text/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/components/inputs/textarea/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/getting-started/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/getting-started/setup/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/getting-started/setup/install-cli.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/05-index/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/06-table-of-contents/docs/empty.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/06-table-of-contents/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/06-table-of-contents/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/06-table-of-contents/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/content/accordion/10--overview.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/content/accordion/20--api.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/content/accordion/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/content/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/inputs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/inputs/input-text/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/components/inputs/textarea/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/getting-started/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/getting-started/setup/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/getting-started/setup/install-cli.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/05b-menu-types/07-child-list/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/06-error-handling/01-page-error/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/07-unified/01-add-plugin/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/07-unified/01-add-plugin/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/07-unified/01-add-plugin/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/08-assets/01-image-in-index/docs/about/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/01-image-in-index/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/01-image-in-index/docs/pageTreeData.rocketGenerated.json rename docs/favicon.png => packages/engine/test-node/fixtures/08-assets/01-image-in-index/docs/test.png (100%) create mode 100644 packages/engine/test-node/fixtures/08-assets/02-image-named-file/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/02-image-named-file/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/02-image-named-file/docs/components/tabs.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/02-image-named-file/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/02-image-named-file/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/02-image-named-file/docs/test.png create mode 100644 packages/engine/test-node/fixtures/08-assets/03-multiple-images/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/03-multiple-images/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/03-multiple-images/docs/test.png create mode 100644 packages/engine/test-node/fixtures/08-assets/04-link-href/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/04-link-href/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/04-link-href/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/04-link-href/docs/style.css create mode 100644 packages/engine/test-node/fixtures/08-assets/05-a-href/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/05-a-href/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/05-a-href/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/05-a-href/docs/style.css create mode 100644 packages/engine/test-node/fixtures/08-assets/06-node-resolve-local/docs/about/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/06-node-resolve-local/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/06-node-resolve-local/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/06-node-resolve-local/package.json create mode 100644 packages/engine/test-node/fixtures/08-assets/06-node-resolve-local/test.png create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/.gitignore create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/docs/about/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/node_modules/some-dependency/assets/test.png create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/node_modules/some-dependency/package.json create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/package.json create mode 100644 packages/engine/test-node/fixtures/08-assets/07-node-resolve-dependency/test.png create mode 100644 packages/engine/test-node/fixtures/08-assets/08-copies-public-files/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/08-assets/08-copies-public-files/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/08-assets/08-copies-public-files/public/added-via-input-folder.txt create mode 100644 packages/engine/test-node/fixtures/08-assets/08-copies-public-files/public/some-folder/add-nested-via-input-folder.txt create mode 100644 packages/engine/test-node/fixtures/09-watch/01-update-header/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/01-update-header/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/01b-update-header-md/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/09-watch/01b-update-header-md/docs/index.rocket.rocket-generated-from-md.js create mode 100644 packages/engine/test-node/fixtures/09-watch/01b-update-header-md/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/02-update-header-on-dependency-change/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/02-update-header-on-dependency-change/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/02-update-header-on-dependency-change/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/09-watch/02-update-header-on-dependency-change/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/03-update-single-page/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/03-update-single-page/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/03-update-single-page/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/09-watch/03-update-single-page/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/04-update-js-dependency/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04-update-js-dependency/docs/name-inital.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04-update-js-dependency/docs/name.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04-update-js-dependency/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/04b-update-js-dependency-md/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/09-watch/04b-update-js-dependency-md/docs/index.rocket.rocket-generated-from-md.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04b-update-js-dependency-md/docs/name.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04b-update-js-dependency-md/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/04c-npm-dependency-update/.gitignore create mode 100644 packages/engine/test-node/fixtures/09-watch/04c-npm-dependency-update/__package.json create mode 100644 packages/engine/test-node/fixtures/09-watch/04c-npm-dependency-update/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04c-npm-dependency-update/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/04c-npm-dependency-update/node_modules/some-dependency/index.js create mode 100644 packages/engine/test-node/fixtures/09-watch/04c-npm-dependency-update/node_modules/some-dependency/package.json create mode 100644 packages/engine/test-node/fixtures/09-watch/05-update-js-dependency-after-page-import-change/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/05-update-js-dependency-after-page-import-change/docs/name-initial.js create mode 100644 packages/engine/test-node/fixtures/09-watch/05-update-js-dependency-after-page-import-change/docs/name.js create mode 100644 packages/engine/test-node/fixtures/09-watch/05-update-js-dependency-after-page-import-change/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/06-create-single-page/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/06-create-single-page/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/06-create-single-page/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/09-watch/06-create-single-page/docs/name.js create mode 100644 packages/engine/test-node/fixtures/09-watch/06-create-single-page/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/07-delete-page/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/07-delete-page/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/09-update-pageTree-on-create/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/09-update-pageTree-on-create/docs/components.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/09-update-pageTree-on-create/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/09-update-pageTree-on-create/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/09-watch/09-update-pageTree-on-create/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/10-pageTree-change-rerenders-all-open/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/10-pageTree-change-rerenders-all-open/docs/components.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/10-pageTree-change-rerenders-all-open/docs/getting-started.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/10-pageTree-change-rerenders-all-open/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/10-pageTree-change-rerenders-all-open/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/09-watch/10-pageTree-change-rerenders-all-open/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09-watch/11-deletes-html-cache/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/11-deletes-html-cache/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09-watch/11-deletes-html-cache/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/09-watch/11-deletes-html-cache/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09b-watch-error-handling/01-name-is-not-defined/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09b-watch-error-handling/01-name-is-not-defined/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09b-watch-error-handling/02-import/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/09b-watch-error-handling/02-import/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/09b-watch-error-handling/03-markdown/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/09b-watch-error-handling/03-markdown/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/10-plugins/01-add-public-files/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/10-plugins/01-add-public-files/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/10-plugins/01-add-public-files/plugin-add-to-public/preset/__public/added-via-plugin.txt create mode 100644 packages/engine/test-node/fixtures/11-open-graph/01-renders-open-graph-layouts/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/01-renders-open-graph-layouts/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/404.html.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/about.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/components/accordion.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/components/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/index.rocket.md create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/recursive.data.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/02-formats/docs/some.xml.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/03-page-data/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/03-page-data/docs/local.data.js create mode 100644 packages/engine/test-node/fixtures/11-open-graph/03-page-data/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/12-playwright/01-file-change-reloads/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/12-playwright/01-file-change-reloads/docs/name.js create mode 100644 packages/engine/test-node/fixtures/12-playwright/01-file-change-reloads/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/13-config/01-add-rollup-plugin/docs/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/13-config/01-add-rollup-plugin/docs/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/fixtures/13-config/01-add-rollup-plugin/public/test-data.json create mode 100644 packages/engine/test-node/fixtures/13-config/02-add-middleware/pages/index.rocket.js create mode 100644 packages/engine/test-node/fixtures/13-config/02-add-middleware/pages/pageTreeData.rocketGenerated.json create mode 100644 packages/engine/test-node/test-helpers.js rename packages/{core => engine}/tsconfig.json (68%) create mode 100644 packages/engine/tsconfig.override.json create mode 100644 packages/engine/types/layout.d.ts create mode 100644 packages/engine/types/main.d.ts create mode 100644 packages/engine/types/menu.d.ts create mode 100644 packages/launch/__public/android-chrome-192x192.png create mode 100644 packages/launch/__public/android-chrome-512x512.png create mode 100644 packages/launch/__public/apple-touch-icon.png create mode 100644 packages/launch/__public/favicon.ico create mode 100644 packages/launch/__public/icon.svg create mode 100644 packages/launch/__public/site.webmanifest rename packages/launch/{preset/_assets => assets}/404/404.svg (100%) rename packages/launch/{preset/_assets => assets}/404/astronaut.svg (100%) rename packages/launch/{preset/_assets => assets}/404/earth.svg (100%) rename packages/launch/{preset/_assets => assets}/404/moon.svg (100%) rename packages/launch/{preset/_assets => assets}/404/rocket.svg (100%) rename packages/launch/{preset/_assets => assets}/brand-logos/discord.svg (100%) rename packages/launch/{preset/_assets => assets}/brand-logos/github.svg (100%) rename packages/launch/{preset/_assets => assets}/brand-logos/gitlab.svg (100%) create mode 100644 packages/launch/assets/brand-logos/info.txt rename packages/launch/{preset/_assets => assets}/brand-logos/slack.svg (100%) rename packages/launch/{preset/_assets => assets}/brand-logos/telegram.svg (100%) rename packages/launch/{preset/_assets => assets}/brand-logos/twitter.svg (100%) rename packages/launch/{preset/_assets => assets}/burger-menu.svg (100%) create mode 100644 packages/launch/css/404.css rename packages/launch/{preset/_assets/_static => css}/404/bg_purple.png (100%) rename packages/launch/{preset/_assets/_static => css}/404/overlay_stars.svg (100%) rename packages/launch/{preset/_assets => css}/layout.css (91%) rename packages/launch/{preset/_assets => css}/markdown.css (100%) rename packages/launch/{preset/_assets/_static => css}/noscript.css (100%) rename packages/launch/{preset/_assets => css}/style.css (100%) rename packages/launch/{preset/_assets => css}/variables.css (100%) delete mode 100644 packages/launch/index.js delete mode 100644 packages/launch/preset/_assets/_static/icons/android-chrome-192x192.png delete mode 100644 packages/launch/preset/_assets/_static/icons/android-chrome-512x512.png delete mode 100644 packages/launch/preset/_assets/_static/icons/apple-touch-icon.png delete mode 100644 packages/launch/preset/_assets/_static/icons/favicon-16x16.png delete mode 100644 packages/launch/preset/_assets/_static/icons/favicon-32x32.png delete mode 100755 packages/launch/preset/_assets/_static/icons/icon-128x128.png delete mode 100644 packages/launch/preset/_assets/_static/icons/icon-512x512.png delete mode 100755 packages/launch/preset/_assets/_static/icons/maskable-icon-128x128.png delete mode 100644 packages/launch/preset/_assets/_static/icons/maskable-icon.png delete mode 100644 packages/launch/preset/_assets/_static/icons/mstile-150x150.png delete mode 100644 packages/launch/preset/_assets/_static/icons/safari-pinned-tab.svg delete mode 100644 packages/launch/preset/_assets/logo.svg delete mode 100644 packages/launch/preset/_assets/octicon.svg delete mode 100644 packages/launch/preset/_assets/scripts/init-navigation.js delete mode 100644 packages/launch/preset/_assets/social-media-image.jpg delete mode 100644 packages/launch/preset/_assets/webmanifest.json delete mode 100644 packages/launch/preset/_data/footer.json delete mode 100644 packages/launch/preset/_data/rocketLaunch.json delete mode 100644 packages/launch/preset/_data/site.cjs delete mode 100644 packages/launch/preset/_data/siteUrl.cjs delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutHome/content/10-hero.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutHome/content/20-reasons.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutHome/content/30-content.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutHome/sidebar/10-logo.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutHome/sidebar/20-navigation.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutIndex/content/50-footer.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutSidebar/content/10-content.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutSidebar/content/100-footer.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutSidebar/sidebar/10-logo.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/_layoutSidebar/sidebar/20-navigation.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/bottom/10-init-navigation.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/footer/10-newsletter.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/footer/20-menu.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/head/20-icons.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/head/30-social-media.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/head/40-stylesheets-fonts.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/head/40-stylesheets.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/head/50-noscript.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/header/10-mobile-menu-trigger.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/header/20-logo.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/header/30-collection-header.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/header/40-dark-switch.njk delete mode 100644 packages/launch/preset/_includes/_joiningBlocks/header/50-social-links.njk delete mode 100644 packages/launch/preset/_includes/layout-404.njk delete mode 100644 packages/launch/preset/_includes/layout-home-background.njk delete mode 100644 packages/launch/preset/_includes/layout-home.njk delete mode 100644 packages/launch/preset/_includes/layout-index.njk delete mode 100644 packages/launch/preset/_includes/layout-sidebar.njk delete mode 100644 packages/launch/preset/_includes/partials/_layoutHome/content.njk delete mode 100644 packages/launch/preset/_includes/partials/_layoutHome/sidebar.njk delete mode 100644 packages/launch/preset/_includes/partials/_layoutSidebar/content.njk delete mode 100644 packages/launch/preset/_includes/partials/_layoutSidebar/sidebar.njk delete mode 100644 packages/launch/preset/_includes/partials/_shared/darkSwitch.njk delete mode 100644 packages/launch/preset/_includes/partials/_shared/logoLink.njk delete mode 100644 packages/launch/preset/_includes/partials/darkModeJs.njk delete mode 100644 packages/launch/preset/_includes/partials/mobile-sidebar-bottom.njk delete mode 100644 packages/launch/preset/rocketLaunch.js create mode 100644 packages/launch/src/Layout404.js create mode 100644 packages/launch/src/LayoutHome.js create mode 100644 packages/launch/src/LayoutSidebar.js create mode 100644 packages/launch/src/_shared.js create mode 100644 packages/launch/src/index.js rename packages/launch/{inline-notification/index.js => src/inline-notification/InlineNotification.js} (97%) rename packages/launch/{inline-notification/inline-notification.js => src/inline-notification/define.js} (51%) create mode 100644 packages/launch/src/inline-notification/index.js create mode 100644 packages/launch/src/public/init-mobile-navigation.js rename packages/{cli/preset/_assets/scripts/registerServiceWorker.js => launch/src/public/register-service-worker.js} (90%) rename packages/{cli/preset/_assets => launch/src/public}/service-worker.js (82%) create mode 100644 packages/launch/src/rocketLaunch.js rename packages/launch/test-node/{RocketLaunch.preset.test.js => RocketLaunch.preset.test2.js} (96%) rename packages/{eleventy-plugin-mdjs-unified => launch}/tsconfig.json (83%) create mode 100644 packages/launch/types/layout.d.ts create mode 100644 packages/mdjs-preview/server/LayoutSimulator.js create mode 100644 packages/mdjs-preview/server/index.js delete mode 100644 packages/navigation/CHANGELOG.md delete mode 100644 packages/navigation/README.md delete mode 100644 packages/navigation/index.js delete mode 100644 packages/navigation/package.json delete mode 100644 packages/navigation/rocket-navigation.js delete mode 100644 packages/navigation/src/RocketNavigation.js delete mode 100644 packages/navigation/test-web/rocket-navigation.test.js delete mode 100644 packages/navigation/tsconfig.json rename packages/search/test-node/{getIdBlocksOfHtml.test.js => getIdBlocksOfHtml.test2.js} (100%) rename packages/search/test-node/{renderResults.test.js => renderResults.test2.js} (100%) create mode 100644 packages/vscode-rocket/.eslintrc.json create mode 100644 packages/vscode-rocket/.vscodeignore create mode 100644 packages/vscode-rocket/.yarnrc create mode 100644 packages/vscode-rocket/CHANGELOG.md create mode 100644 packages/vscode-rocket/README.md create mode 100644 packages/vscode-rocket/media/main.js create mode 100644 packages/vscode-rocket/out/WebDevServerPanel.js create mode 100644 packages/vscode-rocket/out/WebDevServerPanel.js.map create mode 100644 packages/vscode-rocket/out/extension.js create mode 100644 packages/vscode-rocket/out/extension.js.map create mode 100644 packages/vscode-rocket/out/getNonce.js create mode 100644 packages/vscode-rocket/out/getNonce.js.map create mode 100644 packages/vscode-rocket/package.json create mode 100644 packages/vscode-rocket/src/WebDevServerPanel.ts create mode 100644 packages/vscode-rocket/src/extension.ts create mode 100644 packages/vscode-rocket/src/getNonce.ts create mode 100644 packages/vscode-rocket/src/test/runTest.ts.txt create mode 100644 packages/vscode-rocket/src/test/suite/extension.test.ts.txt create mode 100644 packages/vscode-rocket/src/test/suite/index.ts.txt create mode 100644 packages/vscode-rocket/tsconfig.json create mode 100644 packages/vscode-rocket/vsc-extension-quickstart.md create mode 100644 patches/@web+dev-server+0.1.29.patch create mode 100644 patches/@web+dev-server-core+0.3.17.patch create mode 100644 patches/es-module-lexer+0.9.3.patch create mode 100644 patches/rehype-prism+1.0.0.patch delete mode 100644 rocket.config.js create mode 100644 scripts/testMochaGlobalHooks.js create mode 100644 site/pages/10--docs/10--setup/10--getting-started.rocket.md create mode 100644 site/pages/10--docs/10--setup/20--adding-pages.rocket.md create mode 100644 site/pages/10--docs/10--setup/30--use-javascript.rocket.md create mode 100644 site/pages/10--docs/10--setup/index.rocket.js create mode 100644 site/pages/10--docs/20--basics/10--project-structure.rocket.md create mode 100644 site/pages/10--docs/20--basics/20--pages.rocket.md create mode 100644 site/pages/10--docs/20--basics/30--data-cascade.rocket.md create mode 100644 site/pages/10--docs/20--basics/40--components.rocket.md create mode 100644 site/pages/10--docs/20--basics/50--layouts.rocket.md create mode 100644 site/pages/10--docs/20--basics/60--routing.rocket.md create mode 100644 site/pages/10--docs/20--basics/70--navigation.rocket.md create mode 100644 site/pages/10--docs/20--basics/80--hydration.rocket.md create mode 100644 site/pages/10--docs/20--basics/90--assets.rocket.md create mode 100644 site/pages/10--docs/20--basics/90--configuration.rocket.md create mode 100644 site/pages/10--docs/20--basics/index.rocket.js create mode 100644 site/pages/10--docs/30--guides/10--overview.rocket.md create mode 100644 site/pages/10--docs/30--guides/20--social-media.rocket.md rename docs/docs/configuration/images.md => site/pages/10--docs/30--guides/30--images.rocket.md (92%) create mode 100644 site/pages/10--docs/30--guides/40--markdown.rocket.md create mode 100644 site/pages/10--docs/30--guides/50--go-live.rocket.md create mode 100644 site/pages/10--docs/30--guides/index.rocket.js rename docs/guides/index.md => site/pages/10--docs/index.rocket.md (69%) rename docs/docs/presets/launch/preset.md => site/pages/20--presets/10--launch/10--overview.rocket.md (55%) rename docs/docs/configuration/service-worker.md => site/pages/20--presets/10--launch/20--service-worker.rocket.md (52%) create mode 100644 site/pages/20--presets/10--launch/index.rocket.js create mode 100644 site/pages/20--presets/index.rocket.md rename docs/docs/tools/plugins-manager.md => site/pages/30--tools/10--plugins-manager/10--overview.rocket.md (96%) create mode 100644 site/pages/30--tools/10--plugins-manager/index.rocket.js rename docs/docs/markdown-javascript/overview.md => site/pages/30--tools/20--markdown-javascript/10--overview.rocket.md (92%) rename docs/docs/markdown-javascript/preview.md => site/pages/30--tools/20--markdown-javascript/20--preview.rocket.md (92%) rename docs/docs/markdown-javascript/story.md => site/pages/30--tools/20--markdown-javascript/30--story.rocket.md (50%) rename {docs/docs/markdown-javascript => site/pages/30--tools/20--markdown-javascript}/assets/demo-element.js (100%) create mode 100644 site/pages/30--tools/20--markdown-javascript/index.rocket.js rename docs/docs/tools/rollup-config.md => site/pages/30--tools/30--rollup-config/10--overview.rocket.md (89%) create mode 100644 site/pages/30--tools/30--rollup-config/index.rocket.js rename docs/docs/tools/check-html-links.md => site/pages/30--tools/40--check-html-links/10--overview.rocket.md (79%) rename {docs/docs/tools => site/pages/30--tools/40--check-html-links}/images/check-html-links-screenshot.png (100%) create mode 100644 site/pages/30--tools/40--check-html-links/index.rocket.js rename docs/docs/index.md => site/pages/30--tools/index.rocket.md (58%) rename docs/blog/introducing-check-html-links.md => site/pages/40--blog/001--introducing-check-html-links.rocket.md (94%) create mode 100644 site/pages/40--blog/002--introducing-rocket.md create mode 100644 site/pages/40--blog/index.rocket.js create mode 100644 site/pages/404.html.rocket.js create mode 100644 site/pages/__shared/footerMenu.js create mode 100644 site/pages/__shared/pageTree.js create mode 100644 site/pages/index.rocket.js create mode 100644 site/pages/pageTreeData.rocketGenerated.json create mode 100644 site/pages/recursive.data.js create mode 100644 site/pages/simulator.rocket.js create mode 100644 site/pages/sitemap.xml.rocket.js rename {packages/launch/preset/_assets => site/public}/home-background.svg (100%) create mode 100644 site/public/netlify.toml diff --git a/.eleventyignore b/.eleventyignore deleted file mode 100644 index 3dc0e48..0000000 --- a/.eleventyignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules/** -/docs/_assets -/docs/_includes -/docs/_data diff --git a/.eslintignore b/.eslintignore index 216d22c..e9453fb 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,3 +12,7 @@ __output __output-dev docs/_merged* +*-mdjs-generated.js + +/packages/engine/test-node/fixtures/06-error-handling/01-page-error/docs/index.rocket.js +/packages/engine/test-node/fixtures/03b-format-markdown/c01-md-in-js-to-md-html/md-in-js.js diff --git a/.gitignore b/.gitignore index 68e1853..d90604c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ ## editors /.idea -/.vscode ## system files .DS_Store @@ -28,9 +27,7 @@ stats.html *.tsbuildinfo ## Rocket ignore files (need to be the full relative path to the folders) -docs/_merged_data/ -docs/_merged_assets/ -docs/_merged_includes/ +*-mdjs-generated.js _site _site-dev @@ -40,3 +37,4 @@ _merged_assets _merged_includes __output __output-dev +docs_backup diff --git a/.nvmrc b/.nvmrc index 958b5a3..6f7f377 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v14 +v16 diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..3ac9aeb --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "dbaeumer.vscode-eslint" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..76933ef --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,34 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Run Web Dev Server Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}/packages/vscode-rocket" + ], + "outFiles": [ + "${workspaceFolder}/packages/vscode-rocket/out/**/*.js" + ], + "preLaunchTask": "Compile vscode-rocket" + }, + { + "name": "Extension Tests", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}", + "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" + ], + "outFiles": [ + "${workspaceFolder}/out/test/**/*.js" + ], + "preLaunchTask": "${defaultBuildTask}" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..bf3788e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "gitdoc.enabled": false, + "typescript.tsdk": "node_modules/typescript/lib", + "files.exclude": { + "**/*-mdjs-generated.js": false, + }, + "search.exclude": { + "**/*-mdjs-generated.js": true, + "**/dist-types": true, + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..3c5ef35 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,29 @@ +// See https://go.microsoft.com/fwlink/?LinkId=733558 +// for the documentation about the tasks.json format +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "watch", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "Compile vscode-rocket", + "type": "npm", + "script": "compile", + "path": "packages/vscode-rocket/", + "group": "build", + "problemMatcher": [], + "detail": "tsc -p ./" + } + ] +} diff --git a/README.md b/README.md index 2f55459..a8dc8e6 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ **The modern web setup for static sites with a sprinkle of JavaScript!** -- **Meta Framework:** Build on top of giants like Eleventy, Rollup, and Modern Web. +- **Meta Framework:** Build on top of giants like Lit, Rollup and Modern Web. - **Powerful Default Template:** Provide content and you are ready to go. - **Small:** No overblown tools or frontend frameworks, add JavaScript and/or Web Components only on pages where needed.. @@ -55,6 +55,16 @@ You can still tweak every detail of every underlying tool that gets used. Rocket is part of the [Modern Web Family](https://twitter.com/modern_web_dev). +## Quick Start + +``` +mkdir test-rocket +cd test-rocket +npm init -y +npm i @rocket/cli@alpha @rocket/launch@alpha @11ty/eleventy-cache-assets typescript +npx rocket init +``` + ## 🤝 Contributing We are always looking for contributors of all skill levels! If you're looking to ease your way into the project, try out a [good first issue](https://github.com/modernweb-dev/rocket/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..8bacc2b --- /dev/null +++ b/TODO.md @@ -0,0 +1,39 @@ +## Features + +- ssr render can just be a string concat +- recursive rendering of lit / html / and markdown + - "import" markdown with frontmatter +- mdjs update to unified v10 AND go esm only (only cjs pkg we have now) + +## Nice to have + +- Add "menuExclude" => to actually exclude the menu item + +## Bugs + +- write to `_site-dev` instead of `_site` while using `rocket start` +- nested `recursive.data.js` do not overwrite the parent data +- support in markdown + +## Error Handling + +- make error nice for parent page not found in index => auto generate page? 🤔 + +## Examples + +- docs site, blog (simple), blog (complex), minimal +- add stackblitz/codesandbox examples => does not work because of `@parcel/watcher` https://github.com/parcel-bundler/watcher/issues/99 + +- Example: export variable and use it in rendering +- Example: fetch data from an api and display it +- Example: usage of image + +## later + +- support `@change` in markdown +- support "hey ${foo.map(f => `${f} + 1`)}" +- ENGINE: Rename "options.docsDir" to "options.inputDir" + +## consider + +- Replace magic "resolve:pkg/foo.css" with a directive `${resolve()}`? diff --git a/config/rocket.config.js b/config/rocket.config.js new file mode 100644 index 0000000..20793b1 --- /dev/null +++ b/config/rocket.config.js @@ -0,0 +1,44 @@ +import { rocketLaunch } from '@rocket/launch'; +// import { rocketBlog } from '@rocket/blog'; +// import { rocketSearch } from '@rocket/search'; +// import { absoluteBaseUrlNetlify } from '@rocket/core/helpers'; +// import { adjustPluginOptions } from 'plugins-manager'; +// import { mdjsSetupCode } from '@mdjs/core'; +// TODO: preset needs to be updated to use the new plugin manager +// import { codeTabs } from 'rocket-preset-code-tabs'; +// import { customElementsManifest } from 'rocket-preset-custom-elements-manifest'; + +/** @type {import('@rocket/cli/types/main').RocketCliOptions} */ +export default { + absoluteBaseUrl: 'http://localhost:8080', + + presets: [ + rocketLaunch(), + // rocketBlog(), + // rocketSearch(), + // codeTabs({ + // collections: { + // packageManagers: { + // npm: { label: 'NPM', iconHref: '/_merged_assets/_static/logos/npm.svg' }, + // yarn: { label: 'Yarn', iconHref: '/_merged_assets/_static/logos/yarn.svg' }, + // pnpm: { label: 'PNPM', iconHref: '/_merged_assets/_static/logos/pnpm.svg' }, + // }, + // }, + // }), + // customElementsManifest(), + ], + + // eleventy(eleventyConfig) { + // eleventyConfig.addTransform('fix-noscript', content => + // content + // .replace(/&#x3C;(link|style)/g, '<$1') + // .replace(/&(link|style)/g, '<$1') + // .replace(/<(link|style)/g, '<$1'), + // ); + // }, + + // serviceWorkerName: 'sw.js', + // pathPrefix: '/_site/', + + // emptyOutputDir: false, +}; diff --git a/docs/.eleventyignore b/docs/.eleventyignore deleted file mode 100644 index cf3a8ae..0000000 --- a/docs/.eleventyignore +++ /dev/null @@ -1 +0,0 @@ -*.docs.md diff --git a/docs/404.md b/docs/404.md deleted file mode 100644 index 10fb603..0000000 --- a/docs/404.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -layout: layout-404 -permalink: 404.html ---- diff --git a/docs/_assets/_static/logos/npm.svg b/docs/_assets/_static/logos/npm.svg deleted file mode 100644 index 401f998..0000000 --- a/docs/_assets/_static/logos/npm.svg +++ /dev/null @@ -1 +0,0 @@ -n \ No newline at end of file diff --git a/docs/_assets/_static/logos/pnpm.svg b/docs/_assets/_static/logos/pnpm.svg deleted file mode 100644 index d60132a..0000000 --- a/docs/_assets/_static/logos/pnpm.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/docs/_assets/_static/logos/yarn.svg b/docs/_assets/_static/logos/yarn.svg deleted file mode 100644 index 86edb18..0000000 --- a/docs/_assets/_static/logos/yarn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/_assets/body.css b/docs/_assets/body.css deleted file mode 100644 index d8dee66..0000000 --- a/docs/_assets/body.css +++ /dev/null @@ -1,10 +0,0 @@ -html { - --demo-background-color: #eee; - --demo-color: #222; -} - -html[theme="dark"] body { - background: #333; - --demo-background-color: #888; - --demo-color: #eee; -} diff --git a/docs/_assets/home-background-original.svg b/docs/_assets/home-background-original.svg deleted file mode 100644 index 0bbf166..0000000 --- a/docs/_assets/home-background-original.svg +++ /dev/null @@ -1 +0,0 @@ -Outer space diff --git a/docs/_assets/logo.svg b/docs/_assets/logo.svg deleted file mode 100644 index 6a151fb..0000000 --- a/docs/_assets/logo.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/_assets/social-media-image.jpg b/docs/_assets/social-media-image.jpg deleted file mode 100644 index c83352cee26a065306ca925b28b4937a7e03aa7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52525 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%0D)nL>MkzaRSf9+Aw{|FBd+wZse^eNO&m;|BP* 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 X%I%%{t_Ai=SYOI1?=G?EuciM07<+q- diff --git a/docs/_assets/style.css b/docs/_assets/style.css deleted file mode 100644 index ca2c0cf..0000000 --- a/docs/_assets/style.css +++ /dev/null @@ -1,51 +0,0 @@ -:not(rocket-navigation):not(:defined) { - opacity: 0; -} - -rocket-navigation, -header { - font-family: 'Montserrat', sans-serif; -} - -code-tabs[collection="package-managers"] { - --code-tabs-icon-height: 18px; -} - -.call-to-action { - background: var(--button-one) !important; - text-shadow: none !important; - border-radius: 5px !important; - padding-top: 15px !important; - padding-bottom: 15px !important; - border: none !important; -} - -.call-to-action:hover, -.call-to-action:focus, -.call-to-action:active { - background: var(--button-one-hover) !important; -} - -.call-to-action:nth-child(2) { - background: var(--button-two) !important; -} - -.call-to-action:nth-child(2):hover, -.call-to-action:nth-child(2):focus, -.call-to-action:nth-child(2):active { - background: var(--button-two-hover) !important; -} - -body[layout^='layout-home'] .markdown-body .call-to-action:nth-of-type(2) { - --primary-color: #222; - --primary-color-lighter: #333; - --primary-color-darker: #000; -} - -@media screen and (min-width: 1024px) { - body[layout='layout-home-background'] .page-background { - top: -210px; - right: -463px; - transform: rotate(45deg); - } -} diff --git a/docs/_assets/theme.css b/docs/_assets/theme.css deleted file mode 100644 index 05aab6b..0000000 --- a/docs/_assets/theme.css +++ /dev/null @@ -1,141 +0,0 @@ -html { - --button-one-hover: #436eff; - --button-one: #2758ff; - --button-two-hover: #444; - --button-two: black; - --contrast-color-dark: #1d3557; - --contrast-color-light: #fff; - --footer-background: rgba(0, 0, 0, 0.02); - --header-color: white; - --markdown-link-color: #2758ff; - --markdown-syntax-background-color: #f9f9f9; - --markdown-table-row-odd-background-color: #efefef; - --owc-active-color: #2758ff; - --owc-hover-color: #436eff; - --page-background: white; - --primary-color-accent: #cee5f6; - --primary-color-darker: #1a5285; - --primary-color-lighter: #449ad7; - --primary-color: rgb(44, 62, 80); - --primary-lines-color: #ccc; - --primary-text-color: #2c3e50; - --primary-text-inverse-color: #eee; - --switch-unselected-color: #808080; - --switch-selected-color: #42b983; -} - -@media (prefers-color-scheme: dark) { - html { - --header-color: #2f3136; - --footer-background: rgba(255, 255, 255, 0.1); - --page-background: #36393e; - --text-color: #eee; - --primary-text-color: #eee; - --primary-color: white; - --primary-color-lighter: #449ad7; - --primary-color-darker: #1a5285; - --primary-color-accent: #cee5f6; - --contrast-color-light: #fff; - --contrast-color-dark: #1d3557; - --primary-lines-color: #333; - --owc-active-color: #41ffb0; - --owc-hover-color: #6dffc2; - --button-one: #9b03fe; - --button-one-hover: #a724ff; - --button-two: black; - --button-two-hover: rgb(36, 36, 36); - --rocket-search-background-color: #4a4d52; - --rocket-search-highlight-color: #41ffb0; - --rocket-search-hover-background-color: #6b717a; - --rocket-search-fill-color: #fff; - --primary-text-inverse-color: #2c3e50; - --switch-unselected-color: #808080; - --switch-selected-color: #42b983; - - /* Markdown */ - --markdown-octicon-link: var(--primary-text-color); - --markdown-link-color: #41ffb0; - --markdown-divider-color: #e1e4e8; - --markdown-blockquote-border-color: #dfe2e5; - --markdown-blockquote-color: #90aac7; - --markdown-kbd-background-color: #fafbfc; - --markdown-kbd-border-color: #c6cbd1; - --markdown-kbd-border-bottom-color: #959da5; - --markdown-kbd-color: #444d56; - --markdown-heading-color-6: #6a737d; - --markdown-table-background-color: var(--markdown-syntax-background-color); - --markdown-table-row-odd-background-color: var(--markdown-kbd-color); - --markdown-table-border-color: transparent; - --markdown-code-background-color: rgba(27, 31, 35, 0.05); - --markdown-pre-background-color: rgb(49, 49, 49); - - /* syntax */ - --markdown-syntax-color: #f8f8f2; - --markdown-syntax-background-color: #2e3440; - --markdown-syntax-atrule-color: #88c0d0; - --markdown-syntax-attr-name-color: #a3be8c; - --markdown-syntax-attr-value-color: #88c0d0; - --markdown-syntax-builtin-color: #a3be8c; - --markdown-syntax-boolean-color: #81a1c1; - --markdown-syntax-class-name-color: #88c0d0; - --markdown-syntax-constant-color: #81a1c1; - --markdown-syntax-char-color: #a3be8c; - --markdown-syntax-deleted-color: #81a1c1; - --markdown-syntax-entity-color: #81a1c1; - --markdown-syntax-function-color: #88c0d0; - --markdown-syntax-inserted-color: #a3be8c; - --markdown-syntax-keyword-color: #81a1c1; - --markdown-syntax-number-color: #b48ead; - --markdown-syntax-operator-color: #81a1c1; - --markdown-syntax-property-color: #81a1c1; - --markdown-syntax-punctuation-color: #81a1c1; - --markdown-syntax-regex-color: #81a1c1; - --markdown-syntax-important-color: #81a1c1; - --markdown-syntax-selector-color: #a3be8c; - --markdown-syntax-symbol-color: #81a1c1; - --markdown-syntax-string-color: #a3be8c; - --markdown-syntax-tag-color: #81a1c1; - --markdown-syntax-url-color: #81a1c1; - --markdown-syntax-variable-color: #81a1c1; - --markdown-syntax-hotkey-selector-color: #d73a49; - --markdown-syntax-keyword-color: #22863a; - --markdown-syntax-background-color: rgb(27, 29, 35); - --markdown-syntax-atrule-color: rgb(198, 120, 221); - --markdown-syntax-attr-name-color: rgb(198, 120, 221); - --markdown-syntax-boolean-color: rgb(209, 154, 102); - --markdown-syntax-class-name-color: rgb(97, 175, 239); - --markdown-syntax-constant-color: rgb(220, 220, 170); - --markdown-syntax-entity-color: rgb(220, 220, 170); - --markdown-syntax-function-color: rgb(97, 175, 239); - --markdown-syntax-inserted-color: rgb(220, 220, 170); - --markdown-syntax-keyword-color: rgb(198, 120, 221); - --markdown-syntax-number-color: rgb(220, 220, 170); - --markdown-syntax-operator-color: rgb(220, 220, 170); - --markdown-syntax-property-color: rgb(220, 220, 170); - --markdown-syntax-punctuation-color: white; - --markdown-syntax-regex-color: rgb(209, 154, 102); - --markdown-syntax-selector-color: rgb(86, 156, 214); - --markdown-syntax-symbol-color: rgb(220, 220, 170); - --markdown-syntax-tag-color: rgb(86, 156, 214); - --markdown-syntax-url-color: rgb(220, 220, 170); - --markdown-syntax-variable-color: rgb(220, 220, 170); - } - - .string { - color: rgb(152, 195, 121); - } - - .comment { - color: #7d7d7d; - } - - .language-css { - --markdown-syntax-string-color: #81a1c1; - } -} - -body[layout='home'] .markdown-body .call-to-action:nth-of-type(2) { - --primary-color: #222; - --primary-color-lighter: #333; - --primary-color-darker: #000; -} diff --git a/docs/_assets/webmanifest.json b/docs/_assets/webmanifest.json deleted file mode 100644 index 76f9478..0000000 --- a/docs/_assets/webmanifest.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "Rocket", - "short_name": "rocket", - "theme_color": "#e63946", - "background_color": "#1d3557", - "display": "standalone", - "orientation": "portrait", - "Scope": "/", - "start_url": "/", - "icons": [ - { - "src": "../_merged_assets/_static/icons/android-chrome-192x192.png", - "sizes": "128x128", - "type": "image/png" - }, - { - "src": "../_merged_assets/_static/icons/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "../_merged_assets/_static/icons/maskable-icon.jpg", - "sizes": "1024x1024", - "type": "image/jpg", - "purpose": "any maskable" - } - ], - "splash_pages": null -} diff --git a/docs/_data/footer.json b/docs/_data/footer.json deleted file mode 100644 index 77a00e7..0000000 --- a/docs/_data/footer.json +++ /dev/null @@ -1,45 +0,0 @@ -[ - { - "name": "Discover", - "children": [ - { - "text": "Blog", - "href": "/blog/" - }, - { - "text": "Help and Feedback", - "href": "https://github.com/modernweb-dev/rocket/issues" - } - ] - }, - { - "name": "Follow", - "children": [ - { - "text": "GitHub", - "href": "https://github.com/modernweb-dev/rocket" - }, - { - "text": "Twitter", - "href": "https://twitter.com/modern_web_dev" - }, - { - "text": "Slack", - "href": "/about/slack/" - } - ] - }, - { - "name": "Support", - "children": [ - { - "text": "Sponsor", - "href": "/about/sponsor/" - }, - { - "text": "Contribute", - "href": "https://github.com/modernweb-dev/rocket/blob/main/CONTRIBUTING.md" - } - ] - } -] diff --git a/docs/_data/rocketLaunch.json b/docs/_data/rocketLaunch.json deleted file mode 100644 index 204aeab..0000000 --- a/docs/_data/rocketLaunch.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "homeLayout": "background", - "newsletter": false -} diff --git a/docs/_data/site.cjs b/docs/_data/site.cjs deleted file mode 100644 index fa0b460..0000000 --- a/docs/_data/site.cjs +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = async function () { - return { - dir: 'ltr', - lang: 'en', - name: 'Rocket', - description: 'Rocket is the way to build fast static websites with a sprinkle of JavaScript', - socialLinks: [ - { - name: 'GitHub', - url: 'https://github.com/modernweb-dev/rocket', - }, - { - name: 'Slack', - url: - 'https://join.slack.com/t/lit-and-friends/shared_invite/zt-llwznvsy-LZwT13R66gOgnrg12PUGqw', - }, - ], - gitSiteUrl: 'https://github.com/modernweb-dev/rocket', - gitBranch: 'main', - helpUrl: 'https://github.com/modernweb-dev/rocket/issues', - logoAlt: 'Rocket Logo', - iconColorMaskIcon: '#3f93ce', - iconColorMsapplicationTileColor: '#1d3557', - iconColorThemeColor: '#1d3557', - socialMediaImage: '/_assets/social-media-image.jpg', - // analytics: 'UA-131782693-2', // modern web key - }; -}; diff --git a/docs/_includes/_joiningBlocks/head/45-stylesheets-custom.njk b/docs/_includes/_joiningBlocks/head/45-stylesheets-custom.njk deleted file mode 100644 index d98092f..0000000 --- a/docs/_includes/_joiningBlocks/head/45-stylesheets-custom.njk +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/_includes/_joiningBlocks/head/site.njk b/docs/_includes/_joiningBlocks/head/site.njk deleted file mode 100644 index 19a61e2..0000000 --- a/docs/_includes/_joiningBlocks/head/site.njk +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/about/slack.md b/docs/about/slack.md deleted file mode 100644 index 3904bf1..0000000 --- a/docs/about/slack.md +++ /dev/null @@ -1,5 +0,0 @@ -# Slack - -You can also find us on the Polymer Slack in the [#open-wc](https://polymer.slack.com/archives/CE6D9DN05) channel. - -You can join the Polymer Slack by visiting [https://www.polymer-project.org/slack-invite](https://www.polymer-project.org/slack-invite). diff --git a/docs/about/sponsor.md b/docs/about/sponsor.md deleted file mode 100644 index 0a229fb..0000000 --- a/docs/about/sponsor.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Sponsor -eleventyNavigation: - key: Sponsor ---- - -We currently can only accept sponsoring in the form of services or contributions. - -If you are interested in monetary sponsoring please [let us know](mailto:hello@modern-web.dev). diff --git a/docs/blog/index.md b/docs/blog/index.md deleted file mode 100644 index 451a7d6..0000000 --- a/docs/blog/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: layout-blog-overview -eleventyNavigation: - key: Blog - order: 30 -pagination: - data: collections.blog - size: 10 - reverse: true - alias: posts ---- - -# Rocket Blog - -Discover articles from the core team and contributors about Rocket, tips and tricks included! diff --git a/docs/blog/introducing-check-html-links.11tydata.cjs b/docs/blog/introducing-check-html-links.11tydata.cjs deleted file mode 100644 index ceeb18d..0000000 --- a/docs/blog/introducing-check-html-links.11tydata.cjs +++ /dev/null @@ -1,12 +0,0 @@ -const { createSocialImage } = require('@rocket/cli'); - -module.exports = async function () { - const socialMediaImage = await createSocialImage({ - title: 'Introducing', - subTitle: 'check-html-links', - footer: 'Rocket Blog', - }); - return { - socialMediaImage, - }; -}; diff --git a/docs/browserconfig.xml b/docs/browserconfig.xml deleted file mode 100644 index 549601d..0000000 --- a/docs/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #1d3557 - - - diff --git a/docs/docs/configuration/computed-config.md b/docs/docs/configuration/computed-config.md deleted file mode 100644 index 189e994..0000000 --- a/docs/docs/configuration/computed-config.md +++ /dev/null @@ -1,40 +0,0 @@ -# Configuration >> Computed Config || 20 - -If you want to add data that depends on other data then you can do it via [Eleventy's computed data](https://www.11ty.dev/docs/data-computed/). - -Rocket exposes it via `setupEleventyComputedConfig`. - -## Set Your Own Data - -Let's say you want to add a `Welcome to the contact page` everywhere. (A filter might be a better choice, but it's a good example of the concept.) - -👉 `rocket.config.js` (or your theme config file) - - -```js copy -import { addPlugin } from 'plugins-manager'; - -/** @type {import('@rocket/cli').RocketCliOptions} */ -export default ({ - setupEleventyComputedConfig: [ - addPlugin({ name: 'greeting', plugin: data => `Welcome to the ${data.title} page.` }), - ], -}); -``` - - -Now you can use {% raw %}{{ greeting }}{% endraw %} everywhere, -and it will be correctly replaced with a Welcome and the page title. - -## Default Available Configs - -```js -[ - { name: 'titleMeta', plugin: titleMetaPlugin }, - { name: 'title', plugin: titlePlugin }, - { name: 'eleventyNavigation', plugin: eleventyNavigationPlugin }, - { name: 'section', plugin: sectionPlugin }, - { name: 'socialMediaImage', plugin: socialMediaImagePlugin }, - { name: 'templateBlocks', plugin: templateBlocksPlugin, options: rocketConfig }, -]; -``` diff --git a/docs/docs/configuration/index.md b/docs/docs/configuration/index.md deleted file mode 100644 index 5c622fe..0000000 --- a/docs/docs/configuration/index.md +++ /dev/null @@ -1 +0,0 @@ -# Configuration ||10 diff --git a/docs/docs/configuration/overview.md b/docs/docs/configuration/overview.md deleted file mode 100644 index 0e53401..0000000 --- a/docs/docs/configuration/overview.md +++ /dev/null @@ -1,166 +0,0 @@ -# Configuration >> Overview || 10 - -The configuration file is `rocket.config.js` or `rocket.config.mjs`. - -The config files consist of the following parts: - - -```js -import { rocketLaunch } from '@rocket/launch'; - -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - presets: [rocketLaunch()], - emptyOutputDir: true, - pathPrefix: 'subfolder-only-for-build', -}); -``` - - -Rocket is primarily build around plugins for each of its systems. - -New plugins can be added and all default plugins can be adjusted or even removed by using the following functions. - - -```js -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - // add remark/unified plugin to the Markdown processing (e.g. enable special code blocks) - setupUnifiedPlugins: [], - - // add a rollup plugins to the web dev server (will be wrapped with @web/dev-server-rollup) AND the rollup build (e.g. enable json importing) - setupDevAndBuildPlugins: [], - - // add a plugin to the web dev server (will not be wrapped) (e.g. esbuild for TypeScript) - setupDevPlugins: [], - - // add a plugin to the rollup build (e.g. optimization steps) - setupBuildPlugins: [], - - // add a plugin to Eleventy (e.g. a filter packs) - setupEleventyPlugins: [], - - // add a computedConfig to Eleventy (e.g. site wide default variables like socialMediaImage) - setupEleventyComputedConfig: [], - - // add a plugin to the cli (e.g. a new command like "rocket my-command") - setupCliPlugins: [], -}); -``` - - -## Adding Rollup Plugins - -For some projects you might want to enable non-standard behaviors like importing JSON files as JavaScript. - -```js -import data from './data.json'; -``` - -You can accomplish this with Rollup and dev server plugins. Make sure to add both the dev-server plugin as well as the Rollup plugin, so that the behaviors is the same during development as it is in the production build. - -For these cases you can use `setupDevAndBuildPlugins`, which will automatically add the plugin for you to both Rollup and dev-server: - - -```js -import json from '@rollup/plugin-json'; -import { addPlugin } from 'plugins-manager'; - -/** @type {import('@rocket/cli').RocketCliOptions} */ -export default ({ - setupDevAndBuildPlugins: [ - addPlugin({ name: 'json', plugin: json, location: 'top', options: { my: 'settings' } }), - ], -}); -``` - - -This will add the Rollup plugin `json` with the id `json` at the top of the plugin list of Rollup and the dev server. It needs to be at the top so further plugins down the line can work with JSON imports. -For the Dev Server the plugins are automatically wrapped by `@web/dev-server-rollup`. Note that [not all Rollup plugins](https://modern-web.dev/docs/dev-server/plugins/rollup/#compatibility-with-rollup-plugins) will work with the dev-server. - -## Modifying Options of Plugins - -All plugins which are either default or are added via a preset can still be adjusted by using `adjustPluginOptions`. - - -```js -import { adjustPluginOptions } from 'plugins-manager'; - -/** @type {import('@rocket/cli').RocketCliOptions} */ -export default ({ - setupDevAndBuildPlugins: [adjustPluginOptions('json', { my: 'overwrite settings' })], -}); -``` - - -## Lifecycle - -You can hook into the rocket lifecycle by specifying a function for `before11ty`. This function runs before 11ty calls it's write method. If it is an async function, Rocket will await it's promise. - - -```js -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - async before11ty() { - await copyDataFiles(); - }, -}); -``` - - -## Advanced - -Sometimes you need even more control over specific settings. - -### Rollup - -For example if you wanna add an `acron` plugin to rollup - - -```js -import { importAssertions } from 'acorn-import-assertions'; - -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - rollup: config => ({ - ...config, - acornInjectPlugins: [importAssertions], - }), -}); -``` - - -### Eleventy - -For example to add custom filter you can access the eleventy config directly - - -```js -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - eleventy: eleventyConfig => { - eleventyConfig.addFilter('value', value => `prefix${value}`); - }, -}); -``` - - -You even have access to the full rocketConfig if you for example want to create filters that behave differently during start/build. - - -```js -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - eleventy: (config, rocketConfig) => { - config.addFilter('conditional-resolve', value => { - if (rocketConfig.command === 'build') { - return `build:${value}`; - } - if (rocketConfig.command === 'start') { - return `start:${value}`; - } - }); - }, -}); -``` - diff --git a/docs/docs/eleventy-plugins/index.md b/docs/docs/eleventy-plugins/index.md deleted file mode 100644 index cb2e4d1..0000000 --- a/docs/docs/eleventy-plugins/index.md +++ /dev/null @@ -1 +0,0 @@ -# Eleventy Plugins ||40 diff --git a/docs/docs/eleventy-plugins/mdjs-unified.md b/docs/docs/eleventy-plugins/mdjs-unified.md deleted file mode 100644 index eb64fce..0000000 --- a/docs/docs/eleventy-plugins/mdjs-unified.md +++ /dev/null @@ -1,94 +0,0 @@ -# Eleventy Plugins >> Markdown JavaScript (mdjs) - -Use mdjs in your Eleventy site. - -## Setup - -```shell -npm install @rocket/eleventy-plugin-mdjs -``` - -Create an Eleventy config file `.eleventy.js` - -```js -const pluginMdjs = require('@rocket/eleventy-plugin-mdjs'); - -module.exports = function (eleventyConfig) { - eleventyConfig.addPlugin(pluginMdjs); -}; -``` - -## Configure a unified or remark Plugin with mdjs - -By providing a `setupUnifiedPlugins` function as an option to `eleventy-plugin-mdjs` you can set options for all unified/remark plugins. - -We do use [plugins-manager](../tools/plugins-manager.md). - -This example adds a CSS class to the `htmlHeading` plugin so heading links can be selected in CSS. - -```js -const pluginMdjs = require('@rocket/eleventy-plugin-mdjs'); -const { adjustPluginOptions } = require('plugins-manager'); - -module.exports = function (eleventyConfig) { - eleventyConfig.addPlugin(pluginMdjs, { - setupUnifiedPlugins: [ - adjustPluginOptions('htmlHeading', { - properties: { - className: ['anchor'], - }, - }), - ], - }); -}; -``` - -## Add a unified or remark Plugin - -The order of plugins is important in unified as each plugin processes the content and passes on its result. -Some plugins do work with the Markdown AST and some with the rehype (e.g. HTML) AST. In order to get access to the correct AST the plugin needs to be in a specific location in the processing order. - -Examples on how to insert a plugin right after creating the Markdown AST. - -```js -const pluginMdjs = require('@rocket/eleventy-plugin-mdjs'); -const { addPlugin } = require('plugins-manager'); -const { myRemarkPlugin } = require('./my-remark-plugin.js'); - -module.exports = function (eleventyConfig) { - eleventyConfig.addPlugin(pluginMdjs, { - setupUnifiedPlugins: [ - addPlugin({ name: 'my-remark-plugin', plugin: myRemarkPlugin, location: 'markdown' }), - ], - }); -}; -``` - -Examples on how to insert a plugin right after creating the rehype AST. - -```js -const pluginMdjs = require('@rocket/eleventy-plugin-mdjs'); -const { addPlugin } = require('plugins-manager'); -const { myRehypePlugin } = require('./my-rehype-plugin.js'); - -module.exports = function (eleventyConfig) { - eleventyConfig.addPlugin(pluginMdjs, { - setupUnifiedPlugins: [ - addPlugin({ name: 'my-rehype-plugin', plugin: myRehypePlugin, location: 'remark2rehype' }), - ], - }); -}; -``` - -You can also add both - -```js -module.exports = function (eleventyConfig) { - eleventyConfig.addPlugin(pluginMdjs, { - setupUnifiedPlugins: [ - addPlugin({ name: 'my-remark-plugin', plugin: myRemarkPlugin, location: 'markdown' }), - addPlugin({ name: 'my-rehype-plugin', plugin: myRehypePlugin, location: 'remark2rehype' }), - ], - }); -}; -``` diff --git a/docs/docs/markdown-javascript/index.md b/docs/docs/markdown-javascript/index.md deleted file mode 100644 index c8011ed..0000000 --- a/docs/docs/markdown-javascript/index.md +++ /dev/null @@ -1 +0,0 @@ -# Markdown JavaScript ||30 diff --git a/docs/docs/presets/blog.md b/docs/docs/presets/blog.md deleted file mode 100644 index 2c76573..0000000 --- a/docs/docs/presets/blog.md +++ /dev/null @@ -1,36 +0,0 @@ -# Presets >> Blog || 40 - -Enable writing blog posts within your Rocket site. - -## Installation - - - -```bash tab npm -npm i @rocket/blog -``` - -```bash tab yarn -yarn add @rocket/blog -``` - -```bash tab pnpm -pnpm add @rocket/blog -``` - - - -## Usage - -👉 `rocket.config.js` - - -```js -import { rocketBlog } from '@rocket/blog'; - -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - presets: [rocketBlog()], -}); -``` - diff --git a/docs/docs/presets/index.md b/docs/docs/presets/index.md deleted file mode 100644 index b996412..0000000 --- a/docs/docs/presets/index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -excludeFromSearch: true ---- - -# Presets ||20 diff --git a/docs/docs/presets/joining-blocks.md b/docs/docs/presets/joining-blocks.md deleted file mode 100644 index 6067529..0000000 --- a/docs/docs/presets/joining-blocks.md +++ /dev/null @@ -1,102 +0,0 @@ -# Presets >> Joining Blocks || 10 - -The template system allows for a very granular control of how individual parts will be merged, overwritten or reorderd. - -As a preset you may want to add this to your layout. - -{% raw %} - -```jinja2 -
- {% for blockName, blockPath in _joiningBlocks.footer %} - {% include blockPath %} - {% endfor %} -
-``` - -{% endraw %} - -This will now render all templates within `_includes/_joiningBlocks/footer/*`. - -## Adding content without overriding - -Let's assume we have a preset with the following files - -👉 `_includes/_joiningBlocks/footer/10-first.njk` - -```html -

first

-``` - -👉 `_includes/_joiningBlocks/footer/20-second.njk` - -```html -

second

-``` - -And it produces this in your website - -```html -
-

first

-

second

-
-``` - -Now we can add a file which will insert content without needing to overwrite any of the preset file. - -👉 `docs/_includes/_joiningBlocks/footer/15-in-between.njk` - -```html -

in-between

-``` - -the final output will be - -```html -
-

first

-

in-between

-

second

-
-``` - -## Overriding Content - -Now if you want to overwrite you can use the same filename. - -👉 `docs/_includes/_joiningBlocks/footer/10-first.njk` - -```html -

updated first

-``` - -the final output will be - -```html -
-

updated first

-

second

-
-``` - -## Reordering and Overriding - -Sometimes you wanna reorder when you overwrite as well - -👉 `docs/_includes/_joiningBlocks/footer/30-first.njk` - -```html -

first

-``` - -the final output will be - -```html -
-

second

-

first

-
-``` - -Note: Reordering always requires you to overwrite as well. diff --git a/docs/docs/presets/launch/custom-elements.txt b/docs/docs/presets/launch/custom-elements.txt deleted file mode 100644 index fdc8d38..0000000 --- a/docs/docs/presets/launch/custom-elements.txt +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: layout-api -package: '@rocket/launch' -module: inline-notification/index.js ---- - -# Presets >> Launch >> Custom Elements || 20 diff --git a/docs/docs/presets/launch/index.md b/docs/docs/presets/launch/index.md deleted file mode 100644 index d0a482e..0000000 --- a/docs/docs/presets/launch/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Presets >> Launch || 20 - -- [Preset](./preset/) diff --git a/docs/docs/presets/search/custom-elements.txt b/docs/docs/presets/search/custom-elements.txt deleted file mode 100644 index 19b1a62..0000000 --- a/docs/docs/presets/search/custom-elements.txt +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: layout-api -package: '@rocket/search' -modules: - - src/RocketSearch.js - - src/RocketSearchCombobox.js ---- - -# Presets >> Search >> Custom Elements || 20 diff --git a/docs/docs/presets/search/index.md b/docs/docs/presets/search/index.md deleted file mode 100644 index 2bb162f..0000000 --- a/docs/docs/presets/search/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Presets >> Search || 10 - -- [Preset](./preset/) diff --git a/docs/docs/presets/search/preset.md b/docs/docs/presets/search/preset.md deleted file mode 100644 index 68b8842..0000000 --- a/docs/docs/presets/search/preset.md +++ /dev/null @@ -1,36 +0,0 @@ -# Presets >> Search >> Preset || 10 - -Add a search for all your static content. - -## Installation - - - -```bash tab npm -npm i @rocket/search -``` - -```bash tab yarn -yarn add @rocket/search -``` - -```bash tab pnpm -pnpm add @rocket/search -``` - - - -## Usage - -👉 `rocket.config.js` - - -```js -import { rocketSearch } from '@rocket/search'; - -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - presets: [rocketSearch()], -}); -``` - diff --git a/docs/docs/tools/index.md b/docs/docs/tools/index.md deleted file mode 100644 index e219725..0000000 --- a/docs/docs/tools/index.md +++ /dev/null @@ -1 +0,0 @@ -# Tools ||50 diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index 6fae6a618ddbe0d030064622da1548e2e4e4ac77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 XGX_t|TuNNGkMulw;p`ygqx}B>17|b@ diff --git a/docs/guides/configuration/getting-started.md b/docs/guides/configuration/getting-started.md deleted file mode 100644 index 63eba84..0000000 --- a/docs/guides/configuration/getting-started.md +++ /dev/null @@ -1,38 +0,0 @@ -# Configuration >> Getting Started ||10 - -The main config file is `rocket.config.js` or `rocket.config.mjs`. - -It typically looks something like this - -```js -import { rocketLaunch } from '@rocket/launch'; -import { rocketBlog } from '@rocket/blog'; -import { rocketSearch } from '@rocket/search'; -import { absoluteBaseUrlNetlify } from '@rocket/core/helpers'; - -export default /** @type {Partial} */ ({ - presets: [rocketLaunch(), rocketBlog(), rocketSearch()], - absoluteBaseUrl: absoluteBaseUrlNetlify('http://localhost:8080'), -}); -``` - -The Plugins Manager helps you register and execute your plugins across the various Rocket components - Rollup, Web Dev Server, Eleventy, and Markdown. It replaces the specific registration/execution call in a given plugin system by an intent to use that plugin. - -## Adding Remark/Unified Plugins - -If you want to add a plugin to the Markdown processing you can use `setupUnifiedPlugins`. - - -```js -import emoji from 'remark-emoji'; -import { addPlugin } from 'plugins-manager'; - -/** @type {Partial} */ -export default ({ - setupUnifiedPlugins: [addPlugin({ location: 'markdown', name: 'emoji', plugin: emoji })], -}); -``` - - -For plugins that should handle the Markdown AST you should use `addPlugin({ location: 'markdown', name: 'my-plugin', plugin: MyPlugin})`.
-While for the rehype AST you should use `addPlugin({ location: 'remark2rehype', name: 'my-plugin', plugin: MyPlugin})`. diff --git a/docs/guides/configuration/index.md b/docs/guides/configuration/index.md deleted file mode 100644 index e615c69..0000000 --- a/docs/guides/configuration/index.md +++ /dev/null @@ -1 +0,0 @@ -# Configuration ||30 diff --git a/docs/guides/first-pages/adding-pages.md b/docs/guides/first-pages/adding-pages.md deleted file mode 100644 index b14a954..0000000 --- a/docs/guides/first-pages/adding-pages.md +++ /dev/null @@ -1,85 +0,0 @@ -# First Pages >> Adding Pages ||12 - - - -You can do this whole part of the tutorial in a couple minutes. It's almost _**too**_ fast. - -It can help to examine each new page and menu carefully, to come to terms with the implicit navigation created by your addition of new content, at least the first couple of times. - - - -## Add a Section - -In most cases you will have multiple sections in your website and each of those sections will come with its own sidebar navigation. - -To create a section you need to create a folder with an `index.md`. - -```bash -mkdir docs/guides -``` - -👉 `docs/guides/index.md` - -```md -# Guides - -You can read all about... -``` - -Observe that this creates a section named "Guides" at the top menu bar, and a page with the same title. - - - -Don't worry if this isn't how you would have styled or placed your menu bar or sidebar navigation, we'll get to customization of the default preset later in the tutorials. - - - -> How many sections should I add? - -It might be more practical to stay below 5 sections. - -## Adding a Category - -Often each section will have multiple categories. - -To create a category you need to create a folder with an `index.md`. - -```bash -mkdir docs/guides/first-pages/ -``` - -👉 `docs/guides/first-pages/index.md` - -```md -# First Pages -``` - -## Adding a Page to a Category - -👉 `docs/guides/first-pages/getting-started.md` - -```md -# First Pages >> Getting Started - -This is how you get started. -``` - -## Headings as Anchor and Menu Items - -_**Within**_ any page, you can still add links to your navigation! - -Note that Markdown text prefixed with one or two # signs also becomes an anchor in the page and a link in the sidebar navigation when the page is open. - -```md -## Headings as Anchor and Menu Items - -_**Within**_ any page, you can still add links to your navigation! -``` - -```js script -import '@rocket/launch/inline-notification/inline-notification.js'; -``` - -## Example as a Reference - -If implicit navigation, derived from content, is a bit too much to grasp in one sitting, feel free to examine the **docs** folder in [the rocket codebase behind the pages you are reading](https://github.com/modernweb-dev/rocket) for more examples. diff --git a/docs/guides/first-pages/getting-started.md b/docs/guides/first-pages/getting-started.md deleted file mode 100644 index 1793325..0000000 --- a/docs/guides/first-pages/getting-started.md +++ /dev/null @@ -1,188 +0,0 @@ -# First Pages >> Getting Started ||10 - -Rocket has the following prerequisites: - -- [Node 14+](https://nodejs.org/en/) - -Make sure they are installed before proceeding. - -## Setup - -The fastest way to get started is by using an existing preset like the launch preset. - -### Step 1. Initialize the Project Package - -Start by creating an empty folder for your project - -```bash copy -mkdir my-project -cd my-project -``` - -Then initialize a package.json file - - - -```bash tab npm -npm init -y -``` - -```bash tab yarn -yarn init -y -``` - -```bash tab pnpm -pnpm init -y -``` - - - -### Step 2. Install dependencies - - - -```bash tab npm -npm install --save-dev @rocket/cli @rocket/launch -``` - -```bash tab yarn -yarn add -D @rocket/cli @rocket/launch -``` - -```bash tab pnpm -pnpm add -D @rocket/cli @rocket/launch -``` - - - -### Step 3. Bootstrap the project - - - -```bash tab npm -npx rocket bootstrap -``` - -```bash tab yarn -yarn rocket bootstrap -``` - -```bash tab pnpm -pnpx rocket bootstrap -``` - - - -The `bootstrap` command creates four files in your repo: - -- `.gitignore` containing rocket's build artifacts -- `rocket.config.js` containing a minimal rocket config -- `docs/.eleventyignore` required to allow you to [override templates](/guides/presets/overriding/) -- `docs/index.md` your first page - -It also set the package `type` to `"module"` and adds a `start` and `docs` package scripts. - - - -If you don't want to use the `module` package type, make sure to rename the generated config file to `rocket.config.mjs`. - - - -
Default Files Contents - - - - -```js tab rocket.config.js -import { rocketLaunch } from '@rocket/launch'; - -/** @type {import('rocket/cli').RocketCliConfig} */ -export default ({ - presets: [rocketLaunch()], -}); -``` - - -```md tab docs/index.md -# Welcome to Your Rocket Site - -Add your markdown content here. -``` - - - -```html tab docs/.eleventyignore -_assets -_includes -_data -``` - -```html tab .gitignore -## Rocket ignore files (need to be the full relative path to the folders) -docs/_merged_data/ -docs/_merged_assets/ -docs/_merged_includes/ -``` - - - - - -
- -## Add your First Page - -Bootstrap created the file `docs/index.md`. Open it in your editor and change it to suit your needs. - -NOTE: This tutorial assumes you are familiar with Markdown, for page authoring. - -```md -# Welcome to Your Rocket Site - -Add your markdown content here. -``` - -Please note that the heading - text prefixed with `#` or `##` - is not optional for each page in this tutorial. Everything below that first line is optional Markdown text. - -## Startup - -Now you can launch your site locally with - - - -```bash tab npm -npm start -``` - -```bash tab yarn -yarn start -``` - -```bash tab pnpm -pnpx start -``` - - - -## Taking Inventory Before Adding Pages: - -We're about to add both content and navigation at the same time. - -It can be helpful to take an inventory, before we start, to separate basic setup from the creation of content and navigation. - -- We built the project with basic npm commands -- Added a couple required files manually -- Adjusted package.json -- **docs/index.md** to seed the content -- Launches with `npm start` - -That's all it takes to get a new super-fast and powerful site, complete with a service worker, default styling, navigation, and ready to deploy as a plain old static files. - -## Next Steps - -- [Adding Pages](../adding-pages/) -- [Using Presets](../../presets/getting-started/) - -```js script -import '@rocket/launch/inline-notification/inline-notification.js'; -``` diff --git a/docs/guides/first-pages/index.md b/docs/guides/first-pages/index.md deleted file mode 100644 index dcb86a8..0000000 --- a/docs/guides/first-pages/index.md +++ /dev/null @@ -1 +0,0 @@ -# First Pages ||10 diff --git a/docs/guides/first-pages/layouts.md b/docs/guides/first-pages/layouts.md deleted file mode 100644 index 508d1b5..0000000 --- a/docs/guides/first-pages/layouts.md +++ /dev/null @@ -1,29 +0,0 @@ -# First Pages >> Layouts ||60 - -The following templates are always available: - -- `layout-raw` No html or any wrapping (use it for xml, json, ... outputs) -- `layout-default` For content -- `layout-index` Extends content and adds an "Open Navigation" button for mobile - -Layout Default has the following Joining Blocks: - -- `head` For the html `` -- `header` Within the top `
` -- `content` Html within the main content section -- `footer` Within to bottom `