From 0027f57385007bc7de9b92e73b752762e74d124e Mon Sep 17 00:00:00 2001 From: Davie Date: Fri, 29 Sep 2023 17:06:09 +0100 Subject: [PATCH] chore: update docs snapshot --- .../latest/mosaic/configure/admin/index.mdx | 44 +- .../latest/mosaic/configure/index.mdx | 44 +- .../mosaic/configure/layouts/detail-highlight | 1 + .../configure/layouts/detail-highlight.mdx | 385 ++++++++++++++ .../mosaic/configure/layouts/detail-overview | 1 + .../configure/layouts/detail-overview.mdx | 470 +++++++++++++++++ .../mosaic/configure/layouts/detail-technical | 1 + .../configure/layouts/detail-technical.mdx | 474 ++++++++++++++++++ .../latest/mosaic/configure/layouts/index.mdx | 50 +- .../latest/mosaic/configure/layouts/landing | 1 + .../mosaic/configure/layouts/landing.mdx | 388 ++++++++++++++ .../mosaic/configure/layouts/product-discover | 1 + .../configure/layouts/product-discover.mdx | 384 ++++++++++++++ .../mosaic/configure/layouts/product-preview | 1 + .../configure/layouts/product-preview.mdx | 382 ++++++++++++++ .../latest/mosaic/configure/modes/active.mdx | 44 +- .../latest/mosaic/configure/modes/index.mdx | 44 +- .../mosaic/configure/modes/snapshot-file.mdx | 44 +- .../mosaic/configure/modes/snapshot-s3.mdx | 44 +- .../mosaic/configure/plugins/alias-plugin.mdx | 46 +- .../configure/plugins/breadcrumbs-plugin.mdx | 46 +- .../configure/plugins/broken-links-plugin.mdx | 46 +- .../configure/plugins/codemod-plugin.mdx | 46 +- .../latest/mosaic/configure/plugins/index.mdx | 50 +- .../configure/plugins/lazy-page-plugin.mdx | 46 +- .../plugins/lifecycle/after-source.mdx | 46 +- .../plugins/lifecycle/after-update.mdx | 46 +- .../plugins/lifecycle/before-send.mdx | 46 +- .../configure/plugins/lifecycle/index.mdx | 46 +- .../plugins/lifecycle/should-clear-cache.mdx | 46 +- .../should-update-namespace-sources.mdx | 46 +- .../pages-wthout-extensions-plugin.mdx | 46 +- .../plugins/public-assets-plugin.mdx | 46 +- .../configure/plugins/reading-time-plugin.mdx | 46 +- .../mosaic/configure/plugins/ref-plugin.mdx | 46 +- .../configure/plugins/search-index-plugin.mdx | 46 +- .../plugins/shared-config-plugin.mdx | 46 +- .../configure/plugins/sidebar-plugin.mdx | 46 +- .../configure/plugins/site-map-plugin.mdx | 46 +- .../mosaic/configure/plugins/tag-plugin.mdx | 46 +- .../mosaic/configure/plugins/toc-plugin.mdx | 46 +- .../latest/mosaic/configure/sidebar.json | 2 +- .../configure/sources/git-repo-source.mdx | 44 +- .../mosaic/configure/sources/http-source.mdx | 44 +- .../latest/mosaic/configure/sources/index.mdx | 44 +- .../configure/sources/local-folder-source.mdx | 44 +- .../mosaic/configure/sources/schedules.mdx | 48 +- .../configure/theme/custom-components.mdx | 44 +- .../mosaic/configure/theme/custom-css.mdx | 44 +- .../latest/mosaic/configure/theme/index.mdx | 44 +- .../latest/search-data-condensed.json | 2 +- .../site/snapshots/latest/search-data.json | 2 +- packages/site/snapshots/latest/sitemap.xml | 30 ++ 53 files changed, 4142 insertions(+), 69 deletions(-) create mode 120000 packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight create mode 100644 packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight.mdx create mode 120000 packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview create mode 100644 packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview.mdx create mode 120000 packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical create mode 100644 packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical.mdx create mode 120000 packages/site/snapshots/latest/mosaic/configure/layouts/landing create mode 100644 packages/site/snapshots/latest/mosaic/configure/layouts/landing.mdx create mode 120000 packages/site/snapshots/latest/mosaic/configure/layouts/product-discover create mode 100644 packages/site/snapshots/latest/mosaic/configure/layouts/product-discover.mdx create mode 120000 packages/site/snapshots/latest/mosaic/configure/layouts/product-preview create mode 100644 packages/site/snapshots/latest/mosaic/configure/layouts/product-preview.mdx diff --git a/packages/site/snapshots/latest/mosaic/configure/admin/index.mdx b/packages/site/snapshots/latest/mosaic/configure/admin/index.mdx index 07117131..b83ade70 100644 --- a/packages/site/snapshots/latest/mosaic/configure/admin/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/admin/index.mdx @@ -149,7 +149,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/index.mdx b/packages/site/snapshots/latest/mosaic/configure/index.mdx index a38a4854..9373e9db 100644 --- a/packages/site/snapshots/latest/mosaic/configure/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/index.mdx @@ -140,7 +140,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight new file mode 120000 index 00000000..cd722d86 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight @@ -0,0 +1 @@ +detail-highlight.mdx \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight.mdx new file mode 100644 index 00000000..bb71dc5e --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-highlight.mdx @@ -0,0 +1,385 @@ +--- +title: Detail Highlight +layout: DetailTechnical +description: Detail Highlight layout example +lastModified: 1696003065642 +fullPath: /mosaic/configure/layouts/detail-highlight.mdx +route: /mosaic/configure/layouts/detail-highlight +breadcrumbs: + - label: Mosaic + path: /mosaic/index + id: /mosaic/index.mdx + - label: Configure + path: /mosaic/configure/index + id: /mosaic/configure/index.mdx + - label: Layouts + path: /mosaic/configure/layouts/index + id: /mosaic/configure/layouts/index.mdx + - label: Detail Highlight + path: /mosaic/configure/layouts/detail-highlight + id: /mosaic/configure/layouts/detail-highlight.mdx +readingTime: + text: 1 min read + minutes: 0.215 + time: 12900 + words: 43 +tableOfContents: + - level: 2 + id: page-geometry + text: Page geometry +navigation: + prev: + title: Layouts + route: /mosaic/configure/layouts/index + next: + title: Detail Overview + route: /mosaic/configure/layouts/detail-overview +sidebarData: + - id: /mosaic/configure/index + fullPath: /mosaic/configure/index.mdx + name: Configure + priority: 4 + data: + level: 2 + link: /mosaic/configure/index + childNodes: [] + - id: /mosaic/configure/modes/index + fullPath: /mosaic/configure/modes/index.mdx + name: Modes of operation + priority: 4 + data: + level: 3 + link: /mosaic/configure/modes/index + childNodes: + - id: /mosaic/configure/modes/active + fullPath: /mosaic/configure/modes/active.mdx + name: Active mode + data: + level: 3 + link: /mosaic/configure/modes/active + childNodes: [] + - id: /mosaic/configure/modes/snapshot-file + fullPath: /mosaic/configure/modes/snapshot-file.mdx + name: Snapshot file mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-file + childNodes: [] + - id: /mosaic/configure/modes/snapshot-s3 + fullPath: /mosaic/configure/modes/snapshot-s3.mdx + name: Snapshot AWS/S3 mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-s3 + childNodes: [] + - id: /mosaic/configure/theme/index + fullPath: /mosaic/configure/theme/index.mdx + name: Theming Your Site + priority: 4 + data: + level: 3 + link: /mosaic/configure/theme/index + childNodes: + - id: /mosaic/configure/theme/custom-css + fullPath: /mosaic/configure/theme/custom-css.mdx + name: Custom CSS + priority: 3 + data: + level: 3 + link: /mosaic/configure/theme/custom-css + childNodes: [] + - id: /mosaic/configure/theme/custom-components + fullPath: /mosaic/configure/theme/custom-components.mdx + name: Custom Components + priority: 2 + data: + level: 3 + link: /mosaic/configure/theme/custom-components + childNodes: [] + - id: /mosaic/configure/admin/index + fullPath: /mosaic/configure/admin/index.mdx + name: Admin + priority: 3 + data: + level: 3 + link: /mosaic/configure/admin/index + childNodes: [] + - id: /mosaic/configure/sources/index + fullPath: /mosaic/configure/sources/index.mdx + name: Sources + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/index + childNodes: + - id: /mosaic/configure/sources/schedules + fullPath: /mosaic/configure/sources/schedules.mdx + name: Schedules + priority: 4 + data: + level: 3 + link: /mosaic/configure/sources/schedules + childNodes: [] + - id: /mosaic/configure/sources/local-folder-source + fullPath: /mosaic/configure/sources/local-folder-source.mdx + name: Local Folder Source + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/local-folder-source + childNodes: [] + - id: /mosaic/configure/sources/git-repo-source + fullPath: /mosaic/configure/sources/git-repo-source.mdx + name: Git Repo Source + priority: 2 + data: + level: 3 + link: /mosaic/configure/sources/git-repo-source + childNodes: [] + - id: /mosaic/configure/sources/http-source + fullPath: /mosaic/configure/sources/http-source.mdx + name: HTTP Source + priority: 1 + data: + level: 3 + link: /mosaic/configure/sources/http-source + childNodes: [] + - id: /mosaic/configure/layouts/index + fullPath: /mosaic/configure/layouts/index.mdx + name: Layouts + priority: 2 + data: + level: 3 + link: /mosaic/configure/layouts/index + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] + - id: /mosaic/configure/plugins/index + fullPath: /mosaic/configure/plugins/index.mdx + name: Plugins + priority: 1 + data: + level: 3 + link: /mosaic/configure/plugins/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/index + fullPath: /mosaic/configure/plugins/lifecycle/index.mdx + name: Lifecycle Events + priority: 1 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/after-source + fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx + name: $afterSource + priority: 5 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-source + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/before-send + fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx + name: $beforeSend + priority: 4 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/before-send + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/after-update + fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx + name: afterUpdate + priority: 3 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-update + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/should-clear-cache + fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx + name: shouldClearCache + priority: 2 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/should-clear-cache + childNodes: [] + - id: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + fullPath: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx + name: shouldUpdateNamespaceSources + priority: 1 + data: + level: 4 + link: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + childNodes: [] + - id: /mosaic/configure/plugins/alias-plugin + fullPath: /mosaic/configure/plugins/alias-plugin.mdx + name: $AliasPlugin + data: + level: 3 + link: /mosaic/configure/plugins/alias-plugin + childNodes: [] + - id: /mosaic/configure/plugins/breadcrumbs-plugin + fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx + name: BreadcrumbsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/breadcrumbs-plugin + childNodes: [] + - id: /mosaic/configure/plugins/broken-links-plugin + fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx + name: BrokenLinksPlugin + data: + level: 3 + link: /mosaic/configure/plugins/broken-links-plugin + childNodes: [] + - id: /mosaic/configure/plugins/codemod-plugin + fullPath: /mosaic/configure/plugins/codemod-plugin.mdx + name: $CodeModPlugin + data: + level: 3 + link: /mosaic/configure/plugins/codemod-plugin + childNodes: [] + - id: /mosaic/configure/plugins/lazy-page-plugin + fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx + name: LazyPagePlugin + data: + level: 3 + link: /mosaic/configure/plugins/lazy-page-plugin + childNodes: [] + - id: /mosaic/configure/plugins/pages-wthout-extensions-plugin + fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx + name: PagesWithoutFileExtPlugin + data: + level: 3 + link: /mosaic/configure/plugins/pages-wthout-extensions-plugin + childNodes: [] + - id: /mosaic/configure/plugins/public-assets-plugin + fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx + name: PublicAssetsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/public-assets-plugin + childNodes: [] + - id: /mosaic/configure/plugins/reading-time-plugin + fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx + name: ReadingTimePlugin + data: + level: 3 + link: /mosaic/configure/plugins/reading-time-plugin + childNodes: [] + - id: /mosaic/configure/plugins/ref-plugin + fullPath: /mosaic/configure/plugins/ref-plugin.mdx + name: $RefPlugin + data: + level: 3 + link: /mosaic/configure/plugins/ref-plugin + childNodes: [] + - id: /mosaic/configure/plugins/search-index-plugin + fullPath: /mosaic/configure/plugins/search-index-plugin.mdx + name: SearchIndexPlugin + data: + level: 3 + link: /mosaic/configure/plugins/search-index-plugin + childNodes: [] + - id: /mosaic/configure/plugins/shared-config-plugin + fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx + name: SharedConfigPlugin + data: + level: 3 + link: /mosaic/configure/plugins/shared-config-plugin + childNodes: [] + - id: /mosaic/configure/plugins/sidebar-plugin + fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx + name: SidebarPlugin + data: + level: 3 + link: /mosaic/configure/plugins/sidebar-plugin + childNodes: [] + - id: /mosaic/configure/plugins/site-map-plugin + fullPath: /mosaic/configure/plugins/site-map-plugin.mdx + name: SiteMapPlugin + data: + level: 3 + link: /mosaic/configure/plugins/site-map-plugin + childNodes: [] + - id: /mosaic/configure/plugins/tag-plugin + fullPath: /mosaic/configure/plugins/tag-plugin.mdx + name: $TagPlugin + data: + level: 3 + link: /mosaic/configure/plugins/tag-plugin + childNodes: [] + - id: /mosaic/configure/plugins/toc-plugin + fullPath: /mosaic/configure/plugins/toc-plugin.mdx + name: TableOfContentsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/toc-plugin + childNodes: [] +--- +# Layout: Detail Highlight + +Initialize with `layout: DetailHighlight` in your page's frontmatter. + +This layout is used to promote, share insights, and statistics for a line of business. + +This layout should be used for pages with only one level of nesting, therefore, pagination is not eligible for this +layout. + +## Page geometry + +

+ + + + + + + + + + + +

diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview new file mode 120000 index 00000000..62bd5bc1 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview @@ -0,0 +1 @@ +detail-overview.mdx \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview.mdx new file mode 100644 index 00000000..d6cb718d --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-overview.mdx @@ -0,0 +1,470 @@ +--- +title: Detail Overview +layout: DetailTechnical +description: Detail Overview layout example +lastModified: 1696003065642 +fullPath: /mosaic/configure/layouts/detail-overview.mdx +route: /mosaic/configure/layouts/detail-overview +breadcrumbs: + - label: Mosaic + path: /mosaic/index + id: /mosaic/index.mdx + - label: Configure + path: /mosaic/configure/index + id: /mosaic/configure/index.mdx + - label: Layouts + path: /mosaic/configure/layouts/index + id: /mosaic/configure/layouts/index.mdx + - label: Detail Overview + path: /mosaic/configure/layouts/detail-overview + id: /mosaic/configure/layouts/detail-overview.mdx +readingTime: + text: 3 min read + minutes: 2.865 + time: 171900 + words: 573 +tableOfContents: + - level: 2 + id: page-geometry + text: Page geometry + - level: 2 + id: other-layouts + text: Other Layouts + - level: 2 + id: filler-content + text: Filler content + - level: 2 + id: a-sub-heading + text: A sub heading + - level: 3 + id: third-level-heading + text: Third-level heading + - level: 2 + id: id-sint-deserunt-laborum-mollit-id-excepteur + text: Id sint deserunt laborum mollit id excepteur + - level: 2 + id: cillum-amet-irure-ut-tempor-tempor-culpa-dolore-sint + text: Cillum amet irure ut tempor tempor culpa dolore sint. +navigation: + prev: + title: Detail Highlight + route: /mosaic/configure/layouts/detail-highlight + next: + title: Detail Technical + route: /mosaic/configure/layouts/detail-technical +sidebarData: + - id: /mosaic/configure/index + fullPath: /mosaic/configure/index.mdx + name: Configure + priority: 4 + data: + level: 2 + link: /mosaic/configure/index + childNodes: [] + - id: /mosaic/configure/modes/index + fullPath: /mosaic/configure/modes/index.mdx + name: Modes of operation + priority: 4 + data: + level: 3 + link: /mosaic/configure/modes/index + childNodes: + - id: /mosaic/configure/modes/active + fullPath: /mosaic/configure/modes/active.mdx + name: Active mode + data: + level: 3 + link: /mosaic/configure/modes/active + childNodes: [] + - id: /mosaic/configure/modes/snapshot-file + fullPath: /mosaic/configure/modes/snapshot-file.mdx + name: Snapshot file mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-file + childNodes: [] + - id: /mosaic/configure/modes/snapshot-s3 + fullPath: /mosaic/configure/modes/snapshot-s3.mdx + name: Snapshot AWS/S3 mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-s3 + childNodes: [] + - id: /mosaic/configure/theme/index + fullPath: /mosaic/configure/theme/index.mdx + name: Theming Your Site + priority: 4 + data: + level: 3 + link: /mosaic/configure/theme/index + childNodes: + - id: /mosaic/configure/theme/custom-css + fullPath: /mosaic/configure/theme/custom-css.mdx + name: Custom CSS + priority: 3 + data: + level: 3 + link: /mosaic/configure/theme/custom-css + childNodes: [] + - id: /mosaic/configure/theme/custom-components + fullPath: /mosaic/configure/theme/custom-components.mdx + name: Custom Components + priority: 2 + data: + level: 3 + link: /mosaic/configure/theme/custom-components + childNodes: [] + - id: /mosaic/configure/admin/index + fullPath: /mosaic/configure/admin/index.mdx + name: Admin + priority: 3 + data: + level: 3 + link: /mosaic/configure/admin/index + childNodes: [] + - id: /mosaic/configure/sources/index + fullPath: /mosaic/configure/sources/index.mdx + name: Sources + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/index + childNodes: + - id: /mosaic/configure/sources/schedules + fullPath: /mosaic/configure/sources/schedules.mdx + name: Schedules + priority: 4 + data: + level: 3 + link: /mosaic/configure/sources/schedules + childNodes: [] + - id: /mosaic/configure/sources/local-folder-source + fullPath: /mosaic/configure/sources/local-folder-source.mdx + name: Local Folder Source + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/local-folder-source + childNodes: [] + - id: /mosaic/configure/sources/git-repo-source + fullPath: /mosaic/configure/sources/git-repo-source.mdx + name: Git Repo Source + priority: 2 + data: + level: 3 + link: /mosaic/configure/sources/git-repo-source + childNodes: [] + - id: /mosaic/configure/sources/http-source + fullPath: /mosaic/configure/sources/http-source.mdx + name: HTTP Source + priority: 1 + data: + level: 3 + link: /mosaic/configure/sources/http-source + childNodes: [] + - id: /mosaic/configure/layouts/index + fullPath: /mosaic/configure/layouts/index.mdx + name: Layouts + priority: 2 + data: + level: 3 + link: /mosaic/configure/layouts/index + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] + - id: /mosaic/configure/plugins/index + fullPath: /mosaic/configure/plugins/index.mdx + name: Plugins + priority: 1 + data: + level: 3 + link: /mosaic/configure/plugins/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/index + fullPath: /mosaic/configure/plugins/lifecycle/index.mdx + name: Lifecycle Events + priority: 1 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/after-source + fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx + name: $afterSource + priority: 5 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-source + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/before-send + fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx + name: $beforeSend + priority: 4 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/before-send + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/after-update + fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx + name: afterUpdate + priority: 3 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-update + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/should-clear-cache + fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx + name: shouldClearCache + priority: 2 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/should-clear-cache + childNodes: [] + - id: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + fullPath: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx + name: shouldUpdateNamespaceSources + priority: 1 + data: + level: 4 + link: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + childNodes: [] + - id: /mosaic/configure/plugins/alias-plugin + fullPath: /mosaic/configure/plugins/alias-plugin.mdx + name: $AliasPlugin + data: + level: 3 + link: /mosaic/configure/plugins/alias-plugin + childNodes: [] + - id: /mosaic/configure/plugins/breadcrumbs-plugin + fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx + name: BreadcrumbsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/breadcrumbs-plugin + childNodes: [] + - id: /mosaic/configure/plugins/broken-links-plugin + fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx + name: BrokenLinksPlugin + data: + level: 3 + link: /mosaic/configure/plugins/broken-links-plugin + childNodes: [] + - id: /mosaic/configure/plugins/codemod-plugin + fullPath: /mosaic/configure/plugins/codemod-plugin.mdx + name: $CodeModPlugin + data: + level: 3 + link: /mosaic/configure/plugins/codemod-plugin + childNodes: [] + - id: /mosaic/configure/plugins/lazy-page-plugin + fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx + name: LazyPagePlugin + data: + level: 3 + link: /mosaic/configure/plugins/lazy-page-plugin + childNodes: [] + - id: /mosaic/configure/plugins/pages-wthout-extensions-plugin + fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx + name: PagesWithoutFileExtPlugin + data: + level: 3 + link: /mosaic/configure/plugins/pages-wthout-extensions-plugin + childNodes: [] + - id: /mosaic/configure/plugins/public-assets-plugin + fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx + name: PublicAssetsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/public-assets-plugin + childNodes: [] + - id: /mosaic/configure/plugins/reading-time-plugin + fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx + name: ReadingTimePlugin + data: + level: 3 + link: /mosaic/configure/plugins/reading-time-plugin + childNodes: [] + - id: /mosaic/configure/plugins/ref-plugin + fullPath: /mosaic/configure/plugins/ref-plugin.mdx + name: $RefPlugin + data: + level: 3 + link: /mosaic/configure/plugins/ref-plugin + childNodes: [] + - id: /mosaic/configure/plugins/search-index-plugin + fullPath: /mosaic/configure/plugins/search-index-plugin.mdx + name: SearchIndexPlugin + data: + level: 3 + link: /mosaic/configure/plugins/search-index-plugin + childNodes: [] + - id: /mosaic/configure/plugins/shared-config-plugin + fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx + name: SharedConfigPlugin + data: + level: 3 + link: /mosaic/configure/plugins/shared-config-plugin + childNodes: [] + - id: /mosaic/configure/plugins/sidebar-plugin + fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx + name: SidebarPlugin + data: + level: 3 + link: /mosaic/configure/plugins/sidebar-plugin + childNodes: [] + - id: /mosaic/configure/plugins/site-map-plugin + fullPath: /mosaic/configure/plugins/site-map-plugin.mdx + name: SiteMapPlugin + data: + level: 3 + link: /mosaic/configure/plugins/site-map-plugin + childNodes: [] + - id: /mosaic/configure/plugins/tag-plugin + fullPath: /mosaic/configure/plugins/tag-plugin.mdx + name: $TagPlugin + data: + level: 3 + link: /mosaic/configure/plugins/tag-plugin + childNodes: [] + - id: /mosaic/configure/plugins/toc-plugin + fullPath: /mosaic/configure/plugins/toc-plugin.mdx + name: TableOfContentsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/toc-plugin + childNodes: [] +--- +# Layout: Detail Overview + +Initialize with `layout: DetailOverview` in your page's frontmatter. + +This layout is used to present an overview of expected documentation, statisitics, and ability to +navigate to more documents. + +Avoid making this page too long. If it gets too long, we recommend the [Detail Technical](./detail-technical) template. + +## Page geometry + +

+ + + + + + + + + + + +

+ +## Other Layouts + +* [Detail Highlight](/developer/site/style-guide/layouts/detail-highlight) +* [Detail Technical](/developer/site/style-guide/layouts/detail-technical) +* [Landing](/developer/site/style-guide/layouts/landing) +* [Product Discover](/developer/site/style-guide/layouts/product-discover) +* [Product Preview](/developer/site/style-guide/layouts/product-preview) + +*** + +## Filler content + +Eiusmod veniam adipisicing est magna id sunt occaecat minim adipisicing ad do pariatur id aliqua. +Officia officia deserunt consequat ullamco irure. Excepteur deserunt esse occaecat ex aute. Duis do +do in incididunt cupidatat dolore veniam magna aliquip voluptate laborum. Non irure magna amet +ullamco culpa esse dolore nostrud. Id ea id ipsum incididunt do velit aliquip fugiat do non +consequat. + +## A sub heading + +Deserunt sunt pariatur mollit dolor eiusmod. Anim sunt officia cillum anim. Laborum ullamco +consectetur elit dolore quis laborum. Eiusmod cillum amet veniam sunt Lorem reprehenderit commodo. +Cupidatat cillum ea consequat anim. Duis voluptate nulla veniam labore quis tempor. + +Commodo reprehenderit excepteur amet aliquip cillum veniam ad. Ullamco proident deserunt laboris +duis laborum consequat laboris est eu enim nulla. Mollit velit consectetur ea aliqua consectetur +mollit eu ex deserunt. Aute excepteur exercitation esse proident excepteur Lorem. Quis cillum +occaecat sint voluptate incididunt ea ipsum incididunt duis sint magna magna fugiat. + +### Third-level heading + +Ea do magna aute proident nulla cupidatat esse consectetur anim eu esse. Consectetur est voluptate +excepteur non dolore consequat fugiat deserunt. Est nostrud est ea irure reprehenderit commodo +nostrud nulla tempor ipsum tempor sit id exercitation. Sunt reprehenderit officia anim id quis +pariatur velit cillum incididunt officia sunt. Ullamco ipsum cillum minim deserunt eiusmod nostrud +irure et nulla laborum ipsum ipsum incididunt. Voluptate reprehenderit in occaecat ipsum nulla +excepteur excepteur mollit laboris id ad laborum do. Qui in laborum nostrud quis occaecat proident +ipsum tempor laborum consequat id ut velit occaecat.Aliquip quis qui ullamco ipsum exercitation +exercitation excepteur ea ex. Proident elit incididunt incididunt ad adipisicing quis deserunt sint +laboris deserunt ipsum culpa est. Id do ex duis Lorem exercitation amet reprehenderit. Voluptate qui +tempor qui sit minim sit qui ea id dolor excepteur. Laborum elit excepteur enim sunt consequat +officia cillum. Do ea occaecat ut voluptate ea proident duis minim ad pariatur dolore magna enim +duis. Sit aliqua aliqua ea mollit enim cupidatat proident incididunt. Eu dolore sit non incididunt. +Mollit reprehenderit sunt sunt cillum labore velit exercitation officia aliqua ea adipisicing do ea. +Commodo et fugiat velit dolore consectetur. + +Amet dolore deserunt in ut amet officia exercitation sint excepteur voluptate proident tempor enim +est. Culpa proident tempor in voluptate laboris sunt consectetur sit cillum excepteur culpa enim +velit laboris. Pariatur elit amet nostrud tempor nostrud ea. Exercitation do aliquip nisi amet id. +Lorem labore incididunt sit sit veniam tempor do consectetur do culpa qui. + +## Id sint deserunt laborum mollit id excepteur + +mollit excepteur labore labore dolor. Sit cupidatat nostrud ad consequat amet excepteur id sunt +labore adipisicing non irure. Fugiat exercitation laborum officia minim duis dolor do officia Lorem +cillum excepteur. Sint elit mollit duis sit ad commodo. + +## Cillum amet irure ut tempor tempor culpa dolore sint. + +Lorem qui ipsum reprehenderit est incididunt duis exercitation ea duis fugiat. Consectetur enim id +sunt exercitation et dolore ea proident sunt excepteur fugiat dolor. Veniam proident dolore irure +incididunt deserunt pariatur quis. Incididunt ea elit deserunt occaecat eiusmod velit fugiat eiusmod +dolor eiusmod ullamco. Fugiat fugiat eiusmod occaecat nulla consequat pariatur. + +Aliquip non cupidatat irure magna et fugiat sunt amet ex est excepteur irure quis. Non culpa magna +nisi enim eu nulla esse laborum amet ipsum. Eu consectetur labore do id occaecat adipisicing. diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical new file mode 120000 index 00000000..8bfca112 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical @@ -0,0 +1 @@ +detail-technical.mdx \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical.mdx new file mode 100644 index 00000000..37f71aae --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/detail-technical.mdx @@ -0,0 +1,474 @@ +--- +title: Detail Technical +layout: DetailTechnical +description: Detail Technical layout example +lastModified: 1696003065642 +fullPath: /mosaic/configure/layouts/detail-technical.mdx +route: /mosaic/configure/layouts/detail-technical +breadcrumbs: + - label: Mosaic + path: /mosaic/index + id: /mosaic/index.mdx + - label: Configure + path: /mosaic/configure/index + id: /mosaic/configure/index.mdx + - label: Layouts + path: /mosaic/configure/layouts/index + id: /mosaic/configure/layouts/index.mdx + - label: Detail Technical + path: /mosaic/configure/layouts/detail-technical + id: /mosaic/configure/layouts/detail-technical.mdx +readingTime: + text: 3 min read + minutes: 2.855 + time: 171300 + words: 571 +tableOfContents: + - level: 2 + id: page-geometry + text: Page geometry + - level: 2 + id: other-layouts + text: Other Layouts + - level: 2 + id: filler-content + text: Filler content + - level: 2 + id: a-sub-heading + text: A sub heading + - level: 3 + id: third-level-heading + text: Third-level heading + - level: 2 + id: id-sint-deserunt-laborum-mollit-id-excepteur + text: Id sint deserunt laborum mollit id excepteur + - level: 2 + id: cillum-amet-irure-ut-tempor-tempor-culpa-dolore-sint + text: Cillum amet irure ut tempor tempor culpa dolore sint. +navigation: + prev: + title: Detail Overview + route: /mosaic/configure/layouts/detail-overview + next: + title: Landing Layout + route: /mosaic/configure/layouts/landing +sidebarData: + - id: /mosaic/configure/index + fullPath: /mosaic/configure/index.mdx + name: Configure + priority: 4 + data: + level: 2 + link: /mosaic/configure/index + childNodes: [] + - id: /mosaic/configure/modes/index + fullPath: /mosaic/configure/modes/index.mdx + name: Modes of operation + priority: 4 + data: + level: 3 + link: /mosaic/configure/modes/index + childNodes: + - id: /mosaic/configure/modes/active + fullPath: /mosaic/configure/modes/active.mdx + name: Active mode + data: + level: 3 + link: /mosaic/configure/modes/active + childNodes: [] + - id: /mosaic/configure/modes/snapshot-file + fullPath: /mosaic/configure/modes/snapshot-file.mdx + name: Snapshot file mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-file + childNodes: [] + - id: /mosaic/configure/modes/snapshot-s3 + fullPath: /mosaic/configure/modes/snapshot-s3.mdx + name: Snapshot AWS/S3 mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-s3 + childNodes: [] + - id: /mosaic/configure/theme/index + fullPath: /mosaic/configure/theme/index.mdx + name: Theming Your Site + priority: 4 + data: + level: 3 + link: /mosaic/configure/theme/index + childNodes: + - id: /mosaic/configure/theme/custom-css + fullPath: /mosaic/configure/theme/custom-css.mdx + name: Custom CSS + priority: 3 + data: + level: 3 + link: /mosaic/configure/theme/custom-css + childNodes: [] + - id: /mosaic/configure/theme/custom-components + fullPath: /mosaic/configure/theme/custom-components.mdx + name: Custom Components + priority: 2 + data: + level: 3 + link: /mosaic/configure/theme/custom-components + childNodes: [] + - id: /mosaic/configure/admin/index + fullPath: /mosaic/configure/admin/index.mdx + name: Admin + priority: 3 + data: + level: 3 + link: /mosaic/configure/admin/index + childNodes: [] + - id: /mosaic/configure/sources/index + fullPath: /mosaic/configure/sources/index.mdx + name: Sources + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/index + childNodes: + - id: /mosaic/configure/sources/schedules + fullPath: /mosaic/configure/sources/schedules.mdx + name: Schedules + priority: 4 + data: + level: 3 + link: /mosaic/configure/sources/schedules + childNodes: [] + - id: /mosaic/configure/sources/local-folder-source + fullPath: /mosaic/configure/sources/local-folder-source.mdx + name: Local Folder Source + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/local-folder-source + childNodes: [] + - id: /mosaic/configure/sources/git-repo-source + fullPath: /mosaic/configure/sources/git-repo-source.mdx + name: Git Repo Source + priority: 2 + data: + level: 3 + link: /mosaic/configure/sources/git-repo-source + childNodes: [] + - id: /mosaic/configure/sources/http-source + fullPath: /mosaic/configure/sources/http-source.mdx + name: HTTP Source + priority: 1 + data: + level: 3 + link: /mosaic/configure/sources/http-source + childNodes: [] + - id: /mosaic/configure/layouts/index + fullPath: /mosaic/configure/layouts/index.mdx + name: Layouts + priority: 2 + data: + level: 3 + link: /mosaic/configure/layouts/index + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] + - id: /mosaic/configure/plugins/index + fullPath: /mosaic/configure/plugins/index.mdx + name: Plugins + priority: 1 + data: + level: 3 + link: /mosaic/configure/plugins/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/index + fullPath: /mosaic/configure/plugins/lifecycle/index.mdx + name: Lifecycle Events + priority: 1 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/after-source + fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx + name: $afterSource + priority: 5 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-source + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/before-send + fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx + name: $beforeSend + priority: 4 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/before-send + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/after-update + fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx + name: afterUpdate + priority: 3 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-update + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/should-clear-cache + fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx + name: shouldClearCache + priority: 2 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/should-clear-cache + childNodes: [] + - id: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + fullPath: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx + name: shouldUpdateNamespaceSources + priority: 1 + data: + level: 4 + link: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + childNodes: [] + - id: /mosaic/configure/plugins/alias-plugin + fullPath: /mosaic/configure/plugins/alias-plugin.mdx + name: $AliasPlugin + data: + level: 3 + link: /mosaic/configure/plugins/alias-plugin + childNodes: [] + - id: /mosaic/configure/plugins/breadcrumbs-plugin + fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx + name: BreadcrumbsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/breadcrumbs-plugin + childNodes: [] + - id: /mosaic/configure/plugins/broken-links-plugin + fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx + name: BrokenLinksPlugin + data: + level: 3 + link: /mosaic/configure/plugins/broken-links-plugin + childNodes: [] + - id: /mosaic/configure/plugins/codemod-plugin + fullPath: /mosaic/configure/plugins/codemod-plugin.mdx + name: $CodeModPlugin + data: + level: 3 + link: /mosaic/configure/plugins/codemod-plugin + childNodes: [] + - id: /mosaic/configure/plugins/lazy-page-plugin + fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx + name: LazyPagePlugin + data: + level: 3 + link: /mosaic/configure/plugins/lazy-page-plugin + childNodes: [] + - id: /mosaic/configure/plugins/pages-wthout-extensions-plugin + fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx + name: PagesWithoutFileExtPlugin + data: + level: 3 + link: /mosaic/configure/plugins/pages-wthout-extensions-plugin + childNodes: [] + - id: /mosaic/configure/plugins/public-assets-plugin + fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx + name: PublicAssetsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/public-assets-plugin + childNodes: [] + - id: /mosaic/configure/plugins/reading-time-plugin + fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx + name: ReadingTimePlugin + data: + level: 3 + link: /mosaic/configure/plugins/reading-time-plugin + childNodes: [] + - id: /mosaic/configure/plugins/ref-plugin + fullPath: /mosaic/configure/plugins/ref-plugin.mdx + name: $RefPlugin + data: + level: 3 + link: /mosaic/configure/plugins/ref-plugin + childNodes: [] + - id: /mosaic/configure/plugins/search-index-plugin + fullPath: /mosaic/configure/plugins/search-index-plugin.mdx + name: SearchIndexPlugin + data: + level: 3 + link: /mosaic/configure/plugins/search-index-plugin + childNodes: [] + - id: /mosaic/configure/plugins/shared-config-plugin + fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx + name: SharedConfigPlugin + data: + level: 3 + link: /mosaic/configure/plugins/shared-config-plugin + childNodes: [] + - id: /mosaic/configure/plugins/sidebar-plugin + fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx + name: SidebarPlugin + data: + level: 3 + link: /mosaic/configure/plugins/sidebar-plugin + childNodes: [] + - id: /mosaic/configure/plugins/site-map-plugin + fullPath: /mosaic/configure/plugins/site-map-plugin.mdx + name: SiteMapPlugin + data: + level: 3 + link: /mosaic/configure/plugins/site-map-plugin + childNodes: [] + - id: /mosaic/configure/plugins/tag-plugin + fullPath: /mosaic/configure/plugins/tag-plugin.mdx + name: $TagPlugin + data: + level: 3 + link: /mosaic/configure/plugins/tag-plugin + childNodes: [] + - id: /mosaic/configure/plugins/toc-plugin + fullPath: /mosaic/configure/plugins/toc-plugin.mdx + name: TableOfContentsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/toc-plugin + childNodes: [] +--- +# Layout: Detail Technical + +Initialize with `layout: DetailTechnical` in your page's frontmatter. + +This layout is used for longer, technical, detailed content about the product. + +This layout shows less marketing-type visuals and more visual of diagrams, screenshots, and code +snippets. + +This page can be short or very lengthy. + +## Page geometry + +

+ + + + + + + + + + + + + +

+ +## Other Layouts + +* [Detail Highlight](/developer/site/style-guide/layouts/detail-highlight) +* [Detail Overview](/developer/site/style-guide/layouts/detail-overview) +* [Landing](/developer/site/style-guide/layouts/landing) +* [Product Discover](/developer/site/style-guide/layouts/product-discover) +* [Product Preview](/developer/site/style-guide/layouts/product-preview) + +*** + +## Filler content + +Eiusmod veniam adipisicing est magna id sunt occaecat minim adipisicing ad do pariatur id aliqua. +Officia officia deserunt consequat ullamco irure. Excepteur deserunt esse occaecat ex aute. Duis do +do in incididunt cupidatat dolore veniam magna aliquip voluptate laborum. Non irure magna amet +ullamco culpa esse dolore nostrud. Id ea id ipsum incididunt do velit aliquip fugiat do non +consequat. + +## A sub heading + +Deserunt sunt pariatur mollit dolor eiusmod. Anim sunt officia cillum anim. Laborum ullamco +consectetur elit dolore quis laborum. Eiusmod cillum amet veniam sunt Lorem reprehenderit commodo. +Cupidatat cillum ea consequat anim. Duis voluptate nulla veniam labore quis tempor. + +Commodo reprehenderit excepteur amet aliquip cillum veniam ad. Ullamco proident deserunt laboris +duis laborum consequat laboris est eu enim nulla. Mollit velit consectetur ea aliqua consectetur +mollit eu ex deserunt. Aute excepteur exercitation esse proident excepteur Lorem. Quis cillum +occaecat sint voluptate incididunt ea ipsum incididunt duis sint magna magna fugiat. + +### Third-level heading + +Ea do magna aute proident nulla cupidatat esse consectetur anim eu esse. Consectetur est voluptate +excepteur non dolore consequat fugiat deserunt. Est nostrud est ea irure reprehenderit commodo +nostrud nulla tempor ipsum tempor sit id exercitation. Sunt reprehenderit officia anim id quis +pariatur velit cillum incididunt officia sunt. Ullamco ipsum cillum minim deserunt eiusmod nostrud +irure et nulla laborum ipsum ipsum incididunt. Voluptate reprehenderit in occaecat ipsum nulla +excepteur excepteur mollit laboris id ad laborum do. Qui in laborum nostrud quis occaecat proident +ipsum tempor laborum consequat id ut velit occaecat.Aliquip quis qui ullamco ipsum exercitation +exercitation excepteur ea ex. Proident elit incididunt incididunt ad adipisicing quis deserunt sint +laboris deserunt ipsum culpa est. Id do ex duis Lorem exercitation amet reprehenderit. Voluptate qui +tempor qui sit minim sit qui ea id dolor excepteur. Laborum elit excepteur enim sunt consequat +officia cillum. Do ea occaecat ut voluptate ea proident duis minim ad pariatur dolore magna enim +duis. Sit aliqua aliqua ea mollit enim cupidatat proident incididunt. Eu dolore sit non incididunt. +Mollit reprehenderit sunt sunt cillum labore velit exercitation officia aliqua ea adipisicing do ea. +Commodo et fugiat velit dolore consectetur. + +Amet dolore deserunt in ut amet officia exercitation sint excepteur voluptate proident tempor enim +est. Culpa proident tempor in voluptate laboris sunt consectetur sit cillum excepteur culpa enim +velit laboris. Pariatur elit amet nostrud tempor nostrud ea. Exercitation do aliquip nisi amet id. +Lorem labore incididunt sit sit veniam tempor do consectetur do culpa qui. + +## Id sint deserunt laborum mollit id excepteur + +mollit excepteur labore labore dolor. Sit cupidatat nostrud ad consequat amet excepteur id sunt +labore adipisicing non irure. Fugiat exercitation laborum officia minim duis dolor do officia Lorem +cillum excepteur. Sint elit mollit duis sit ad commodo. + +## Cillum amet irure ut tempor tempor culpa dolore sint. + +Lorem qui ipsum reprehenderit est incididunt duis exercitation ea duis fugiat. Consectetur enim id +sunt exercitation et dolore ea proident sunt excepteur fugiat dolor. Veniam proident dolore irure +incididunt deserunt pariatur quis. Incididunt ea elit deserunt occaecat eiusmod velit fugiat eiusmod +dolor eiusmod ullamco. Fugiat fugiat eiusmod occaecat nulla consequat pariatur. + +Aliquip non cupidatat irure magna et fugiat sunt amet ex est excepteur irure quis. Non culpa magna +nisi enim eu nulla esse laborum amet ipsum. Eu consectetur labore do id occaecat adipisicing. diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/index.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/index.mdx index 89d9fa1d..a499d1eb 100644 --- a/packages/site/snapshots/latest/mosaic/configure/layouts/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/index.mdx @@ -3,7 +3,7 @@ title: Layouts layout: DetailTechnical sidebar: priority: 2 -lastModified: 1692689032573 +lastModified: 1696003021484 fullPath: /mosaic/configure/layouts/index.mdx route: /mosaic/configure/layouts/index breadcrumbs: @@ -27,8 +27,8 @@ navigation: title: HTTP Source route: /mosaic/configure/sources/http-source next: - title: Plugins - route: /mosaic/configure/plugins/index + title: Detail Highlight + route: /mosaic/configure/layouts/detail-highlight sidebarData: - id: /mosaic/configure/index fullPath: /mosaic/configure/index.mdx @@ -146,7 +146,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/landing b/packages/site/snapshots/latest/mosaic/configure/layouts/landing new file mode 120000 index 00000000..53483750 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/landing @@ -0,0 +1 @@ +landing.mdx \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/landing.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/landing.mdx new file mode 100644 index 00000000..8a32cbf5 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/landing.mdx @@ -0,0 +1,388 @@ +--- +title: Landing Layout +layout: DetailTechnical +description: Landing layout example +lastModified: 1696003065643 +fullPath: /mosaic/configure/layouts/landing.mdx +route: /mosaic/configure/layouts/landing +breadcrumbs: + - label: Mosaic + path: /mosaic/index + id: /mosaic/index.mdx + - label: Configure + path: /mosaic/configure/index + id: /mosaic/configure/index.mdx + - label: Layouts + path: /mosaic/configure/layouts/index + id: /mosaic/configure/layouts/index.mdx + - label: Landing Layout + path: /mosaic/configure/layouts/landing + id: /mosaic/configure/layouts/landing.mdx +readingTime: + text: 1 min read + minutes: 0.325 + time: 19500 + words: 65 +tableOfContents: + - level: 2 + id: page-geometry + text: Page geometry +navigation: + prev: + title: Detail Technical + route: /mosaic/configure/layouts/detail-technical + next: + title: Product Discover Layout + route: /mosaic/configure/layouts/product-discover +sidebarData: + - id: /mosaic/configure/index + fullPath: /mosaic/configure/index.mdx + name: Configure + priority: 4 + data: + level: 2 + link: /mosaic/configure/index + childNodes: [] + - id: /mosaic/configure/modes/index + fullPath: /mosaic/configure/modes/index.mdx + name: Modes of operation + priority: 4 + data: + level: 3 + link: /mosaic/configure/modes/index + childNodes: + - id: /mosaic/configure/modes/active + fullPath: /mosaic/configure/modes/active.mdx + name: Active mode + data: + level: 3 + link: /mosaic/configure/modes/active + childNodes: [] + - id: /mosaic/configure/modes/snapshot-file + fullPath: /mosaic/configure/modes/snapshot-file.mdx + name: Snapshot file mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-file + childNodes: [] + - id: /mosaic/configure/modes/snapshot-s3 + fullPath: /mosaic/configure/modes/snapshot-s3.mdx + name: Snapshot AWS/S3 mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-s3 + childNodes: [] + - id: /mosaic/configure/theme/index + fullPath: /mosaic/configure/theme/index.mdx + name: Theming Your Site + priority: 4 + data: + level: 3 + link: /mosaic/configure/theme/index + childNodes: + - id: /mosaic/configure/theme/custom-css + fullPath: /mosaic/configure/theme/custom-css.mdx + name: Custom CSS + priority: 3 + data: + level: 3 + link: /mosaic/configure/theme/custom-css + childNodes: [] + - id: /mosaic/configure/theme/custom-components + fullPath: /mosaic/configure/theme/custom-components.mdx + name: Custom Components + priority: 2 + data: + level: 3 + link: /mosaic/configure/theme/custom-components + childNodes: [] + - id: /mosaic/configure/admin/index + fullPath: /mosaic/configure/admin/index.mdx + name: Admin + priority: 3 + data: + level: 3 + link: /mosaic/configure/admin/index + childNodes: [] + - id: /mosaic/configure/sources/index + fullPath: /mosaic/configure/sources/index.mdx + name: Sources + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/index + childNodes: + - id: /mosaic/configure/sources/schedules + fullPath: /mosaic/configure/sources/schedules.mdx + name: Schedules + priority: 4 + data: + level: 3 + link: /mosaic/configure/sources/schedules + childNodes: [] + - id: /mosaic/configure/sources/local-folder-source + fullPath: /mosaic/configure/sources/local-folder-source.mdx + name: Local Folder Source + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/local-folder-source + childNodes: [] + - id: /mosaic/configure/sources/git-repo-source + fullPath: /mosaic/configure/sources/git-repo-source.mdx + name: Git Repo Source + priority: 2 + data: + level: 3 + link: /mosaic/configure/sources/git-repo-source + childNodes: [] + - id: /mosaic/configure/sources/http-source + fullPath: /mosaic/configure/sources/http-source.mdx + name: HTTP Source + priority: 1 + data: + level: 3 + link: /mosaic/configure/sources/http-source + childNodes: [] + - id: /mosaic/configure/layouts/index + fullPath: /mosaic/configure/layouts/index.mdx + name: Layouts + priority: 2 + data: + level: 3 + link: /mosaic/configure/layouts/index + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] + - id: /mosaic/configure/plugins/index + fullPath: /mosaic/configure/plugins/index.mdx + name: Plugins + priority: 1 + data: + level: 3 + link: /mosaic/configure/plugins/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/index + fullPath: /mosaic/configure/plugins/lifecycle/index.mdx + name: Lifecycle Events + priority: 1 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/after-source + fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx + name: $afterSource + priority: 5 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-source + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/before-send + fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx + name: $beforeSend + priority: 4 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/before-send + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/after-update + fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx + name: afterUpdate + priority: 3 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-update + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/should-clear-cache + fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx + name: shouldClearCache + priority: 2 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/should-clear-cache + childNodes: [] + - id: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + fullPath: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx + name: shouldUpdateNamespaceSources + priority: 1 + data: + level: 4 + link: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + childNodes: [] + - id: /mosaic/configure/plugins/alias-plugin + fullPath: /mosaic/configure/plugins/alias-plugin.mdx + name: $AliasPlugin + data: + level: 3 + link: /mosaic/configure/plugins/alias-plugin + childNodes: [] + - id: /mosaic/configure/plugins/breadcrumbs-plugin + fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx + name: BreadcrumbsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/breadcrumbs-plugin + childNodes: [] + - id: /mosaic/configure/plugins/broken-links-plugin + fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx + name: BrokenLinksPlugin + data: + level: 3 + link: /mosaic/configure/plugins/broken-links-plugin + childNodes: [] + - id: /mosaic/configure/plugins/codemod-plugin + fullPath: /mosaic/configure/plugins/codemod-plugin.mdx + name: $CodeModPlugin + data: + level: 3 + link: /mosaic/configure/plugins/codemod-plugin + childNodes: [] + - id: /mosaic/configure/plugins/lazy-page-plugin + fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx + name: LazyPagePlugin + data: + level: 3 + link: /mosaic/configure/plugins/lazy-page-plugin + childNodes: [] + - id: /mosaic/configure/plugins/pages-wthout-extensions-plugin + fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx + name: PagesWithoutFileExtPlugin + data: + level: 3 + link: /mosaic/configure/plugins/pages-wthout-extensions-plugin + childNodes: [] + - id: /mosaic/configure/plugins/public-assets-plugin + fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx + name: PublicAssetsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/public-assets-plugin + childNodes: [] + - id: /mosaic/configure/plugins/reading-time-plugin + fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx + name: ReadingTimePlugin + data: + level: 3 + link: /mosaic/configure/plugins/reading-time-plugin + childNodes: [] + - id: /mosaic/configure/plugins/ref-plugin + fullPath: /mosaic/configure/plugins/ref-plugin.mdx + name: $RefPlugin + data: + level: 3 + link: /mosaic/configure/plugins/ref-plugin + childNodes: [] + - id: /mosaic/configure/plugins/search-index-plugin + fullPath: /mosaic/configure/plugins/search-index-plugin.mdx + name: SearchIndexPlugin + data: + level: 3 + link: /mosaic/configure/plugins/search-index-plugin + childNodes: [] + - id: /mosaic/configure/plugins/shared-config-plugin + fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx + name: SharedConfigPlugin + data: + level: 3 + link: /mosaic/configure/plugins/shared-config-plugin + childNodes: [] + - id: /mosaic/configure/plugins/sidebar-plugin + fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx + name: SidebarPlugin + data: + level: 3 + link: /mosaic/configure/plugins/sidebar-plugin + childNodes: [] + - id: /mosaic/configure/plugins/site-map-plugin + fullPath: /mosaic/configure/plugins/site-map-plugin.mdx + name: SiteMapPlugin + data: + level: 3 + link: /mosaic/configure/plugins/site-map-plugin + childNodes: [] + - id: /mosaic/configure/plugins/tag-plugin + fullPath: /mosaic/configure/plugins/tag-plugin.mdx + name: $TagPlugin + data: + level: 3 + link: /mosaic/configure/plugins/tag-plugin + childNodes: [] + - id: /mosaic/configure/plugins/toc-plugin + fullPath: /mosaic/configure/plugins/toc-plugin.mdx + name: TableOfContentsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/toc-plugin + childNodes: [] +--- +# Layout: Landing + +Initialize with `layout: Landing` in your page's frontmatter. + +Use this layout as a landing page to show large branded visuals, and high-level content about the +line of business. + +Set the tone and voice for your LOB’s experience. + +Use components that support your content with places to insert visuals, share any stats or an +introduction of LOB’s story. + +Use heading styles to show the grouping of content of a section. + +## Page geometry + +

+ + + + + + + + + +

diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/product-discover b/packages/site/snapshots/latest/mosaic/configure/layouts/product-discover new file mode 120000 index 00000000..508e3923 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/product-discover @@ -0,0 +1 @@ +product-discover.mdx \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/product-discover.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/product-discover.mdx new file mode 100644 index 00000000..5ff217c9 --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/product-discover.mdx @@ -0,0 +1,384 @@ +--- +title: Product Discover Layout +layout: DetailTechnical +description: Product Discover layout +lastModified: 1696003065643 +fullPath: /mosaic/configure/layouts/product-discover.mdx +route: /mosaic/configure/layouts/product-discover +breadcrumbs: + - label: Mosaic + path: /mosaic/index + id: /mosaic/index.mdx + - label: Configure + path: /mosaic/configure/index + id: /mosaic/configure/index.mdx + - label: Layouts + path: /mosaic/configure/layouts/index + id: /mosaic/configure/layouts/index.mdx + - label: Product Discover Layout + path: /mosaic/configure/layouts/product-discover + id: /mosaic/configure/layouts/product-discover.mdx +readingTime: + text: 1 min read + minutes: 0.15 + time: 9000 + words: 30 +tableOfContents: + - level: 2 + id: page-geometry + text: Page geometry +navigation: + prev: + title: Landing Layout + route: /mosaic/configure/layouts/landing + next: + title: Product Preview Layout + route: /mosaic/configure/layouts/product-preview +sidebarData: + - id: /mosaic/configure/index + fullPath: /mosaic/configure/index.mdx + name: Configure + priority: 4 + data: + level: 2 + link: /mosaic/configure/index + childNodes: [] + - id: /mosaic/configure/modes/index + fullPath: /mosaic/configure/modes/index.mdx + name: Modes of operation + priority: 4 + data: + level: 3 + link: /mosaic/configure/modes/index + childNodes: + - id: /mosaic/configure/modes/active + fullPath: /mosaic/configure/modes/active.mdx + name: Active mode + data: + level: 3 + link: /mosaic/configure/modes/active + childNodes: [] + - id: /mosaic/configure/modes/snapshot-file + fullPath: /mosaic/configure/modes/snapshot-file.mdx + name: Snapshot file mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-file + childNodes: [] + - id: /mosaic/configure/modes/snapshot-s3 + fullPath: /mosaic/configure/modes/snapshot-s3.mdx + name: Snapshot AWS/S3 mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-s3 + childNodes: [] + - id: /mosaic/configure/theme/index + fullPath: /mosaic/configure/theme/index.mdx + name: Theming Your Site + priority: 4 + data: + level: 3 + link: /mosaic/configure/theme/index + childNodes: + - id: /mosaic/configure/theme/custom-css + fullPath: /mosaic/configure/theme/custom-css.mdx + name: Custom CSS + priority: 3 + data: + level: 3 + link: /mosaic/configure/theme/custom-css + childNodes: [] + - id: /mosaic/configure/theme/custom-components + fullPath: /mosaic/configure/theme/custom-components.mdx + name: Custom Components + priority: 2 + data: + level: 3 + link: /mosaic/configure/theme/custom-components + childNodes: [] + - id: /mosaic/configure/admin/index + fullPath: /mosaic/configure/admin/index.mdx + name: Admin + priority: 3 + data: + level: 3 + link: /mosaic/configure/admin/index + childNodes: [] + - id: /mosaic/configure/sources/index + fullPath: /mosaic/configure/sources/index.mdx + name: Sources + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/index + childNodes: + - id: /mosaic/configure/sources/schedules + fullPath: /mosaic/configure/sources/schedules.mdx + name: Schedules + priority: 4 + data: + level: 3 + link: /mosaic/configure/sources/schedules + childNodes: [] + - id: /mosaic/configure/sources/local-folder-source + fullPath: /mosaic/configure/sources/local-folder-source.mdx + name: Local Folder Source + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/local-folder-source + childNodes: [] + - id: /mosaic/configure/sources/git-repo-source + fullPath: /mosaic/configure/sources/git-repo-source.mdx + name: Git Repo Source + priority: 2 + data: + level: 3 + link: /mosaic/configure/sources/git-repo-source + childNodes: [] + - id: /mosaic/configure/sources/http-source + fullPath: /mosaic/configure/sources/http-source.mdx + name: HTTP Source + priority: 1 + data: + level: 3 + link: /mosaic/configure/sources/http-source + childNodes: [] + - id: /mosaic/configure/layouts/index + fullPath: /mosaic/configure/layouts/index.mdx + name: Layouts + priority: 2 + data: + level: 3 + link: /mosaic/configure/layouts/index + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] + - id: /mosaic/configure/plugins/index + fullPath: /mosaic/configure/plugins/index.mdx + name: Plugins + priority: 1 + data: + level: 3 + link: /mosaic/configure/plugins/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/index + fullPath: /mosaic/configure/plugins/lifecycle/index.mdx + name: Lifecycle Events + priority: 1 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/after-source + fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx + name: $afterSource + priority: 5 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-source + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/before-send + fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx + name: $beforeSend + priority: 4 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/before-send + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/after-update + fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx + name: afterUpdate + priority: 3 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-update + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/should-clear-cache + fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx + name: shouldClearCache + priority: 2 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/should-clear-cache + childNodes: [] + - id: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + fullPath: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx + name: shouldUpdateNamespaceSources + priority: 1 + data: + level: 4 + link: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + childNodes: [] + - id: /mosaic/configure/plugins/alias-plugin + fullPath: /mosaic/configure/plugins/alias-plugin.mdx + name: $AliasPlugin + data: + level: 3 + link: /mosaic/configure/plugins/alias-plugin + childNodes: [] + - id: /mosaic/configure/plugins/breadcrumbs-plugin + fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx + name: BreadcrumbsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/breadcrumbs-plugin + childNodes: [] + - id: /mosaic/configure/plugins/broken-links-plugin + fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx + name: BrokenLinksPlugin + data: + level: 3 + link: /mosaic/configure/plugins/broken-links-plugin + childNodes: [] + - id: /mosaic/configure/plugins/codemod-plugin + fullPath: /mosaic/configure/plugins/codemod-plugin.mdx + name: $CodeModPlugin + data: + level: 3 + link: /mosaic/configure/plugins/codemod-plugin + childNodes: [] + - id: /mosaic/configure/plugins/lazy-page-plugin + fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx + name: LazyPagePlugin + data: + level: 3 + link: /mosaic/configure/plugins/lazy-page-plugin + childNodes: [] + - id: /mosaic/configure/plugins/pages-wthout-extensions-plugin + fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx + name: PagesWithoutFileExtPlugin + data: + level: 3 + link: /mosaic/configure/plugins/pages-wthout-extensions-plugin + childNodes: [] + - id: /mosaic/configure/plugins/public-assets-plugin + fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx + name: PublicAssetsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/public-assets-plugin + childNodes: [] + - id: /mosaic/configure/plugins/reading-time-plugin + fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx + name: ReadingTimePlugin + data: + level: 3 + link: /mosaic/configure/plugins/reading-time-plugin + childNodes: [] + - id: /mosaic/configure/plugins/ref-plugin + fullPath: /mosaic/configure/plugins/ref-plugin.mdx + name: $RefPlugin + data: + level: 3 + link: /mosaic/configure/plugins/ref-plugin + childNodes: [] + - id: /mosaic/configure/plugins/search-index-plugin + fullPath: /mosaic/configure/plugins/search-index-plugin.mdx + name: SearchIndexPlugin + data: + level: 3 + link: /mosaic/configure/plugins/search-index-plugin + childNodes: [] + - id: /mosaic/configure/plugins/shared-config-plugin + fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx + name: SharedConfigPlugin + data: + level: 3 + link: /mosaic/configure/plugins/shared-config-plugin + childNodes: [] + - id: /mosaic/configure/plugins/sidebar-plugin + fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx + name: SidebarPlugin + data: + level: 3 + link: /mosaic/configure/plugins/sidebar-plugin + childNodes: [] + - id: /mosaic/configure/plugins/site-map-plugin + fullPath: /mosaic/configure/plugins/site-map-plugin.mdx + name: SiteMapPlugin + data: + level: 3 + link: /mosaic/configure/plugins/site-map-plugin + childNodes: [] + - id: /mosaic/configure/plugins/tag-plugin + fullPath: /mosaic/configure/plugins/tag-plugin.mdx + name: $TagPlugin + data: + level: 3 + link: /mosaic/configure/plugins/tag-plugin + childNodes: [] + - id: /mosaic/configure/plugins/toc-plugin + fullPath: /mosaic/configure/plugins/toc-plugin.mdx + name: TableOfContentsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/toc-plugin + childNodes: [] +--- +# Layout: Product Discover + +Initialize with `layout: ProductDiscover` in your page's frontmatter. + +Use this layout to introduce a product feature with a description and large visual. + +This layout is use for marketing and discovery content. + +## Page geometry + +

+ + + + + + + + + + + +

diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/product-preview b/packages/site/snapshots/latest/mosaic/configure/layouts/product-preview new file mode 120000 index 00000000..4509da9b --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/product-preview @@ -0,0 +1 @@ +product-preview.mdx \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/layouts/product-preview.mdx b/packages/site/snapshots/latest/mosaic/configure/layouts/product-preview.mdx new file mode 100644 index 00000000..a18d463f --- /dev/null +++ b/packages/site/snapshots/latest/mosaic/configure/layouts/product-preview.mdx @@ -0,0 +1,382 @@ +--- +title: Product Preview Layout +layout: DetailTechnical +description: Product Preview layout +lastModified: 1696003065643 +fullPath: /mosaic/configure/layouts/product-preview.mdx +route: /mosaic/configure/layouts/product-preview +breadcrumbs: + - label: Mosaic + path: /mosaic/index + id: /mosaic/index.mdx + - label: Configure + path: /mosaic/configure/index + id: /mosaic/configure/index.mdx + - label: Layouts + path: /mosaic/configure/layouts/index + id: /mosaic/configure/layouts/index.mdx + - label: Product Preview Layout + path: /mosaic/configure/layouts/product-preview + id: /mosaic/configure/layouts/product-preview.mdx +readingTime: + text: 1 min read + minutes: 0.175 + time: 10500 + words: 35 +tableOfContents: + - level: 2 + id: page-geometry + text: Page geometry +navigation: + prev: + title: Product Discover Layout + route: /mosaic/configure/layouts/product-discover + next: + title: Plugins + route: /mosaic/configure/plugins/index +sidebarData: + - id: /mosaic/configure/index + fullPath: /mosaic/configure/index.mdx + name: Configure + priority: 4 + data: + level: 2 + link: /mosaic/configure/index + childNodes: [] + - id: /mosaic/configure/modes/index + fullPath: /mosaic/configure/modes/index.mdx + name: Modes of operation + priority: 4 + data: + level: 3 + link: /mosaic/configure/modes/index + childNodes: + - id: /mosaic/configure/modes/active + fullPath: /mosaic/configure/modes/active.mdx + name: Active mode + data: + level: 3 + link: /mosaic/configure/modes/active + childNodes: [] + - id: /mosaic/configure/modes/snapshot-file + fullPath: /mosaic/configure/modes/snapshot-file.mdx + name: Snapshot file mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-file + childNodes: [] + - id: /mosaic/configure/modes/snapshot-s3 + fullPath: /mosaic/configure/modes/snapshot-s3.mdx + name: Snapshot AWS/S3 mode + data: + level: 3 + link: /mosaic/configure/modes/snapshot-s3 + childNodes: [] + - id: /mosaic/configure/theme/index + fullPath: /mosaic/configure/theme/index.mdx + name: Theming Your Site + priority: 4 + data: + level: 3 + link: /mosaic/configure/theme/index + childNodes: + - id: /mosaic/configure/theme/custom-css + fullPath: /mosaic/configure/theme/custom-css.mdx + name: Custom CSS + priority: 3 + data: + level: 3 + link: /mosaic/configure/theme/custom-css + childNodes: [] + - id: /mosaic/configure/theme/custom-components + fullPath: /mosaic/configure/theme/custom-components.mdx + name: Custom Components + priority: 2 + data: + level: 3 + link: /mosaic/configure/theme/custom-components + childNodes: [] + - id: /mosaic/configure/admin/index + fullPath: /mosaic/configure/admin/index.mdx + name: Admin + priority: 3 + data: + level: 3 + link: /mosaic/configure/admin/index + childNodes: [] + - id: /mosaic/configure/sources/index + fullPath: /mosaic/configure/sources/index.mdx + name: Sources + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/index + childNodes: + - id: /mosaic/configure/sources/schedules + fullPath: /mosaic/configure/sources/schedules.mdx + name: Schedules + priority: 4 + data: + level: 3 + link: /mosaic/configure/sources/schedules + childNodes: [] + - id: /mosaic/configure/sources/local-folder-source + fullPath: /mosaic/configure/sources/local-folder-source.mdx + name: Local Folder Source + priority: 3 + data: + level: 3 + link: /mosaic/configure/sources/local-folder-source + childNodes: [] + - id: /mosaic/configure/sources/git-repo-source + fullPath: /mosaic/configure/sources/git-repo-source.mdx + name: Git Repo Source + priority: 2 + data: + level: 3 + link: /mosaic/configure/sources/git-repo-source + childNodes: [] + - id: /mosaic/configure/sources/http-source + fullPath: /mosaic/configure/sources/http-source.mdx + name: HTTP Source + priority: 1 + data: + level: 3 + link: /mosaic/configure/sources/http-source + childNodes: [] + - id: /mosaic/configure/layouts/index + fullPath: /mosaic/configure/layouts/index.mdx + name: Layouts + priority: 2 + data: + level: 3 + link: /mosaic/configure/layouts/index + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] + - id: /mosaic/configure/plugins/index + fullPath: /mosaic/configure/plugins/index.mdx + name: Plugins + priority: 1 + data: + level: 3 + link: /mosaic/configure/plugins/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/index + fullPath: /mosaic/configure/plugins/lifecycle/index.mdx + name: Lifecycle Events + priority: 1 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/index + childNodes: + - id: /mosaic/configure/plugins/lifecycle/after-source + fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx + name: $afterSource + priority: 5 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-source + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/before-send + fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx + name: $beforeSend + priority: 4 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/before-send + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/after-update + fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx + name: afterUpdate + priority: 3 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/after-update + childNodes: [] + - id: /mosaic/configure/plugins/lifecycle/should-clear-cache + fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx + name: shouldClearCache + priority: 2 + data: + level: 4 + link: /mosaic/configure/plugins/lifecycle/should-clear-cache + childNodes: [] + - id: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + fullPath: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx + name: shouldUpdateNamespaceSources + priority: 1 + data: + level: 4 + link: >- + /mosaic/configure/plugins/lifecycle/should-update-namespace-sources + childNodes: [] + - id: /mosaic/configure/plugins/alias-plugin + fullPath: /mosaic/configure/plugins/alias-plugin.mdx + name: $AliasPlugin + data: + level: 3 + link: /mosaic/configure/plugins/alias-plugin + childNodes: [] + - id: /mosaic/configure/plugins/breadcrumbs-plugin + fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx + name: BreadcrumbsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/breadcrumbs-plugin + childNodes: [] + - id: /mosaic/configure/plugins/broken-links-plugin + fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx + name: BrokenLinksPlugin + data: + level: 3 + link: /mosaic/configure/plugins/broken-links-plugin + childNodes: [] + - id: /mosaic/configure/plugins/codemod-plugin + fullPath: /mosaic/configure/plugins/codemod-plugin.mdx + name: $CodeModPlugin + data: + level: 3 + link: /mosaic/configure/plugins/codemod-plugin + childNodes: [] + - id: /mosaic/configure/plugins/lazy-page-plugin + fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx + name: LazyPagePlugin + data: + level: 3 + link: /mosaic/configure/plugins/lazy-page-plugin + childNodes: [] + - id: /mosaic/configure/plugins/pages-wthout-extensions-plugin + fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx + name: PagesWithoutFileExtPlugin + data: + level: 3 + link: /mosaic/configure/plugins/pages-wthout-extensions-plugin + childNodes: [] + - id: /mosaic/configure/plugins/public-assets-plugin + fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx + name: PublicAssetsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/public-assets-plugin + childNodes: [] + - id: /mosaic/configure/plugins/reading-time-plugin + fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx + name: ReadingTimePlugin + data: + level: 3 + link: /mosaic/configure/plugins/reading-time-plugin + childNodes: [] + - id: /mosaic/configure/plugins/ref-plugin + fullPath: /mosaic/configure/plugins/ref-plugin.mdx + name: $RefPlugin + data: + level: 3 + link: /mosaic/configure/plugins/ref-plugin + childNodes: [] + - id: /mosaic/configure/plugins/search-index-plugin + fullPath: /mosaic/configure/plugins/search-index-plugin.mdx + name: SearchIndexPlugin + data: + level: 3 + link: /mosaic/configure/plugins/search-index-plugin + childNodes: [] + - id: /mosaic/configure/plugins/shared-config-plugin + fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx + name: SharedConfigPlugin + data: + level: 3 + link: /mosaic/configure/plugins/shared-config-plugin + childNodes: [] + - id: /mosaic/configure/plugins/sidebar-plugin + fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx + name: SidebarPlugin + data: + level: 3 + link: /mosaic/configure/plugins/sidebar-plugin + childNodes: [] + - id: /mosaic/configure/plugins/site-map-plugin + fullPath: /mosaic/configure/plugins/site-map-plugin.mdx + name: SiteMapPlugin + data: + level: 3 + link: /mosaic/configure/plugins/site-map-plugin + childNodes: [] + - id: /mosaic/configure/plugins/tag-plugin + fullPath: /mosaic/configure/plugins/tag-plugin.mdx + name: $TagPlugin + data: + level: 3 + link: /mosaic/configure/plugins/tag-plugin + childNodes: [] + - id: /mosaic/configure/plugins/toc-plugin + fullPath: /mosaic/configure/plugins/toc-plugin.mdx + name: TableOfContentsPlugin + data: + level: 3 + link: /mosaic/configure/plugins/toc-plugin + childNodes: [] +--- +# Layout: Product Preview + +Initialize with `layout: ProductPreview` in your page's frontmatter. + +This layout has been used to introduce a product and showcase their suite of product offerings. + +Use heading styles to show the grouping of content of a section. + +## Page geometry + +

+ + + + + + + + + +

diff --git a/packages/site/snapshots/latest/mosaic/configure/modes/active.mdx b/packages/site/snapshots/latest/mosaic/configure/modes/active.mdx index 3dd72217..2a3fde97 100644 --- a/packages/site/snapshots/latest/mosaic/configure/modes/active.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/modes/active.mdx @@ -157,7 +157,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/modes/index.mdx b/packages/site/snapshots/latest/mosaic/configure/modes/index.mdx index b461d930..95046511 100644 --- a/packages/site/snapshots/latest/mosaic/configure/modes/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/modes/index.mdx @@ -160,7 +160,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-file.mdx b/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-file.mdx index 81d0b88e..0c5a7718 100644 --- a/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-file.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-file.mdx @@ -151,7 +151,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-s3.mdx b/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-s3.mdx index efa28832..03d5c6ac 100644 --- a/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-s3.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/modes/snapshot-s3.mdx @@ -154,7 +154,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/alias-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/alias-plugin.mdx index 4a75f395..2d93d42c 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/alias-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/alias-plugin.mdx @@ -1,7 +1,7 @@ --- title: $AliasPlugin layout: DetailOverview -lastModified: 1695975218794 +lastModified: 1696003048509 fullPath: /mosaic/configure/plugins/alias-plugin.mdx route: /mosaic/configure/plugins/alias-plugin breadcrumbs: @@ -150,7 +150,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/breadcrumbs-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/breadcrumbs-plugin.mdx index 5b1f85e5..bf97b56e 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/breadcrumbs-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/breadcrumbs-plugin.mdx @@ -1,7 +1,7 @@ --- title: BreadcrumbsPlugin layout: DetailOverview -lastModified: 1695978432798 +lastModified: 1696003048510 fullPath: /mosaic/configure/plugins/breadcrumbs-plugin.mdx route: /mosaic/configure/plugins/breadcrumbs-plugin breadcrumbs: @@ -156,7 +156,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/broken-links-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/broken-links-plugin.mdx index 7defe344..c30e8d05 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/broken-links-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/broken-links-plugin.mdx @@ -1,7 +1,7 @@ --- title: BrokenLinksPlugin layout: DetailOverview -lastModified: 1695980767395 +lastModified: 1696003048510 fullPath: /mosaic/configure/plugins/broken-links-plugin.mdx route: /mosaic/configure/plugins/broken-links-plugin breadcrumbs: @@ -159,7 +159,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/codemod-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/codemod-plugin.mdx index 439f7dcd..08e79afa 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/codemod-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/codemod-plugin.mdx @@ -1,7 +1,7 @@ --- title: $CodeModPlugin layout: DetailOverview -lastModified: 1695907989832 +lastModified: 1696003048510 fullPath: /mosaic/configure/plugins/codemod-plugin.mdx route: /mosaic/configure/plugins/codemod-plugin breadcrumbs: @@ -150,7 +150,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/index.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/index.mdx index 183c3fc8..82316194 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/index.mdx @@ -3,7 +3,7 @@ title: Plugins layout: DetailTechnical sidebar: priority: 1 -lastModified: 1695993736067 +lastModified: 1696003048510 fullPath: /mosaic/configure/plugins/index.mdx route: /mosaic/configure/plugins/index breadcrumbs: @@ -39,8 +39,8 @@ tableOfContents: text: Multiple Instances navigation: prev: - title: Layouts - route: /mosaic/configure/layouts/index + title: Product Preview Layout + route: /mosaic/configure/layouts/product-preview next: title: Lifecycle Events route: /mosaic/configure/plugins/lifecycle/index @@ -161,7 +161,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lazy-page-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lazy-page-plugin.mdx index a86b3f5f..ec6b8831 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lazy-page-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lazy-page-plugin.mdx @@ -1,7 +1,7 @@ --- title: LazyPagePlugin layout: DetailOverview -lastModified: 1695981498702 +lastModified: 1696003048510 fullPath: /mosaic/configure/plugins/lazy-page-plugin.mdx route: /mosaic/configure/plugins/lazy-page-plugin breadcrumbs: @@ -156,7 +156,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-source.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-source.mdx index ccf152c0..fc659283 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-source.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-source.mdx @@ -3,7 +3,7 @@ title: $afterSource layout: DetailOverview sidebar: priority: 5 -lastModified: 1695916814938 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/lifecycle/after-source.mdx route: /mosaic/configure/plugins/lifecycle/after-source breadcrumbs: @@ -158,7 +158,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-update.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-update.mdx index d9654a5b..74d63f2f 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-update.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/after-update.mdx @@ -3,7 +3,7 @@ title: afterUpdate layout: DetailOverview sidebar: priority: 3 -lastModified: 1695972151932 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/lifecycle/after-update.mdx route: /mosaic/configure/plugins/lifecycle/after-update breadcrumbs: @@ -155,7 +155,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/before-send.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/before-send.mdx index 59a7f509..29c22cc9 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/before-send.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/before-send.mdx @@ -3,7 +3,7 @@ title: $beforeSend layout: DetailOverview sidebar: priority: 4 -lastModified: 1695916823867 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/lifecycle/before-send.mdx route: /mosaic/configure/plugins/lifecycle/before-send breadcrumbs: @@ -155,7 +155,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/index.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/index.mdx index ceb6a957..53042290 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/index.mdx @@ -3,7 +3,7 @@ title: Lifecycle Events layout: DetailTechnical sidebar: priority: 1 -lastModified: 1695907718118 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/lifecycle/index.mdx route: /mosaic/configure/plugins/lifecycle/index breadcrumbs: @@ -149,7 +149,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-clear-cache.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-clear-cache.mdx index b048c696..49a289d1 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-clear-cache.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-clear-cache.mdx @@ -3,7 +3,7 @@ title: shouldClearCache layout: DetailOverview sidebar: priority: 2 -lastModified: 1695917307633 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/lifecycle/should-clear-cache.mdx route: /mosaic/configure/plugins/lifecycle/should-clear-cache breadcrumbs: @@ -155,7 +155,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx index 9bf2637a..80b16f0d 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx @@ -3,7 +3,7 @@ title: shouldUpdateNamespaceSources layout: DetailOverview sidebar: priority: 1 -lastModified: 1695972976413 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx route: /mosaic/configure/plugins/lifecycle/should-update-namespace-sources breadcrumbs: @@ -155,7 +155,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx index fc668e2e..cf229f09 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx @@ -1,7 +1,7 @@ --- title: PagesWithoutFileExtPlugin layout: DetailOverview -lastModified: 1695982147310 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx route: /mosaic/configure/plugins/pages-wthout-extensions-plugin breadcrumbs: @@ -153,7 +153,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/public-assets-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/public-assets-plugin.mdx index 12222358..af93e5d0 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/public-assets-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/public-assets-plugin.mdx @@ -1,7 +1,7 @@ --- title: PublicAssetsPlugin layout: DetailOverview -lastModified: 1695982952228 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/public-assets-plugin.mdx route: /mosaic/configure/plugins/public-assets-plugin breadcrumbs: @@ -156,7 +156,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/reading-time-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/reading-time-plugin.mdx index cd93ee37..5b8ae348 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/reading-time-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/reading-time-plugin.mdx @@ -1,7 +1,7 @@ --- title: ReadingTimePlugin layout: DetailOverview -lastModified: 1695983337981 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/reading-time-plugin.mdx route: /mosaic/configure/plugins/reading-time-plugin breadcrumbs: @@ -153,7 +153,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/ref-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/ref-plugin.mdx index b0107f52..1e2a01b1 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/ref-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/ref-plugin.mdx @@ -1,7 +1,7 @@ --- title: $RefPlugin layout: DetailOverview -lastModified: 1695977296466 +lastModified: 1696003048511 fullPath: /mosaic/configure/plugins/ref-plugin.mdx route: /mosaic/configure/plugins/ref-plugin breadcrumbs: @@ -150,7 +150,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/search-index-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/search-index-plugin.mdx index ac665dec..427cc2f0 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/search-index-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/search-index-plugin.mdx @@ -1,7 +1,7 @@ --- title: SearchIndexPlugin layout: DetailOverview -lastModified: 1695991041989 +lastModified: 1696003048512 fullPath: /mosaic/configure/plugins/search-index-plugin.mdx route: /mosaic/configure/plugins/search-index-plugin breadcrumbs: @@ -168,7 +168,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/shared-config-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/shared-config-plugin.mdx index 1a582a1f..7dd270ea 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/shared-config-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/shared-config-plugin.mdx @@ -1,7 +1,7 @@ --- title: SharedConfigPlugin layout: DetailOverview -lastModified: 1695994551106 +lastModified: 1696003048512 fullPath: /mosaic/configure/plugins/shared-config-plugin.mdx route: /mosaic/configure/plugins/shared-config-plugin breadcrumbs: @@ -159,7 +159,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/sidebar-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/sidebar-plugin.mdx index 5790da87..1b8cd6c4 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/sidebar-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/sidebar-plugin.mdx @@ -1,7 +1,7 @@ --- title: SidebarPlugin layout: DetailOverview -lastModified: 1695992206037 +lastModified: 1696003048512 fullPath: /mosaic/configure/plugins/sidebar-plugin.mdx route: /mosaic/configure/plugins/sidebar-plugin breadcrumbs: @@ -159,7 +159,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/site-map-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/site-map-plugin.mdx index ba432840..dbcb0f68 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/site-map-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/site-map-plugin.mdx @@ -1,7 +1,7 @@ --- title: SiteMapPlugin layout: DetailOverview -lastModified: 1695994631263 +lastModified: 1696003048512 fullPath: /mosaic/configure/plugins/site-map-plugin.mdx route: /mosaic/configure/plugins/site-map-plugin breadcrumbs: @@ -156,7 +156,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/tag-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/tag-plugin.mdx index de6ec823..64c9a989 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/tag-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/tag-plugin.mdx @@ -1,7 +1,7 @@ --- title: $TagPlugin layout: DetailOverview -lastModified: 1695976785238 +lastModified: 1696003048512 fullPath: /mosaic/configure/plugins/tag-plugin.mdx route: /mosaic/configure/plugins/tag-plugin breadcrumbs: @@ -153,7 +153,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/plugins/toc-plugin.mdx b/packages/site/snapshots/latest/mosaic/configure/plugins/toc-plugin.mdx index cec139e4..ccbd764d 100644 --- a/packages/site/snapshots/latest/mosaic/configure/plugins/toc-plugin.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/plugins/toc-plugin.mdx @@ -1,7 +1,7 @@ --- title: TableOfContentsPlugin layout: DetailOverview -lastModified: 1695995283201 +lastModified: 1696003048512 fullPath: /mosaic/configure/plugins/toc-plugin.mdx route: /mosaic/configure/plugins/toc-plugin breadcrumbs: @@ -153,7 +153,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/sidebar.json b/packages/site/snapshots/latest/mosaic/configure/sidebar.json index 9eca42c2..908f4f39 100644 --- a/packages/site/snapshots/latest/mosaic/configure/sidebar.json +++ b/packages/site/snapshots/latest/mosaic/configure/sidebar.json @@ -1 +1 @@ -{"pages":[{"id":"/mosaic/configure/index","fullPath":"/mosaic/configure/index.mdx","name":"Configure","priority":4,"data":{"level":2,"link":"/mosaic/configure/index"},"childNodes":[]},{"id":"/mosaic/configure/modes/index","fullPath":"/mosaic/configure/modes/index.mdx","name":"Modes of operation","priority":4,"data":{"level":3,"link":"/mosaic/configure/modes/index"},"childNodes":[{"id":"/mosaic/configure/modes/active","fullPath":"/mosaic/configure/modes/active.mdx","name":"Active mode","data":{"level":3,"link":"/mosaic/configure/modes/active"},"childNodes":[]},{"id":"/mosaic/configure/modes/snapshot-file","fullPath":"/mosaic/configure/modes/snapshot-file.mdx","name":"Snapshot file mode","data":{"level":3,"link":"/mosaic/configure/modes/snapshot-file"},"childNodes":[]},{"id":"/mosaic/configure/modes/snapshot-s3","fullPath":"/mosaic/configure/modes/snapshot-s3.mdx","name":"Snapshot AWS/S3 mode","data":{"level":3,"link":"/mosaic/configure/modes/snapshot-s3"},"childNodes":[]}]},{"id":"/mosaic/configure/theme/index","fullPath":"/mosaic/configure/theme/index.mdx","name":"Theming Your Site","priority":4,"data":{"level":3,"link":"/mosaic/configure/theme/index"},"childNodes":[{"id":"/mosaic/configure/theme/custom-css","fullPath":"/mosaic/configure/theme/custom-css.mdx","name":"Custom CSS","priority":3,"data":{"level":3,"link":"/mosaic/configure/theme/custom-css"},"childNodes":[]},{"id":"/mosaic/configure/theme/custom-components","fullPath":"/mosaic/configure/theme/custom-components.mdx","name":"Custom Components","priority":2,"data":{"level":3,"link":"/mosaic/configure/theme/custom-components"},"childNodes":[]}]},{"id":"/mosaic/configure/admin/index","fullPath":"/mosaic/configure/admin/index.mdx","name":"Admin","priority":3,"data":{"level":3,"link":"/mosaic/configure/admin/index"},"childNodes":[]},{"id":"/mosaic/configure/sources/index","fullPath":"/mosaic/configure/sources/index.mdx","name":"Sources","priority":3,"data":{"level":3,"link":"/mosaic/configure/sources/index"},"childNodes":[{"id":"/mosaic/configure/sources/schedules","fullPath":"/mosaic/configure/sources/schedules.mdx","name":"Schedules","priority":4,"data":{"level":3,"link":"/mosaic/configure/sources/schedules"},"childNodes":[]},{"id":"/mosaic/configure/sources/local-folder-source","fullPath":"/mosaic/configure/sources/local-folder-source.mdx","name":"Local Folder Source","priority":3,"data":{"level":3,"link":"/mosaic/configure/sources/local-folder-source"},"childNodes":[]},{"id":"/mosaic/configure/sources/git-repo-source","fullPath":"/mosaic/configure/sources/git-repo-source.mdx","name":"Git Repo Source","priority":2,"data":{"level":3,"link":"/mosaic/configure/sources/git-repo-source"},"childNodes":[]},{"id":"/mosaic/configure/sources/http-source","fullPath":"/mosaic/configure/sources/http-source.mdx","name":"HTTP Source","priority":1,"data":{"level":3,"link":"/mosaic/configure/sources/http-source"},"childNodes":[]}]},{"id":"/mosaic/configure/layouts/index","fullPath":"/mosaic/configure/layouts/index.mdx","name":"Layouts","priority":2,"data":{"level":3,"link":"/mosaic/configure/layouts/index"},"childNodes":[]},{"id":"/mosaic/configure/plugins/index","fullPath":"/mosaic/configure/plugins/index.mdx","name":"Plugins","priority":1,"data":{"level":3,"link":"/mosaic/configure/plugins/index"},"childNodes":[{"id":"/mosaic/configure/plugins/lifecycle/index","fullPath":"/mosaic/configure/plugins/lifecycle/index.mdx","name":"Lifecycle Events","priority":1,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/index"},"childNodes":[{"id":"/mosaic/configure/plugins/lifecycle/after-source","fullPath":"/mosaic/configure/plugins/lifecycle/after-source.mdx","name":"$afterSource","priority":5,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/after-source"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/before-send","fullPath":"/mosaic/configure/plugins/lifecycle/before-send.mdx","name":"$beforeSend","priority":4,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/before-send"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/after-update","fullPath":"/mosaic/configure/plugins/lifecycle/after-update.mdx","name":"afterUpdate","priority":3,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/after-update"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/should-clear-cache","fullPath":"/mosaic/configure/plugins/lifecycle/should-clear-cache.mdx","name":"shouldClearCache","priority":2,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/should-clear-cache"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources","fullPath":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx","name":"shouldUpdateNamespaceSources","priority":1,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources"},"childNodes":[]}]},{"id":"/mosaic/configure/plugins/alias-plugin","fullPath":"/mosaic/configure/plugins/alias-plugin.mdx","name":"$AliasPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/alias-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/breadcrumbs-plugin","fullPath":"/mosaic/configure/plugins/breadcrumbs-plugin.mdx","name":"BreadcrumbsPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/breadcrumbs-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/broken-links-plugin","fullPath":"/mosaic/configure/plugins/broken-links-plugin.mdx","name":"BrokenLinksPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/broken-links-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/codemod-plugin","fullPath":"/mosaic/configure/plugins/codemod-plugin.mdx","name":"$CodeModPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/codemod-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lazy-page-plugin","fullPath":"/mosaic/configure/plugins/lazy-page-plugin.mdx","name":"LazyPagePlugin","data":{"level":3,"link":"/mosaic/configure/plugins/lazy-page-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/pages-wthout-extensions-plugin","fullPath":"/mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx","name":"PagesWithoutFileExtPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/pages-wthout-extensions-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/public-assets-plugin","fullPath":"/mosaic/configure/plugins/public-assets-plugin.mdx","name":"PublicAssetsPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/public-assets-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/reading-time-plugin","fullPath":"/mosaic/configure/plugins/reading-time-plugin.mdx","name":"ReadingTimePlugin","data":{"level":3,"link":"/mosaic/configure/plugins/reading-time-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/ref-plugin","fullPath":"/mosaic/configure/plugins/ref-plugin.mdx","name":"$RefPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/ref-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/search-index-plugin","fullPath":"/mosaic/configure/plugins/search-index-plugin.mdx","name":"SearchIndexPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/search-index-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/shared-config-plugin","fullPath":"/mosaic/configure/plugins/shared-config-plugin.mdx","name":"SharedConfigPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/shared-config-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/sidebar-plugin","fullPath":"/mosaic/configure/plugins/sidebar-plugin.mdx","name":"SidebarPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/sidebar-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/site-map-plugin","fullPath":"/mosaic/configure/plugins/site-map-plugin.mdx","name":"SiteMapPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/site-map-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/tag-plugin","fullPath":"/mosaic/configure/plugins/tag-plugin.mdx","name":"$TagPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/tag-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/toc-plugin","fullPath":"/mosaic/configure/plugins/toc-plugin.mdx","name":"TableOfContentsPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/toc-plugin"},"childNodes":[]}]}]} \ No newline at end of file +{"pages":[{"id":"/mosaic/configure/index","fullPath":"/mosaic/configure/index.mdx","name":"Configure","priority":4,"data":{"level":2,"link":"/mosaic/configure/index"},"childNodes":[]},{"id":"/mosaic/configure/modes/index","fullPath":"/mosaic/configure/modes/index.mdx","name":"Modes of operation","priority":4,"data":{"level":3,"link":"/mosaic/configure/modes/index"},"childNodes":[{"id":"/mosaic/configure/modes/active","fullPath":"/mosaic/configure/modes/active.mdx","name":"Active mode","data":{"level":3,"link":"/mosaic/configure/modes/active"},"childNodes":[]},{"id":"/mosaic/configure/modes/snapshot-file","fullPath":"/mosaic/configure/modes/snapshot-file.mdx","name":"Snapshot file mode","data":{"level":3,"link":"/mosaic/configure/modes/snapshot-file"},"childNodes":[]},{"id":"/mosaic/configure/modes/snapshot-s3","fullPath":"/mosaic/configure/modes/snapshot-s3.mdx","name":"Snapshot AWS/S3 mode","data":{"level":3,"link":"/mosaic/configure/modes/snapshot-s3"},"childNodes":[]}]},{"id":"/mosaic/configure/theme/index","fullPath":"/mosaic/configure/theme/index.mdx","name":"Theming Your Site","priority":4,"data":{"level":3,"link":"/mosaic/configure/theme/index"},"childNodes":[{"id":"/mosaic/configure/theme/custom-css","fullPath":"/mosaic/configure/theme/custom-css.mdx","name":"Custom CSS","priority":3,"data":{"level":3,"link":"/mosaic/configure/theme/custom-css"},"childNodes":[]},{"id":"/mosaic/configure/theme/custom-components","fullPath":"/mosaic/configure/theme/custom-components.mdx","name":"Custom Components","priority":2,"data":{"level":3,"link":"/mosaic/configure/theme/custom-components"},"childNodes":[]}]},{"id":"/mosaic/configure/admin/index","fullPath":"/mosaic/configure/admin/index.mdx","name":"Admin","priority":3,"data":{"level":3,"link":"/mosaic/configure/admin/index"},"childNodes":[]},{"id":"/mosaic/configure/sources/index","fullPath":"/mosaic/configure/sources/index.mdx","name":"Sources","priority":3,"data":{"level":3,"link":"/mosaic/configure/sources/index"},"childNodes":[{"id":"/mosaic/configure/sources/schedules","fullPath":"/mosaic/configure/sources/schedules.mdx","name":"Schedules","priority":4,"data":{"level":3,"link":"/mosaic/configure/sources/schedules"},"childNodes":[]},{"id":"/mosaic/configure/sources/local-folder-source","fullPath":"/mosaic/configure/sources/local-folder-source.mdx","name":"Local Folder Source","priority":3,"data":{"level":3,"link":"/mosaic/configure/sources/local-folder-source"},"childNodes":[]},{"id":"/mosaic/configure/sources/git-repo-source","fullPath":"/mosaic/configure/sources/git-repo-source.mdx","name":"Git Repo Source","priority":2,"data":{"level":3,"link":"/mosaic/configure/sources/git-repo-source"},"childNodes":[]},{"id":"/mosaic/configure/sources/http-source","fullPath":"/mosaic/configure/sources/http-source.mdx","name":"HTTP Source","priority":1,"data":{"level":3,"link":"/mosaic/configure/sources/http-source"},"childNodes":[]}]},{"id":"/mosaic/configure/layouts/index","fullPath":"/mosaic/configure/layouts/index.mdx","name":"Layouts","priority":2,"data":{"level":3,"link":"/mosaic/configure/layouts/index"},"childNodes":[{"id":"/mosaic/configure/layouts/detail-highlight","fullPath":"/mosaic/configure/layouts/detail-highlight.mdx","name":"Detail Highlight","data":{"level":3,"link":"/mosaic/configure/layouts/detail-highlight"},"childNodes":[]},{"id":"/mosaic/configure/layouts/detail-overview","fullPath":"/mosaic/configure/layouts/detail-overview.mdx","name":"Detail Overview","data":{"level":3,"link":"/mosaic/configure/layouts/detail-overview"},"childNodes":[]},{"id":"/mosaic/configure/layouts/detail-technical","fullPath":"/mosaic/configure/layouts/detail-technical.mdx","name":"Detail Technical","data":{"level":3,"link":"/mosaic/configure/layouts/detail-technical"},"childNodes":[]},{"id":"/mosaic/configure/layouts/landing","fullPath":"/mosaic/configure/layouts/landing.mdx","name":"Landing Layout","data":{"level":3,"link":"/mosaic/configure/layouts/landing"},"childNodes":[]},{"id":"/mosaic/configure/layouts/product-discover","fullPath":"/mosaic/configure/layouts/product-discover.mdx","name":"Product Discover Layout","data":{"level":3,"link":"/mosaic/configure/layouts/product-discover"},"childNodes":[]},{"id":"/mosaic/configure/layouts/product-preview","fullPath":"/mosaic/configure/layouts/product-preview.mdx","name":"Product Preview Layout","data":{"level":3,"link":"/mosaic/configure/layouts/product-preview"},"childNodes":[]}]},{"id":"/mosaic/configure/plugins/index","fullPath":"/mosaic/configure/plugins/index.mdx","name":"Plugins","priority":1,"data":{"level":3,"link":"/mosaic/configure/plugins/index"},"childNodes":[{"id":"/mosaic/configure/plugins/lifecycle/index","fullPath":"/mosaic/configure/plugins/lifecycle/index.mdx","name":"Lifecycle Events","priority":1,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/index"},"childNodes":[{"id":"/mosaic/configure/plugins/lifecycle/after-source","fullPath":"/mosaic/configure/plugins/lifecycle/after-source.mdx","name":"$afterSource","priority":5,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/after-source"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/before-send","fullPath":"/mosaic/configure/plugins/lifecycle/before-send.mdx","name":"$beforeSend","priority":4,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/before-send"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/after-update","fullPath":"/mosaic/configure/plugins/lifecycle/after-update.mdx","name":"afterUpdate","priority":3,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/after-update"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/should-clear-cache","fullPath":"/mosaic/configure/plugins/lifecycle/should-clear-cache.mdx","name":"shouldClearCache","priority":2,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/should-clear-cache"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources","fullPath":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources.mdx","name":"shouldUpdateNamespaceSources","priority":1,"data":{"level":4,"link":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources"},"childNodes":[]}]},{"id":"/mosaic/configure/plugins/alias-plugin","fullPath":"/mosaic/configure/plugins/alias-plugin.mdx","name":"$AliasPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/alias-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/breadcrumbs-plugin","fullPath":"/mosaic/configure/plugins/breadcrumbs-plugin.mdx","name":"BreadcrumbsPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/breadcrumbs-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/broken-links-plugin","fullPath":"/mosaic/configure/plugins/broken-links-plugin.mdx","name":"BrokenLinksPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/broken-links-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/codemod-plugin","fullPath":"/mosaic/configure/plugins/codemod-plugin.mdx","name":"$CodeModPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/codemod-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/lazy-page-plugin","fullPath":"/mosaic/configure/plugins/lazy-page-plugin.mdx","name":"LazyPagePlugin","data":{"level":3,"link":"/mosaic/configure/plugins/lazy-page-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/pages-wthout-extensions-plugin","fullPath":"/mosaic/configure/plugins/pages-wthout-extensions-plugin.mdx","name":"PagesWithoutFileExtPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/pages-wthout-extensions-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/public-assets-plugin","fullPath":"/mosaic/configure/plugins/public-assets-plugin.mdx","name":"PublicAssetsPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/public-assets-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/reading-time-plugin","fullPath":"/mosaic/configure/plugins/reading-time-plugin.mdx","name":"ReadingTimePlugin","data":{"level":3,"link":"/mosaic/configure/plugins/reading-time-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/ref-plugin","fullPath":"/mosaic/configure/plugins/ref-plugin.mdx","name":"$RefPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/ref-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/search-index-plugin","fullPath":"/mosaic/configure/plugins/search-index-plugin.mdx","name":"SearchIndexPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/search-index-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/shared-config-plugin","fullPath":"/mosaic/configure/plugins/shared-config-plugin.mdx","name":"SharedConfigPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/shared-config-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/sidebar-plugin","fullPath":"/mosaic/configure/plugins/sidebar-plugin.mdx","name":"SidebarPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/sidebar-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/site-map-plugin","fullPath":"/mosaic/configure/plugins/site-map-plugin.mdx","name":"SiteMapPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/site-map-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/tag-plugin","fullPath":"/mosaic/configure/plugins/tag-plugin.mdx","name":"$TagPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/tag-plugin"},"childNodes":[]},{"id":"/mosaic/configure/plugins/toc-plugin","fullPath":"/mosaic/configure/plugins/toc-plugin.mdx","name":"TableOfContentsPlugin","data":{"level":3,"link":"/mosaic/configure/plugins/toc-plugin"},"childNodes":[]}]}]} \ No newline at end of file diff --git a/packages/site/snapshots/latest/mosaic/configure/sources/git-repo-source.mdx b/packages/site/snapshots/latest/mosaic/configure/sources/git-repo-source.mdx index cdf26845..5d0c0732 100644 --- a/packages/site/snapshots/latest/mosaic/configure/sources/git-repo-source.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/sources/git-repo-source.mdx @@ -164,7 +164,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/sources/http-source.mdx b/packages/site/snapshots/latest/mosaic/configure/sources/http-source.mdx index d95877cb..9068d68b 100644 --- a/packages/site/snapshots/latest/mosaic/configure/sources/http-source.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/sources/http-source.mdx @@ -158,7 +158,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/sources/index.mdx b/packages/site/snapshots/latest/mosaic/configure/sources/index.mdx index 13caa807..f86a1aa9 100644 --- a/packages/site/snapshots/latest/mosaic/configure/sources/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/sources/index.mdx @@ -170,7 +170,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/sources/local-folder-source.mdx b/packages/site/snapshots/latest/mosaic/configure/sources/local-folder-source.mdx index af5b12d2..7c21d08c 100644 --- a/packages/site/snapshots/latest/mosaic/configure/sources/local-folder-source.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/sources/local-folder-source.mdx @@ -158,7 +158,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/sources/schedules.mdx b/packages/site/snapshots/latest/mosaic/configure/sources/schedules.mdx index 741ad4d5..a156643f 100644 --- a/packages/site/snapshots/latest/mosaic/configure/sources/schedules.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/sources/schedules.mdx @@ -4,7 +4,7 @@ layout: DetailTechnical sidebar: priority: 4 label: Schedules -lastModified: 1693484762211 +lastModified: 1696003517248 fullPath: /mosaic/configure/sources/schedules.mdx route: /mosaic/configure/sources/schedules breadcrumbs: @@ -162,7 +162,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins @@ -330,7 +372,7 @@ sidebarData: --- # {meta.title} -A source schedule defines how often a source initiates a content pull and what to do when their is a failure. +A source schedule defines how often a source initiates a content pull and what to do when there is a failure. A schedule can be specified for each source in the source definition, but should a source not provide a schedule it will inherit the "global" schedule. diff --git a/packages/site/snapshots/latest/mosaic/configure/theme/custom-components.mdx b/packages/site/snapshots/latest/mosaic/configure/theme/custom-components.mdx index 891af6cb..e0de70de 100644 --- a/packages/site/snapshots/latest/mosaic/configure/theme/custom-components.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/theme/custom-components.mdx @@ -167,7 +167,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/theme/custom-css.mdx b/packages/site/snapshots/latest/mosaic/configure/theme/custom-css.mdx index 284fa701..16cd75af 100644 --- a/packages/site/snapshots/latest/mosaic/configure/theme/custom-css.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/theme/custom-css.mdx @@ -158,7 +158,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/mosaic/configure/theme/index.mdx b/packages/site/snapshots/latest/mosaic/configure/theme/index.mdx index a5d98612..8cd1bc15 100644 --- a/packages/site/snapshots/latest/mosaic/configure/theme/index.mdx +++ b/packages/site/snapshots/latest/mosaic/configure/theme/index.mdx @@ -152,7 +152,49 @@ sidebarData: data: level: 3 link: /mosaic/configure/layouts/index - childNodes: [] + childNodes: + - id: /mosaic/configure/layouts/detail-highlight + fullPath: /mosaic/configure/layouts/detail-highlight.mdx + name: Detail Highlight + data: + level: 3 + link: /mosaic/configure/layouts/detail-highlight + childNodes: [] + - id: /mosaic/configure/layouts/detail-overview + fullPath: /mosaic/configure/layouts/detail-overview.mdx + name: Detail Overview + data: + level: 3 + link: /mosaic/configure/layouts/detail-overview + childNodes: [] + - id: /mosaic/configure/layouts/detail-technical + fullPath: /mosaic/configure/layouts/detail-technical.mdx + name: Detail Technical + data: + level: 3 + link: /mosaic/configure/layouts/detail-technical + childNodes: [] + - id: /mosaic/configure/layouts/landing + fullPath: /mosaic/configure/layouts/landing.mdx + name: Landing Layout + data: + level: 3 + link: /mosaic/configure/layouts/landing + childNodes: [] + - id: /mosaic/configure/layouts/product-discover + fullPath: /mosaic/configure/layouts/product-discover.mdx + name: Product Discover Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-discover + childNodes: [] + - id: /mosaic/configure/layouts/product-preview + fullPath: /mosaic/configure/layouts/product-preview.mdx + name: Product Preview Layout + data: + level: 3 + link: /mosaic/configure/layouts/product-preview + childNodes: [] - id: /mosaic/configure/plugins/index fullPath: /mosaic/configure/plugins/index.mdx name: Plugins diff --git a/packages/site/snapshots/latest/search-data-condensed.json b/packages/site/snapshots/latest/search-data-condensed.json index c5c3577f..4f52bb76 100644 --- a/packages/site/snapshots/latest/search-data-condensed.json +++ b/packages/site/snapshots/latest/search-data-condensed.json @@ -1 +1 @@ -[{"title":"Mosaic","route":"/mosaic/index"},{"title":"Aliases","route":"/mosaic/author/aliases"},{"title":"Fragments","route":"/mosaic/author/fragments"},{"title":"Frontmatter","route":"/mosaic/author/frontmatter"},{"title":"Author","route":"/mosaic/author/index"},{"title":"Markdown Syntax","route":"/mosaic/author/markdown-syntax"},{"title":"Page Templates","route":"/mosaic/author/page-templates"},{"title":"Refs","route":"/mosaic/author/refs"},{"title":"UI Components","route":"/mosaic/author/ui-components"},{"title":"Configure","route":"/mosaic/configure/index"},{"title":"Content Fragment","route":"/mosaic/fragments/content-fragment"},{"title":"Fragments","route":"/mosaic/fragments/index"},{"title":"Tile A","route":"/mosaic/fragments/tile-a"},{"title":"Tile B","route":"/mosaic/fragments/tile-b"},{"title":"Create a Site","route":"/mosaic/getting-started/create-a-site"},{"title":"Getting Started","route":"/mosaic/getting-started/index"},{"title":"Publish a site to AWS","route":"/mosaic/getting-started/publish-site-to-aws"},{"title":"Publish","route":"/mosaic/publish/index"},{"title":"Publish a site to AWS","route":"/mosaic/publish/publish-site-to-aws"},{"title":"Publish a site to Vercel","route":"/mosaic/publish/publish-site-to-vercel"},{"title":"Test","route":"/mosaic/test/index"},{"title":"Admin","route":"/mosaic/configure/admin/index"},{"title":"Layouts","route":"/mosaic/configure/layouts/index"},{"title":"Active mode","route":"/mosaic/configure/modes/active"},{"title":"Modes of operation","route":"/mosaic/configure/modes/index"},{"title":"Snapshot file mode","route":"/mosaic/configure/modes/snapshot-file"},{"title":"Snapshot AWS/S3 mode","route":"/mosaic/configure/modes/snapshot-s3"},{"title":"$AliasPlugin","route":"/mosaic/configure/plugins/alias-plugin"},{"title":"BreadcrumbsPlugin","route":"/mosaic/configure/plugins/breadcrumbs-plugin"},{"title":"BrokenLinksPlugin","route":"/mosaic/configure/plugins/broken-links-plugin"},{"title":"$CodeModPlugin","route":"/mosaic/configure/plugins/codemod-plugin"},{"title":"Plugins","route":"/mosaic/configure/plugins/index"},{"title":"LazyPagePlugin","route":"/mosaic/configure/plugins/lazy-page-plugin"},{"title":"PagesWithoutFileExtPlugin","route":"/mosaic/configure/plugins/pages-wthout-extensions-plugin"},{"title":"PublicAssetsPlugin","route":"/mosaic/configure/plugins/public-assets-plugin"},{"title":"ReadingTimePlugin","route":"/mosaic/configure/plugins/reading-time-plugin"},{"title":"$RefPlugin","route":"/mosaic/configure/plugins/ref-plugin"},{"title":"SearchIndexPlugin","route":"/mosaic/configure/plugins/search-index-plugin"},{"title":"SharedConfigPlugin","route":"/mosaic/configure/plugins/shared-config-plugin"},{"title":"SidebarPlugin","route":"/mosaic/configure/plugins/sidebar-plugin"},{"title":"SiteMapPlugin","route":"/mosaic/configure/plugins/site-map-plugin"},{"title":"$TagPlugin","route":"/mosaic/configure/plugins/tag-plugin"},{"title":"TableOfContentsPlugin","route":"/mosaic/configure/plugins/toc-plugin"},{"title":"Git Repo Source","route":"/mosaic/configure/sources/git-repo-source"},{"title":"HTTP Source","route":"/mosaic/configure/sources/http-source"},{"title":"Sources","route":"/mosaic/configure/sources/index"},{"title":"Local Folder Source","route":"/mosaic/configure/sources/local-folder-source"},{"title":"Source Schedules","route":"/mosaic/configure/sources/schedules"},{"title":"Custom Components","route":"/mosaic/configure/theme/custom-components"},{"title":"Custom CSS","route":"/mosaic/configure/theme/custom-css"},{"title":"Theming Your Site","route":"/mosaic/configure/theme/index"},{"title":"Aliases Test","route":"/mosaic/test/aliases/index"},{"title":"Detail Highlight Test Page","route":"/mosaic/test/layouts/detail-highlight"},{"title":"Detail Overview Test Page","route":"/mosaic/test/layouts/detail-overview"},{"title":"Detail Technical Test Page","route":"/mosaic/test/layouts/detail-technical"},{"title":"Edit Layout","route":"/mosaic/test/layouts/edit"},{"title":"Full Width Layout","route":"/mosaic/test/layouts/full-width"},{"title":"Layouts","route":"/mosaic/test/layouts/index"},{"title":"Landing Layout Test Page","route":"/mosaic/test/layouts/landing"},{"title":"Newsletter Test Page","route":"/mosaic/test/layouts/newsletter"},{"title":"Product Discover Test Page","route":"/mosaic/test/layouts/product-discover"},{"title":"Product Preview Test Page","route":"/mosaic/test/layouts/product-preview"},{"title":"Refs Data","route":"/mosaic/test/refs/data"},{"title":"Refs Test","route":"/mosaic/test/refs/index"},{"title":"$afterSource","route":"/mosaic/configure/plugins/lifecycle/after-source"},{"title":"afterUpdate","route":"/mosaic/configure/plugins/lifecycle/after-update"},{"title":"$beforeSend","route":"/mosaic/configure/plugins/lifecycle/before-send"},{"title":"Lifecycle Events","route":"/mosaic/configure/plugins/lifecycle/index"},{"title":"shouldClearCache","route":"/mosaic/configure/plugins/lifecycle/should-clear-cache"},{"title":"shouldUpdateNamespaceSources","route":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources"}] \ No newline at end of file +[{"title":"Mosaic","route":"/mosaic/index"},{"title":"Aliases","route":"/mosaic/author/aliases"},{"title":"Fragments","route":"/mosaic/author/fragments"},{"title":"Frontmatter","route":"/mosaic/author/frontmatter"},{"title":"Author","route":"/mosaic/author/index"},{"title":"Markdown Syntax","route":"/mosaic/author/markdown-syntax"},{"title":"Page Templates","route":"/mosaic/author/page-templates"},{"title":"Refs","route":"/mosaic/author/refs"},{"title":"UI Components","route":"/mosaic/author/ui-components"},{"title":"Configure","route":"/mosaic/configure/index"},{"title":"Content Fragment","route":"/mosaic/fragments/content-fragment"},{"title":"Fragments","route":"/mosaic/fragments/index"},{"title":"Tile A","route":"/mosaic/fragments/tile-a"},{"title":"Tile B","route":"/mosaic/fragments/tile-b"},{"title":"Create a Site","route":"/mosaic/getting-started/create-a-site"},{"title":"Getting Started","route":"/mosaic/getting-started/index"},{"title":"Publish a site to AWS","route":"/mosaic/getting-started/publish-site-to-aws"},{"title":"Publish","route":"/mosaic/publish/index"},{"title":"Publish a site to AWS","route":"/mosaic/publish/publish-site-to-aws"},{"title":"Publish a site to Vercel","route":"/mosaic/publish/publish-site-to-vercel"},{"title":"Test","route":"/mosaic/test/index"},{"title":"Admin","route":"/mosaic/configure/admin/index"},{"title":"Detail Highlight","route":"/mosaic/configure/layouts/detail-highlight"},{"title":"Detail Overview","route":"/mosaic/configure/layouts/detail-overview"},{"title":"Detail Technical","route":"/mosaic/configure/layouts/detail-technical"},{"title":"Layouts","route":"/mosaic/configure/layouts/index"},{"title":"Landing Layout","route":"/mosaic/configure/layouts/landing"},{"title":"Product Discover Layout","route":"/mosaic/configure/layouts/product-discover"},{"title":"Product Preview Layout","route":"/mosaic/configure/layouts/product-preview"},{"title":"Active mode","route":"/mosaic/configure/modes/active"},{"title":"Modes of operation","route":"/mosaic/configure/modes/index"},{"title":"Snapshot file mode","route":"/mosaic/configure/modes/snapshot-file"},{"title":"Snapshot AWS/S3 mode","route":"/mosaic/configure/modes/snapshot-s3"},{"title":"$AliasPlugin","route":"/mosaic/configure/plugins/alias-plugin"},{"title":"BreadcrumbsPlugin","route":"/mosaic/configure/plugins/breadcrumbs-plugin"},{"title":"BrokenLinksPlugin","route":"/mosaic/configure/plugins/broken-links-plugin"},{"title":"$CodeModPlugin","route":"/mosaic/configure/plugins/codemod-plugin"},{"title":"Plugins","route":"/mosaic/configure/plugins/index"},{"title":"LazyPagePlugin","route":"/mosaic/configure/plugins/lazy-page-plugin"},{"title":"PagesWithoutFileExtPlugin","route":"/mosaic/configure/plugins/pages-wthout-extensions-plugin"},{"title":"PublicAssetsPlugin","route":"/mosaic/configure/plugins/public-assets-plugin"},{"title":"ReadingTimePlugin","route":"/mosaic/configure/plugins/reading-time-plugin"},{"title":"$RefPlugin","route":"/mosaic/configure/plugins/ref-plugin"},{"title":"SearchIndexPlugin","route":"/mosaic/configure/plugins/search-index-plugin"},{"title":"SharedConfigPlugin","route":"/mosaic/configure/plugins/shared-config-plugin"},{"title":"SidebarPlugin","route":"/mosaic/configure/plugins/sidebar-plugin"},{"title":"SiteMapPlugin","route":"/mosaic/configure/plugins/site-map-plugin"},{"title":"$TagPlugin","route":"/mosaic/configure/plugins/tag-plugin"},{"title":"TableOfContentsPlugin","route":"/mosaic/configure/plugins/toc-plugin"},{"title":"Git Repo Source","route":"/mosaic/configure/sources/git-repo-source"},{"title":"HTTP Source","route":"/mosaic/configure/sources/http-source"},{"title":"Sources","route":"/mosaic/configure/sources/index"},{"title":"Local Folder Source","route":"/mosaic/configure/sources/local-folder-source"},{"title":"Source Schedules","route":"/mosaic/configure/sources/schedules"},{"title":"Custom Components","route":"/mosaic/configure/theme/custom-components"},{"title":"Custom CSS","route":"/mosaic/configure/theme/custom-css"},{"title":"Theming Your Site","route":"/mosaic/configure/theme/index"},{"title":"Aliases Test","route":"/mosaic/test/aliases/index"},{"title":"Detail Highlight Test Page","route":"/mosaic/test/layouts/detail-highlight"},{"title":"Detail Overview Test Page","route":"/mosaic/test/layouts/detail-overview"},{"title":"Detail Technical Test Page","route":"/mosaic/test/layouts/detail-technical"},{"title":"Edit Layout","route":"/mosaic/test/layouts/edit"},{"title":"Full Width Layout","route":"/mosaic/test/layouts/full-width"},{"title":"Layouts","route":"/mosaic/test/layouts/index"},{"title":"Landing Layout Test Page","route":"/mosaic/test/layouts/landing"},{"title":"Newsletter Test Page","route":"/mosaic/test/layouts/newsletter"},{"title":"Product Discover Test Page","route":"/mosaic/test/layouts/product-discover"},{"title":"Product Preview Test Page","route":"/mosaic/test/layouts/product-preview"},{"title":"Refs Data","route":"/mosaic/test/refs/data"},{"title":"Refs Test","route":"/mosaic/test/refs/index"},{"title":"$afterSource","route":"/mosaic/configure/plugins/lifecycle/after-source"},{"title":"afterUpdate","route":"/mosaic/configure/plugins/lifecycle/after-update"},{"title":"$beforeSend","route":"/mosaic/configure/plugins/lifecycle/before-send"},{"title":"Lifecycle Events","route":"/mosaic/configure/plugins/lifecycle/index"},{"title":"shouldClearCache","route":"/mosaic/configure/plugins/lifecycle/should-clear-cache"},{"title":"shouldUpdateNamespaceSources","route":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources"}] \ No newline at end of file diff --git a/packages/site/snapshots/latest/search-data.json b/packages/site/snapshots/latest/search-data.json index 0f633446..3dc6c411 100644 --- a/packages/site/snapshots/latest/search-data.json +++ b/packages/site/snapshots/latest/search-data.json @@ -1 +1 @@ -[{"title":"Mosaic","route":"/mosaic/index","content":["True to its name, Mosaic brings together several concepts—including content, design and technical infrastructure—to deliver a unified website experience that is truly greater than the sum of its individual parts.","With Mosaic, you can:","Don't move your content where it does not belong. ","Compose content from remote data sources which\n","are pulled at runtime by our content aggregator.","Visualize your content with your own theme, layouts and components or use the Mosaic Design\n","language.","Extend the existing code and add your own content source types through our simple plugin\n","architecture.","Publish your content through Server Side Rendering (SSR) or generate a snapshot of your content\n","and serve it as a Statically Generated Site (SGS).","Creating a website has never been so easy!"]},{"title":"Aliases","route":"/mosaic/author/aliases","content":["Aliases are virtual 'symlinks' of pages, allowing one page to take on one or more other routes.\n","This is not the same as copying the page, it is a primitive filesystem link which is resolved by Mosaic.","Use Cases","Aliases are great for linking to an old route if you've moved a page to a new place.\n","They can also be used to create short hand links to pages or to 'clone' a copy of a page into\n","another section of the site where it may be relevant.","Example","This is the frontmatter for this page:","---\n","title: Aliases\n","layout: DetailTechnical\n","aliases:\n"," - /mosaic/example/aliases\n","---","Try accessing this page from ","/mosaic/example/aliases"]},{"title":"Fragments","route":"/mosaic/author/fragments","content":["Fragments, also known as content fragments, are powerful tools that allow you to incorporate content from other pages into your documentation. ","By creating an MDX file and using the ","generic directives"," syntax ",", you can easily render the fragment in another file, providing modularity and reusability to your content.","Use Cases","Fragments offer various use cases, such as:","Consistent Content",": Use fragments to maintain consistent content across multiple pages. ","For instance, if you have a table or a tile that appears on multiple pages, you can create a fragment for it and include it in all relevant files. ","This ensures that any updates made to the fragment automatically reflect across the entire documentation.","Reusable Components",": Fragments enable the creation of reusable components or sections. ","You can define a complex or commonly used section once and then include it in multiple pages as needed. ","This approach saves time and effort, as you only need to update the fragment file to propagate changes throughout your documentation.","Modular Documentation",": With fragments, you can break down your documentation into smaller, manageable pieces. ","Each fragment represents a specific topic or section, allowing you to organize and structure your content more efficiently. ","This modular approach simplifies maintenance and makes it easier to navigate and update your documentation.","Usage","Firstly, enable the Fragment Plugin by adding the following to your plugins in ",".","{\n"," modulePath: '@jpmorganchase/mosaic-plugins/FragmentPlugin',\n"," options: {}\n","}","To include a fragment in your content, follow these steps:","Create an MDX file for the fragment you want to reuse. ","Remember to set the sidebar property of your fragment's frontmatter to exclude: true if you don't want the fragment to appear in the vertical navigation menu.","---\n","title: Fragment Title\n","sidebar:\n"," exclude: true\n","---","In the target file where you want to include the fragment, use the remark directive syntax ",".","Markdown Content Example","This is the contents of a fragment located at ",":","---\n","title: Content Fragment\n","sidebar:\n"," exclude: true\n","---\n","\n","#### Fragment Title\n","\n","This is an example fragment of markdown content, being pulled from `../fragments/content-fragment.mdx`.\n","The below code snippet will render the content from the content-fragment.mdx file in your target file:",":fragment{src=\"../fragments/content-fragment.mdx\"}","Example output:",":fragment","Component Example","Here is another example, where the fragment files each contain a "," component.",":fragment{src=\"../fragments/tile-a.mdx\"} :fragment{src=\"../fragments/tile-b.mdx\"}","The above code will render the content from tile-a.mdx and tile-b.mdx files, demonstrated below:",":fragment"," :fragment"]},{"title":"Frontmatter","route":"/mosaic/author/frontmatter","content":["Frontmatter",", also known as page metadata, is a powerful feature that allows easy configuration of a page and Mosaic site components e.g. the sidebar.","Frontmatter is written in yaml syntax and is found at the top of a page between 2 sets of 3 dashes: ",".","Example page yaml","---\n","title: Page Title\n","layout: DetailTechnical\n","sidebar:\n"," priority: 4\n","---\n","\n","// frontmatter is closed and now comes page content\n","# Page Title\n","\n","This is some content.\n","Accessing Frontmatter in content","With the syntax below it is possible to directly reference frontmatter inside content using curly brackets and the "," object.","You can think of "," as a JSON object that holds all the frontmatter of a page and when the Mosaic "," encounters the curly brackets then the value in the frontmatter will be resolved.","{meta.title}\n","{meta.description}\n","{meta.someValueYouHaveAddedToTheFrontmatter}","This is very common to see Mosaic pages that reference the title as shown below:","---\n","title: Title\n","---\n","\n","# {meta.title}","Plugins & Frontmatter","Mosaic plugins can also embed their output into page frontmatter in 2 different ways:","a property is directly added to the page object","a JSON file is generated and referenced using a ","ref","Adding a property to the page","A plugin can add a property to a page simply by extending the page object it receives in the "," lifecycle event:","async function $afterSource(pages) {\n"," for (const page of pages) {\n"," page.newProperty = 'Hello'\n"," }\n"," return pages;\n","}","You could use this property in the page content using ","JSON File","Let's take a look at the ",".","The purpose of this plugin is to crawl the page hierarchy to find the closest "," found in any parent page's frontmatter.","Finds all index pages among the source docs","Deserialises those pages so it can read the frontmatter and content of the page","If a property called "," in the page frontmatter is found a new file named shared-config.json is created","Adds a ref named "," to the shared config file that points to the shared config of the index page","import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\n","import { flatten } from 'lodash-es';\n","import path from 'path';\n","\n","function createFileGlob(url, pageExtensions) {\n","if (pageExtensions.length === 1) {\n","return `${url}${pageExtensions[0]}`;\n","}\n","return `${url}{${pageExtensions.join(',')}}`;\n","}\n","\n","interface SharedConfigPluginPage extends Page {\n","sharedConfig?: string;\n","}\n","\n","interface SharedConfigPluginOptions {\n","filename: string;\n","}\n","\n","const SharedConfigPlugin: PluginType = {\n","async $beforeSend(\n"," mutableFilesystem,\n"," { config, serialiser, ignorePages, pageExtensions },\n"," options\n"," ) {\n"," const pagePaths = await mutableFilesystem.promises.glob(\n"," createFileGlob('**/index', pageExtensions),\n"," {\n"," ignore: [options.filename, ...flatten(ignorePages.map(ignore => [ignore, `**/${ignore}`]))],\n","cwd: '/'\n","}\n",");\n","\n"," for (const pagePath of pagePaths) {\n"," const sharedConfigFile = path.join(path.dirname(String(pagePath)), options.filename);\n","\n"," const page = await serialiser.deserialise(\n"," String(pagePath),\n"," await mutableFilesystem.promises.readFile(String(pagePath))\n"," );\n"," if (page.sharedConfig) {\n"," config.setRef(sharedConfigFile, ['config', '$ref'], `${String(pagePath)}#/sharedConfig`);\n"," await mutableFilesystem.promises.writeFile(sharedConfigFile, '{}');\n"," } else {\n"," const baseDir = path.posix.resolve(path.dirname(String(pagePath)), '..","/');\n"," config.setAliases(path.join(baseDir, options.filename), [sharedConfigFile]);\n"," }\n"," }\n","\n","}\n","};\n","\n","export default SharedConfigPlugin;\n"]},{"title":"Author","route":"/mosaic/author/index","content":["Here you will learn how to author documentation using markdown, Mosaic components and page templates"]},{"title":"Markdown Syntax","route":"/mosaic/author/markdown-syntax","content":["Out of the box, Mosaic supports documents written in ","MDX"," which allows React components to be embedded within the ","basic syntax"," outlined in the original Markdown design document.","In addition to the basic markdown syntax, the MDX processor used by Mosaic has been configured to support additional markdown syntax and features:","GitHub flavored markdown (gfm)","Frontmatter","Mosaic Standard Components","All components that comprise the "," export from "," package are available to use out of the box in your documents.","This includes components for all standard markdown syntax and additional components like "," and ",".","Referencing Frontmatter","Frontmatter values into the page using the "," object. ","See ","frontmatter"," for more information.","Configuring Supported components","TODO"]},{"title":"Page Templates","route":"/mosaic/author/page-templates","content":["Todo..."]},{"title":"Refs","route":"/mosaic/author/refs","content":["Refs are a very powerful feature of Mosaic documents that use ","JSON References"," to reference\n","a property from the page frontmatter or frontmatter of other pages.","The key concept is that of a JSON pointer which takes the form ","A","#","B"," where:","A"," is the relative path from the current schema to a target schema. ","If A is empty, the reference is to a type or property in the same schema, an in-schema reference. ","Otherwise, the reference is to a different schema, a cross-schema reference.","B"," is the complete path from the root of the schema to a type or property in the schema. ","If # in not included or B is empty, the reference is to an entire schema.","To translate this for our purposes:","A"," is the relative path to a file in the filesystem.","B"," is the path to a property in the frontmatter of the file.","It's probably better explained with examples...","Local refs (In-schema reference)","It is possible to reference a page's own frontmatter to avoid duplication:","---\n","title: Refs\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," sidebarPriority:\n"," $ref: '#/sidebar/priority'\n","---","This page you are reading right now has a sidebar priority of ",".","The value of "," comes from "," in the frontmatter.","Notice that because we don't specify a path before the "," in the ref we need to put the whole\n","value inside quotes.","Remote Refs (Cross-schema reference)","It is possible to reference frontmatter of other pages. ","Again this helps avoid duplication but the real power is using refs to build the data model. ","See ","advanced"," for more information.","The ","index"," page of the Author section has this frontmatter:","---\n","title: Author\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," exampleRefData: Hello from Author page\n","---","This page you are currently looking at is referencing the "," in it's frontmatter like this:","---\n","title: Refs\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," authorRef:\n"," $ref: ./#/data/exampleRefData\n","---","I can then use the data and embed it in this page like this:","{meta.data.authorRef}","And here it is: ","Notice that we did not need to put "," in the ref since index pages are resolved\n","automatically.","Advanced","You have had a taste of the power and want to know more? ","OK, lets reference and then list out all the mosaic modes:","The Modes ","index"," page has this frontmatter:","---\n","title: Modes of operation\n","layout: DetailTechnical\n","sidebar:\n"," priority: 4\n","data:\n"," modes:\n"," $ref: ./*#/title\n","---","The ref here is essentially using a wildcard (the *) to grab the "," property from the frontmatter of every page in the modes folder.","We can reference that data just like before:","---\n","title: Refs\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," modes:\n"," $ref: ../configure/modes#/data/modes\n","---","Output","With the code below, the referenced data can be embedded in a page.","","Output with Mosaic Components","You can use Mosaic components with referenced data as well. ","Below we are using the "," and "," components.","\n"," {meta.data.modes.map(mode => (\n"," \n"," ))}\n","","Setting Refs using Plugins","Mosaic plugins can create new refs, create new ","global"," refs and see existing refs created by the page or other plugins. ","This is achieved using a special "," property available in the plugin helpers.","Create new refs","Use the "," function from the helpers provided to plugin lifecycle events. ","You need to provide","The file/fullpath to write the ref to","The path to the ptoperty where the ref will be applied","The value of the ref, which can use wildcards","For example, the following would add a property to pages named ",". ","The value is the title of all pages in the ","same"," directory as the current page"," async $afterSource(pages, { config }) {\n"," for (const page of pages) {\n"," config.setRef(page.fullPath, ['titles', '$ref'], `**#/title`);\n"," }\n"," return pages;\n"," }","When setting the property path the last string must be "," otherwise you're not creating a ref\n","that will be resolved by the RefPlugin.","Existing refs","To view refs that already exist you can use ",". ","For example to see all refs for a page:"," config.data.refs[fullPathToPage]","Create global refs","Global refs are similar to regular refs except they do not pre-resolve. ","This means they are resolved when the referenced file is read and the global mosaic filesystem, made up of multiple sources, is used rather than the filesystem of a single source."]},{"title":"UI Components","route":"/mosaic/author/ui-components","content":["Todo..."]},{"title":"Configure","route":"/mosaic/configure/index","content":["Mosaic is a tool which retrieves, formats and combines documentation pages from any number of different external sources (such as GitHub repositories, local disks or REST endpoints), into a single filesystem for you to use in your websites."]},{"title":"Content Fragment","route":"/mosaic/fragments/content-fragment","content":["Fragment Title","This is an example fragment of markdown content, being pulled from ","."]},{"title":"Fragments","route":"/mosaic/fragments/index","content":["This folder contains example fragments that are referenced and rendered in the Fragments docs page."]},{"title":"Tile A","route":"/mosaic/fragments/tile-a","content":[]},{"title":"Tile B","route":"/mosaic/fragments/tile-b","content":[]},{"title":"Create a Site","route":"/mosaic/getting-started/create-a-site","content":["In this guide you will learn how to generate and serve a Mosaic site.","Prerequisites","To begin setting up a Mosaic site, you need to have the following software installed:","Yarn v1","Node.js v18 or higher","Step 1: Generate a Mosaic site","Run the following command in your project directory to generate a new Mosaic site:","npx @jpmorganchase/mosaic-create-site create -o my-sample-site","This command creates a new Mosaic site in the my-sample-site directory.","Next, navigate to the site directory:","cd my-sample-site","Step 2: Serve the site","The example site you have generated comes preconfigured with two ","sources",": a remote repository and a local docs folder. ","Sources are used by Mosaic to pull content from disparate locations and merge them into a single virtual filesystem that can be used by a Mosaic site.","Set up Git credentials","If you want the site to read from remote repositories, you need to set up an environment variable to store your Git credentials. ","Follow these steps:","Open a terminal or command prompt.","Replace "," and "," in the following commands with your actual Git username and personal access token.","On Unix:","export MOSAIC_DOCS_CLONE_CREDENTIALS=\":\"","On Windows:","set MOSAIC_DOCS_CLONE_CREDENTIALS=\":\"","This sets the MOSAIC_DOCS_CLONE_CREDENTIALS environment variable with your Git credentials.","Serve command","Now you can serve your Mosaic site by running the following command:","yarn serve","Access your Mosaic site from a browser using the following URLs:","To browse the content from your local source: http://localhost:3000/local","To browse the content from the Mosaic Git repo source: http://localhost:3000/mosaic","That's it! ","Your Mosaic site is now up and running.","Next Steps:","Deploy your Mosaic site to AWS or Vercel for production use.","Create more pages to expand your site's content.","Configure your own sources in the mosaic.config.mjs file to pull content from different locations.","Theme your site"]},{"title":"Getting Started","route":"/mosaic/getting-started/index","content":["Getting Started with Mosaic","Follow our step-by-step guides to quickly create and deploy your first Mosaic site."]},{"title":"Publish a site to AWS","route":"/mosaic/getting-started/publish-site-to-aws","content":["Publish a site to AWS using S3 snapshots.","Step 1: Generate a Mosaic site","If you have already created your Mosaic site, skip ahead to step 2.","> npx @jpmorganchase/mosaic-create-site -o my-sample-site\n","> cd my-sample-site","Step 2: Create a Github repository","> git init\n","> git remote add origin git@github.com:username/my-sample-site.git\n","> git add .\n","> git commit -m \"initial commit\"\n","> git push origin main","Step 3: Generate a snapshot of content","Consider a snapshot as a directory of static content previously pulled from your content sources, which does not update itself.","> yarn gen:snapshot","Step 4: Configure environment for S3","> export MOSAIC_MODE=\"snapshot-s3\"\n","> export MOSAIC_S3_BUCKET=\"\"\n","> export MOSAIC_S3_REGION=\"\"\n","> export MOSAIC_S3_ACCESS_KEY_ID=\"\"\"\n","> export MOSAIC_S3_SECRET_ACCESS_KEY=\"\"\n","> yarn mosaic upload -S ./snapshots/latest","Step 5: Setup AWS","Switch to the ","AWS Amplify"," console and deploy your app as a SSR application by following the ","AWS docs",".","Setup an S3 bucket as per the ","AWS S3 docs",".","Step 7: Configure your AWS app","Add the environment vars to the hosted app via your console","MOSAIC_MODE=\"snapshot-s3\"\n","MOSAIC_S3_BUCKET=\"\"\n","MOSAIC_S3_REGION=\"\"\n","MOSAIC_S3_ACCESS_KEY_ID=\"\"\"\n","MOSAIC_S3_SECRET_ACCESS_KEY=\"\"","Add the following build settings","version: 1\n","frontend:\n"," phases:\n"," preBuild:\n"," commands:\n"," - yarn install\n"," - env | grep -e MOSAIC >> .env.production\n"," build:\n"," commands:\n"," - yarn run build\n"," artifacts:\n"," baseDirectory: .next\n"," files:\n"," - '**/*'\n"," cache:\n"," paths:\n"," - node_modules/**/*","Ensure the Node is set to 16","Step 8: Upload your snapshot","Upload your snapshot to S3 storage.","> yarn mosaic upload -S ./snapshots/latest"]},{"title":"Publish","route":"/mosaic/publish/index","content":["To create your first Mosaic site, we have created a command line generator that scaffolds a ","standard"," site.","A ","standard"," site offers","an out the box, working site, which showcases local and remote content sources","a minimal set of files that can be configured with your own components, themes, layouts, sources and plugins","an update path that enables you to update Mosaic, independently of your own configuration","Create your first site","Install the Mosaic create site script.","> yarn global add @jpmorganchase/mosaic-create-site","Create a directory for your site and run the "," script.","> mkdir mosaic-sample-site\n","> cd mosaic-sample-site\n","> mosaic-create-site -f .","Define the environment variable, which enables us to access your remote repo.","> export MOSAIC_DOCS_CLONE_CREDENTIALS=\"\"","The "," environment variable is composed of your git username and your PAT token.\n","Follow these ","docs"," to see how to create your own PAT token.","Your site is ready to run.","> yarn serve","In your browser load ","Congratulations, you have created your first Mosaic site."]},{"title":"Publish a site to AWS","route":"/mosaic/publish/publish-site-to-aws","content":["A Mosaic site is a ","Next.Js"," app.","To publish a Next.Js App to AWS, deploy your app as a SSR application by following the ","AWS docs",".","Once the basic app has been configured, add the Mosaic specifics.","Add the environment vars to the hosted app via the Amplify console","MOSAIC_MODE=\"snapshot-s3\"\n","MOSAIC_S3_BUCKET=\"\"\n","MOSAIC_S3_REGION=\"\"\n","MOSAIC_S3_ACCESS_KEY_ID=\"\"\"\n","MOSAIC_S3_SECRET_ACCESS_KEY=\"\"","Add the following build settings","version: 1\n","frontend:\n"," phases:\n"," preBuild:\n"," commands:\n"," - yarn install\n"," - env | grep -e MOSAIC >> .env.production\n"," build:\n"," commands:\n"," - yarn run build\n"," artifacts:\n"," baseDirectory: .next\n"," files:\n"," - '**/*'\n"," cache:\n"," paths:\n"," - node_modules/**/*","Ensure the Node is set to 16"]},{"title":"Publish a site to Vercel","route":"/mosaic/publish/publish-site-to-vercel","content":["A Mosaic site is a ","Next.Js"," app.","To publish a Next.Js App to Vercel, refer to the ","Vercel docs",".","Deployment","As the ","vercel platform"," hosts static content you will need to deploy a mosaic snapshot. ","There is no option to run mosaic in ","active mode",".","1. ","Update Config File","Add the following to the mosaic config file used by your site:"," deployment: { mode: 'snapshot-file', platform: 'vercel' }","2. ","Set Environment Variables","Set 2 ","environment variables"," in the vercel dashboard.","| Variable Name | Value |\n","| ------------------- | ----------------- |\n","| MOSAIC_MODE | snapshot-file |\n","| MOSAIC_SNAPSHOT_DIR | snapshots/latest. ","|","3. ","Run Build and Deploy","The "," command used by vercel must run "," followed by ","The "," command is needed to workaround an ","output file tracing"," problem.","Example:","yarn build && yarn deploy","Output File Tracing","Output File Tracing"," is a feature of Next.js that uses static analysis\n","to determine what files are needed to deploy a production version of an application.","Due to the architecture of mosaic, snapshot files can be ignored by this process and therefore excluded from the build artifacts deployed by vercel.","If you are deploying your site to the ","vercel platform"," then the mosaic site has a "," command that will update the nextjs output trace to include the snapshot files."]},{"title":"Test","route":"/mosaic/test/index","content":["Pages for e2e testing."]},{"title":"Admin","route":"/mosaic/configure/admin/index","content":["There are several admin urls exposed by Mosaic that provide an insight into how the filesystem has been configured and a way to remotely manage sources.","Endpoints","| Endpoint | Method | Description | Params |\n","| -------------------------- | ------ | -------------------------------------------- | ---------------------- |\n","| "," | GET | Returns the JSON from the Mosaic config file | n/a |\n","| "," | GET | Returns the entire mosaic filesystem as JSON | n/a |\n","| "," | GET | Returns a collection of active sources | n/a |\n","| "," | POST | Adds the source | definition & isPreview |\n","| "," | PUT | Stops the source with the provided name | name |\n","| "," | PUT | Restarts the source with the provided name | name |"]},{"title":"Layouts","route":"/mosaic/configure/layouts/index","content":["Todo..."]},{"title":"Active mode","route":"/mosaic/configure/modes/active","content":["In "," mode content can be ","pulled"," from heterogeneous data sources and normalized via plugins, to the configured components/theme.\n","As your content changes, the site will ","re-pull"," the content and update your site in real-time.","The standard generated site comes with 2 sources to demonstrate, how 'active' mode work.","a local source, which loads content from ","a remote source, which loads content from a ","sample Github repository","Configuring your content sources","All content is composed together within a ","namespace",".","A ","namespace"," is the scope for aggregated content, represented by the root path.\n","e.g Our sample docs are aggregated into a ","namespace"," called "," and served by the user journey ","Mosaic doc sources are defined by a file called ","Here is how that might look for a standard site.","Pull your local content","To tryout local content creation, add a file called","The load ","Each directory should contain an "," which is the default page, when a page is loaded without a path","Now create other pages and subdirectories and explore how Mosaic, builds your user-journeys from your fileset.","Pull your remote content","To tryout remote content creation, your standard site comes pre-configured to load our Mosaic sample docs.","Edit the "," and change your "," and "," to pull content from other repos."]},{"title":"Modes of operation","route":"/mosaic/configure/modes/index","content":["Mosaic can operate in 3 different modes","Active updates","In ","active"," mode, content updates in real-time.","active"," mode content is pulled at configured intervals in real-time, as defined by ",".","Read the ","active"," configuration docs.","Static content","Consider a snapshot as a directory of static content previously pulled from your content sources, which does not update itself.","In a snapshot mode, the snapshot does update itself.","File based snapshots","In "," mode, immutable snapshots of content are loaded at startup from the local file-system.","Read the ","snapshot-file"," configuration docs.","S3 based snapshots","In "," mode, snapshots of content are loaded at startup from a remote S3 bucket.","Read the ","snapshot-s3"," configuration docs."]},{"title":"Snapshot file mode","route":"/mosaic/configure/modes/snapshot-file","content":["In "," mode a local immutable snapshot can be loaded by the site. ","Typically, the snapshot and the site are\n","deployed together and upon startup the site can load the snapshot from the local file-system.","To use "," mode","export MOSAIC_MODE=\"snapshot-file\"\n","export MOSAIC_SNAPSHOT_DIR=\"./snapshot/latest\"","Generating a snapshot","To generate a snapshot, run","yarn gen:snapshot","Commit the snapshot to your Git repo and push the site+snapshot to your Git repo, within the same branch."]},{"title":"Snapshot AWS/S3 mode","route":"/mosaic/configure/modes/snapshot-s3","content":["In "," mode a snapshot can be loaded from a pre-configured AWS S3 bucket.","To use "," mode","> export MOSAIC_MODE=\"snapshot-s3\"\n","> MOSAIC_S3_BUCKET=\"\"\n","> MOSAIC_S3_REGION=\"\"\n","> MOSAIC_S3_ACCESS_KEY_ID=\"\"\n","> MOSAIC_S3_SECRET_ACCESS_KEY=\"\"","Generating a snapshot","To generate a snapshot, run","yarn gen:snapshot","Uploading a snapshot to S3","To upload a snapshot to S3, define the required environment variables and run","yarn mosaic upload -S "]},{"title":"$AliasPlugin","route":"/mosaic/configure/plugins/alias-plugin","content":["The "," is what powers the ","aliases"," feature of Mosaic.","It does this by scrapes "," from page metadata and also applies all aliases stored in ","Other plugins can use "," to apply new aliases, as long as they call it before this plugin has reaches the "," lifecycle event.","This plugin is added to the plugins collection by Mosaic itself so users do ","not"," need to include it in their own mosaic config file.","Priority","This plugin runs with a priority of -1 so it runs ","after"," most other plugins."]},{"title":"BreadcrumbsPlugin","route":"/mosaic/configure/plugins/breadcrumbs-plugin","content":["The "," is responsible for generating the data needed to show breadcrumbs navigation on pages. ","It then appends this data to a "," property in the page metadata.","Should a page already have a "," property in it's metadata then it is respected and not overwritten.","If a page has a "," property in it's metadata then this is used as the label for the breadcrumb, otherwise the page "," is used.","When the "," is traversing up directories, it needs to know what page in the directory represents the ","breadcrumb"," for that directory. ","It is recommended to use the "," page for this but the page to use is a configurable option of the breadcrumbs plugin.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| ------------- | ------------------------------------------------ |\n","| indexPageName | The page name to use for \"directory\" breadcrumbs |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the breadcrumbs plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/BreadcrumbsPlugin',\n"," options: {\n"," indexPageName: 'index.mdx'\n"," }\n"," }\n"," // other plugins\n","];"]},{"title":"BrokenLinksPlugin","route":"/mosaic/configure/plugins/broken-links-plugin","content":["The "," will identify any broken links in pages Mosaic has pulled into it's filesystem by making use of the ","check-links"," package.","It can identify broken links between the pages themselves and external links that pages link out to.","What this plugin is really checking is \"liveness\" of a link.","alive if the URL is reachable (2XX status code)","dead if the URL is not reachable","invalid if the URL was parsed as invalid or used an unsupported protocol","Links may be \"alive\", but the ","content"," of the linked page may not be what you want so continue\n","to check links show what you expect.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| ------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n","| baseUrl | This is used to calculate the full url for links between pages. ","It should be the url Mosaic is running on |\n","| proxyEndpoint | If you are behind a corporate proxy, external link checking will not work unless you specify the proxy endpoint using this option |","Adding to Mosaic","This plugin is ","not"," included in the mosaic config shipped by the Mosaic standard generator so it must be added manually to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/BrokenLinksPlugin',\n"," priority: -1,\n"," // Exclude this plugin in builds\n"," runTimeOnly: true,\n"," options: {\n"," baseUrl: process.env.MOSAIC_ACTIVE_MODE_URL || 'http://localhost:8080',\n"," proxyEndpoint: 'http://some-proxy-url'\n"," }\n"," }\n"," // other plugins\n","];","This plugin needs to be a "," plugin because it needs Mosaic to be running in order to\n","make requests to all of the page links.","Example Output","When a link is found to be broken, you will see the following output in the console:","@jpmorganchase/mosaic-site:serve: 8080 [Mosaic] Broken links found in /local/docs/publish-site-to-vercel.mdx\n","@jpmorganchase/mosaic-site:serve: 8080 Link to https://nextjs.org/davie is dead {\n","@jpmorganchase/mosaic-site:serve: 8080 type: 'link',\n","@jpmorganchase/mosaic-site:serve: 8080 title: null,\n","@jpmorganchase/mosaic-site:serve: 8080 url: 'https://nextjs.org/davie',\n","@jpmorganchase/mosaic-site:serve: 8080 children: [ { type: 'text', value: 'Next.Js', position: [Object] } ],\n","@jpmorganchase/mosaic-site:serve: 8080 position: {\n","@jpmorganchase/mosaic-site:serve: 8080 start: { line: 4, column: 20, offset: 36 },\n","@jpmorganchase/mosaic-site:serve: 8080 end: { line: 4, column: 55, offset: 71 }\n","@jpmorganchase/mosaic-site:serve: 8080 }\n","@jpmorganchase/mosaic-site:serve: 8080 }"]},{"title":"$CodeModPlugin","route":"/mosaic/configure/plugins/codemod-plugin","content":["Todo"]},{"title":"Plugins","route":"/mosaic/configure/plugins/index","content":["Mosaic Plugins are ","lifecycle-based"," hooks that are called on ","every"," source at different stages. ","You will never need to invoke a lifecycle method directly as their execution is managed by a plugin runner.","Plugins enable Mosaic to have a lightweight and flexible, modular architecture by encapsulating features and functionality as plugins.","Installation","Configuration","Plugins are added to the "," collection of the mosaic config file. ","Like ","sources",", plugins have an options property that can be used to provide plugin specific configuration.","| Property | Description | Required |\n","| --------------- | -------------------------------------------------------------------------- | -------- |\n","| modulePath | The path to the installed plugin module | Yes |\n","| disabled | Exclude this plugin completely. ","Defaults to false | No |\n","| runtimeOnly | Exclude this plugin when generating a snapshot. ","Defaults to false | No |\n","| previewDisabled | Exclude this plugin for \"preview\" sources | No |\n","| allowMultiple | Allow multiple instances of this plugin to run. ","| No |\n","| priority | The importance of this plugin. ","Plugins with the highest priority run first | No |\n","| options | Collection of other configuration values | No |"," plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/PagesWithoutFileExtPlugin',\n"," options: {},\n"," priority: 1\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: {}\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/ReadingTimePlugin',\n"," options: {}\n"," }\n","],","There is no need to import the plugin module directly. ","As long as the plugin is installed, Mosaic\n","will be able to import it using the built-in plugin loader.","Default Plugins","The following plugins are always included by Mosaic, regardless of whether they are present in the plugins collection of the Mosaic config file:","$TagPlugin","$AliasPlugin","$CodeModPlugin","$RefPlugin","Plugin errors","Should a plugin fail, the failure will ","not"," cause a source to close or for any other plugin to not run.","Instead plugin errors are tracked by Mosaic and can be viewed in the "," property available on each source listed by the list sources ","admin API",".","Plugin errors will be split by lifecycle event and only the lifecycle events used by the loaded plugins used will be shown.","Multiple Instances","By default, Mosaic will only run one instance of a plugin.","It may be the case that you wish to run the same plugin twice with a slightly different config. ","To do this, you must have 2 instances listed in the plugins collection and they ","both"," must set the "," option to ",".","For example, the config below runs the ","SidebarPlugin"," twice:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: { rootDirGlob: 'products/product-a' },\n"," allowMultiple: true\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: { rootDirGlob: '*/!(","product-a)/*' },\n"," allowMultiple: true\n"," }\n"," // other plugins\n","];"]},{"title":"LazyPagePlugin","route":"/mosaic/configure/plugins/lazy-page-plugin","content":["The "," attempts to reduce the size of the Mosaic filesystem in memory by moving page metadata and content to disk.","It then adds a hook, so that when a page is requested the data is loaded from disk and combined with what is already in the Mosaic filesystem.","It must be the very last to run so that it can strip off metadata and content after other plugins\n","have finished with them.","Priority","This plugin runs with a priority of -2. ","Needs to be the last to run for biggest impact.","Options","| Property | Description |\n","| -------- | ------------------------------------------------------------------------------ |\n","| cacheDir | The directory to store the cache. ","Defaults to "," |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/LazyPagePlugin',\n"," // This plugin must be the very last to run, so it can strip off metadata and content after the other\n"," // plugins are done with them\n"," priority: -2,\n"," // Exclude this plugin in builds\n"," runTimeOnly: true,\n"," options: {\n"," cacheDir: '.tmp/.pull-docs-last-page-plugin-cache'\n"," }\n"," }\n"," // other plugins\n","];","This plugin needs to be a "," plugin because the goal is to reduce the in-memory\n","filesystem size."]},{"title":"PagesWithoutFileExtPlugin","route":"/mosaic/configure/plugins/pages-wthout-extensions-plugin","content":["The "," plugin creates ","aliases"," without the file extension for every page in the Mosaic filesystem.\n","This allows pages to be retrieved from the filesystem without specifying the extension e.g., ",".","The plugin also modifies the "," metadata property of a page to point to the shorter alias.","Priority","This plugin runs with a priority of 1. ","It must run after the ","$AliasPlugin",".","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/PagesWithoutFileExtPlugin',\n"," options: {},\n"," priority: 1\n"," }\n"," // other plugins\n","];"]},{"title":"PublicAssetsPlugin","route":"/mosaic/configure/plugins/public-assets-plugin","content":["The "," is responsible for finding \"assets\" in the Mosaic filesystem and copying them to another directory.","Typical usecase is for copying "," and "," to the public directory of a Next.js site as these are considered ","static assets"," for Next.js.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| --------- | ----------------------------------------------------------- |\n","| outputDir | The directory to copy the assets to. ","Defaults to "," |\n","| assets | A collection of filenames to copy to the outputDir |","Adding to Mosaic","This plugin is ","not"," included in the mosaic config shipped by the Mosaic standard generator so it must be added manually to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/PublicAssetsPlugin',\n"," priority: -1,\n"," options: {\n"," outputDir: './public',\n"," assets: ['sitemap.xml', 'search-data.json']\n"," }\n"," }\n"," // other plugins\n","];"]},{"title":"ReadingTimePlugin","route":"/mosaic/configure/plugins/reading-time-plugin","content":["The "," generates an estimation of how long a page written in MDX will take to read and adds the "," property to the metadata of a page.","Priority","This plugin runs with no special priority.","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/ReadingTimePlugin',\n"," options: {}\n"," }\n"," // other plugins\n","];"]},{"title":"$RefPlugin","route":"/mosaic/configure/plugins/ref-plugin","content":["The "," powers the ","refs"," feature of Mosaic.","The plugin scrapes "," properties from page metadata and also applies all refs stored in ",".","Other plugins can use "," to apply new refs, as long as they call it before this plugin has reaches ",".","Priority","This plugin runs with a priority of -1 so it runs ","after"," most other plugins."]},{"title":"SearchIndexPlugin","route":"/mosaic/configure/plugins/search-index-plugin","content":["The "," is responsible for generating the search index and configuration information for ","Fuse.js"," which is the matching engine powering the client-side search functionality of Mosaic sites.","It outputs 3 files:","Full Search Index - ","Condensed Search Index - ","Search Configuration - ","Full Search Index","On a Mosaic site, the full index is fetched after a page has loaded, thus removing the chance of a huge index slowing down first-load.","Practically, the full index should load in the background before a user searches for something, but should a search be initiated before that (e.g., slow-internet) then the condensed version of the search index is available.","Condensed Search Data","Search Index plugin creates a \"condensed\" version of the search index that only includes the "," and "," for each page. ","This is the \"Minimum Viable Index\" to provide somewhat useable search results client-side while the main search index is loaded in the background.","Search Configuration","Any ","options"," that need to be passed to Fuse.js.","Search relevancy configuration","| Property | Description |\n","| ---------------- | ----------------------------------------------------- |\n","| includeScore | https://www.fusejs.io/api/options.html#includescore |\n","| includeMatches | https://www.fusejs.io/api/options.html#includematches |\n","| maxPatternLength | TODO |\n","| ignoreLocation | https://www.fusejs.io/api/options.html#ignorelocation |\n","| threshold | https://www.fusejs.io/api/options.html#threshold |\n","| keys | https://www.fusejs.io/api/options.html#keys |","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| ------------- | --------------------------------------------------- |\n","| maxLineLength | TODO |\n","| maxLineCount | TODO |\n","| keys | https://www.fusejs.io/api/options.html#keys |\n","| relevancy | ","search relevancy"," |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SearchIndexPlugin',\n"," previewDisabled: true,\n"," options: { maxLineLength: 240, maxLineCount: 240 }\n"," }\n"," // other plugins\n","];","It's usually a good idea to mark this plugin as disabled for preview sources otherwise the pages\n","from the preview will appear in search results."]},{"title":"SharedConfigPlugin","route":"/mosaic/configure/plugins/shared-config-plugin","content":["The "," crawls the page hierarchy to find the closest "," metadata from any parent index's page metadata. ","It then exports a JSON file into each directory with the merged config for that level.","Shared config is typically the place where the following is configured for a Mosaic site:","App Header configuration including site name and main navigation","Footer information","Help links for the left sidebar area","Namespace Shared Configs","Consider 2 sources the share the same ","namespace"," \"product-docs\":","Source A - multiple product directories and main product index page. ","The index page specifies "," metadata.","Source B - pages relevant to a single product. ","Index page does ","not"," have any "," metadata.","Let's also assume that the pages from Source B would also naturally \"fit\" within the pages of Source B (e.g. inside a products directory).","In this scenario, the "," will attempt to copy the shared config file from Source A into the root directory of Source B allowing the Source B pages to use the Source A "," as though it were a product sourced directly from Source A.","Priority","This plugin runs with a priority of 3.","Options","| Property | Description |\n","| -------- | ---------------------------------------------- |\n","| filename | the name of the JSON file output by the plugin |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SharedConfigPlugin',\n"," options: {\n"," filename: 'shared-config.json'\n"," },\n"," priority: 3\n"," }\n"," // other plugins\n","];"]},{"title":"SidebarPlugin","route":"/mosaic/configure/plugins/sidebar-plugin","content":["The "," generates the necessary page metadata needed for the vertical navigation shown on some Mosaic pages.","The output from the plugin is added to a "," metadata property of the page.","Configuration","The "," is used to determine the \"root\" directories of the sidebar. ","So for example:"," - generate sidebar data for the pages that are 3 directories deep in the filesystem hierarchy"," - same as above but ignore the product-a directory"," - generate a sidebar just for product-b in the products directory","To rearrange pages in the sidebar or to apply a different label to a page you can specify the following in the page frontmatter:","| Property | Description |\n","| ---------------- | ----------------------------------------------------------------------------------------- |\n","| sidebar.label | the name of the page to use in the sidebar. ","Defaults to the page title |\n","| sidebar.priority | pages are ordered in the sidebar by priority high → low. ","Default is alphabetical ordering |","Priority","This plugin runs with a priority of 3.","Options","| Property | Description |\n","| ----------- | ----------------------------------------------------------------------------- |\n","| filename | filename of the sidebar json, linked to each related page via ref |\n","| rootDirGlob | Glob pattern for matching directories which should be the root of the sidebar |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: { rootDirGlob: '*/*/*' }\n"," }\n"," // other plugins\n","];"]},{"title":"SiteMapPlugin","route":"/mosaic/configure/plugins/site-map-plugin","content":["The "," generates a ","sitemap"," using the pages in the Mosaic filesystem that adheres to the ","sitemaps XML schema",".","The output of the plugin is a file is named ",".","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| -------- | --------------------------------------------------------------------------------------------------- |\n","| siteUrl | The site URL. ","Used as the prefix for loc entries in the sitemap as these must start with a protocol |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SiteMapPlugin',\n"," previewDisabled: true,\n"," options: { siteUrl: process.env.SITE_URL || 'http://localhost:3000' }\n"," }\n"," // other plugins\n","];"]},{"title":"$TagPlugin","route":"/mosaic/configure/plugins/tag-plugin","content":["The "," powers the tags feature of Mosaic.","This plugin scrapes "," from page metadata and also applies all aliases stored in ",".","Tags ultimately resolve down into ","refs",", but are different from normal refs, in that they are applied to the\n","union filesystem (all merged filesystems), not to the individual source filesystem that they were defined on. ","This can be thought of as a ","global ref",".","Other plugins can use "," and modify the "," property, to apply new global refs, as long as\n","they do so before this plugin has reaches ",".","Priority","This plugin runs with no special priority but it must run before both the "," and the ",".","Example use case - Products Page","Let's assume there is a products page on your site and each product is shown as a tile. ","The information for each product tile is sourced from multiple Mosaic sources. ","How can tags be used to reference the product data needed for each tile on the products page?","The product page should add a "," metadata prop to its frontmatter:","---\n","title: Products\n","description: Product index\n","layout: ProductPreview\n","data:\n"," items:\n"," $tag: product#/data\n","---","The tag shown in the example above is saying populate "," of the Products index page with the "," metadata property of pages tagged with ",".","A tagged product page needs to have a "," property which is a collection of tags and one of these needs to be ",". ","This will allow the "," to correctly associate the product page to the product index page. ","It will also need a "," property because thats the property our product index page wants to use for the tiles.","---\n","title: Product A\n","description: My Product description\n","layout: ProductDiscover\n","tags:\n"," - product\n","data:\n"," name:\n"," $ref: '#/title'\n"," date: 2023/02/07\n"," action: Product Overview\n"," description:\n"," $ref: '#/description'\n"," link: /products/a/index\n","---","---\n","title: Product B\n","description: My Product description\n","layout: ProductDiscover\n","tags:\n"," - product\n","data:\n"," name:\n"," $ref: '#/title'\n"," date: 2023/02/07\n"," action: Product Overview\n"," description:\n"," $ref: '#/description'\n"," link: /products/b/index\n","---"]},{"title":"TableOfContentsPlugin","route":"/mosaic/configure/plugins/toc-plugin","content":["The "," generates a Table of Contents for each page in the Mosaic filesystem using the headings on the page.","Heading ranks are used to determine which page headings should be included in the Table of Contents:","| Heading Element (markdown syntax) | Rank |\n","| --------------------------------- | ---- |\n","| h1 (#) | 1 |\n","| h2 (##) | 2 |\n","| h3 (###) | 3 |\n","| h4 (####) | 4 |\n","| h5 (#####) | 5 |\n","| h6 (######) | 6 |","The plugin output is added to a "," metadata property of a page.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| -------- | ----------------------------- |\n","| minRank | The minimum page heading rank |\n","| maxRank | The maximum page heading rank |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/TableOfContentsPlugin',\n"," options: {\n"," minRank: 2,\n"," maxRank: 3\n"," }\n"," }\n"," // other plugins\n","];"]},{"title":"Git Repo Source","route":"/mosaic/configure/sources/git-repo-source","content":["The Git Repo Source is used to pull content from a remote git repository e.g. github.","Installation","Credentials and Access tokens","To successfully clone the git repo, the source definition must include credentials that have sufficient permissions to clone the repository.","We recommend storing a ","personal access token"," in an environment variable and using the environment variable in the source definition.","This keeps credentials out of code where they may be accidentally exposed to third parties.","Example","export MOSAIC_DOCS_CLONE_CREDENTIALS=\":\",","Configuration","| Property | Description | Required |\n","| ------------------- | -------------------------------------------------------------------------------- | -------- |\n","| modulePath | The path to the installed module (@jpmorganchase/mosaic-source-git-repo) | Yes |\n","| namespace | The scope for this source. ","| Yes |\n","| disabled | When true, content from this source is not used | No |\n","| options.credentials | Collection of URLS to make requests | Yes |\n","| options.prefixDir | The root path used in the content URL | Yes |\n","| options.subfolder | The name of the folder within the cloned repo containing the docs | Yes |\n","| options.repo | The repo URL | Yes |\n","| options.branch | The branch or tag to clone | Yes |\n","| options.extensions | Collection of file extensions that the source will look for inside the subfolder | Yes |\n","| options.remote | The name of the git remote to use. ","Defaults to origin. ","| Yes |","Example Git Repo Source Definition","\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-git-repo',\n"," namespace: 'mosaic',\n"," options: {\n"," credentials: process.env.MOSAIC_DOCS_CLONE_CREDENTIALS,\n"," prefixDir: 'mosaic',\n"," subfolder: 'docs',\n"," repo: 'https://github.com/jpmorganchase/mosaic.git',\n"," branch: 'main',\n"," extensions: ['.mdx'],\n"," remote: 'origin'\n"," }\n"," }\n"]},{"title":"HTTP Source","route":"/mosaic/configure/sources/http-source","content":["The HTTP Source is used to pull content over HTTP.","Multiple endpoints can be specified and the source will combine and transform the response from each into a single collection of pages.","Installation","Configuration","| Property | Description | Required |\n","| ------------------------------------------ | ----------------------------------------------------------------------------- | -------- |\n","| modulePath | The path to the installed module (@jpmorganchase/mosaic-source-http) | Yes |\n","| namespace | The scope for this source | Yes |\n","| disabled | When true, content from this source is not used | No |\n","| options.endpoints | Collection of URLS to make requests | Yes |\n","| options.prefixDir | The root path used in the content URL | Yes |\n","| options.transformResponseToPagesModulePath | The path of the module used to transform endpoint responses into Mosaic pages | Yes |\n","| options.checkIntervalMins | Number of minutes to wait between requests. ","Defaults to 5 minutes | No |\n","| options.initialDelayMs | Number of milliseconds to wait for making initial request. ","Defaults to 1000 | No |","Example HTTP Source Definition"," {\n"," modulePath: '@jpmorganchase/mosaic-source-http',\n"," namespace: 'my-namespace',\n"," options: {\n"," prefixDir: 'docs',\n"," endpoints: [\n"," 'https://api.data.com/blah',\n"," 'https://api.data.com/hello'\n"," ],\n"," transformResponseToPagesModulePath: '@scope/transformer-package'\n"," }\n"," }"]},{"title":"Sources","route":"/mosaic/configure/sources/index","content":["Sources are what Mosaic uses to pull content from disparte locations and merge into a single virtual filesystem that can be used by a Mosaic Site.","Depending on the ","mode"," used, sources can update periodically ensuring that new content is made available automatically.","Source Definitions","Source Definitions are specified in the "," collection of a mosaic config file.","Each source uses a ","zod schema"," to validate the provided JSON to ensure that all required information for the source to pull content has been provided.","A source definition at a minimum needs to provide the module path of the source and the ","namespace"," that it will use. ","A namespace is not unique across sources though it is common that each source has a different namespace.","Lastly, the options field can be used as a bucket for configuration values needed to configure the source e.g. credentials.","Users are free to add any property as a source option but please read the ","gotchas","\n","first regarding the allowed ","values",".","Example Local Folder Source Definition"," /**\n"," * Demonstrates a local file-system source, in this case a relative path to where the\n"," * site was generated.\n"," * Access from your browser as http://localhost:3000/local\n"," */\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-local-folder',\n"," namespace: 'local', // each site has it's own namespace, think of this as your content's uid\n"," options: {\n"," rootDir: '..","/../docs', // relative path to content\n"," prefixDir: 'local', // root path used for namespace\n"," extensions: ['.mdx'] // extensions of content which should be pulled\n"," }\n"," }","Source Namespace","A Source Namespace is a scoping mechanism for Mosaic sources used to filter the content loaded by Mosaic. ","By default all sources specified in the mosaic config file are loaded.","sources: [\n"," {\n"," namespace: 'my-namespace',\n"," modulePath: '@jpmorganchase/mosaic-source-local-folder'\n"," }\n","];","The following command will ensure mosaic only loads sources with the "," scope.","yarn mosaic serve -c ''./mosaic.config.mjs' -p 8080 --scope \"local\"","Source Schedules","Source schedules define how often sources pull in content that exists remotely and if a failed source is retried. ","More information can be found ","here","Source Types","Out of the box, Mosaic provides 3 source \"types\":","Local Folder","Git Repo Source","HTTP Source","Sources must expose an observable interface so it is possible to compose sources together e.g. the Git Repo source uses the Local Folder source internally to watch the cloned folder for changes.","Watching for Updates","When running in ","active mode",", Mosaic will watch for any changes to the source content and if a change is detected, will initiate a pull of that new content.","How often to check for updates and how updates are triggered are a matter for the source to handle. ","Mosaic simply responds when a source emits new content.","Source Worker Thread","Sources are executed inside their own worker thread to ensure that the main thread is not overloaded. ","It is here that a local virtual filesystem for the source is created and where several of the ","Plugin Lifecycle"," events are triggered.","Gotchas","A service worker thread uses ","postMessage"," to communicate with the main thread and vice-versa.","This is important because it limits what values can be provided in the source definition to those that can be processed by the ","Structured Clone Algorithm","."]},{"title":"Local Folder Source","route":"/mosaic/configure/sources/local-folder-source","content":["The Local Folder Source is used to pull content from a folder located on the same machine as Mosaic is running.","It is common to use this source when running mosaic locally.","Installation","Configuration","| Property | Description | Required |\n","| ------------------ | ------------------------------------------------------------------------------ | -------- |\n","| modulePath | The path to the installed module (@jpmorganchase/mosaic-source-local-folder) | Yes |\n","| namespace | The scope for this source | Yes |\n","| disabled | When true, content from this source is not used | No |\n","| options.rootDir | The top level directory content will be pulled from | Yes |\n","| options.prefixDir | The root path used in the content URL | Yes |\n","| options.extensions | Collection of file extensions that the source will look for inside the rootDir | Yes |","Example Local Folder Source Definition","{\n"," modulePath: '@jpmorganchase/mosaic-source-local-folder',\n"," namespace: 'local', // each site has it's own namespace, think of this as your content's uid\n"," options: {\n"," rootDir: '..","/../docs', // relative path to content\n"," prefixDir: 'local', // root path used for namespace\n"," extensions: ['.mdx'] // extensions of content which should be pulled\n"," }\n","}","This source will look for content with the \".mdx\" extension in a \"docs\" directory 2 levels up from the Mosaic working directory. ","That content is included in the \"local\" namespace and available from a route that is prefixed with \"local\".","So if you had a file, "," then you would be able to view it at ","."]},{"title":"Source Schedules","route":"/mosaic/configure/sources/schedules","content":["A source schedule defines how often a source initiates a content pull and what to do when their is a failure.","A schedule can be specified for each source in the source definition, but should a source not provide a schedule it will inherit the \"global\" schedule.","Configuration","| Property | Description | Required | Default |\n","| ----------------- | -------------------------------------------------------------------------------------- | -------- | ------- |\n","| checkIntervalMins | The length of time in minutes before triggering a content refresh | Yes | 30 mins |\n","| initialDelayMs | Startup delay for the source. ","| Yes | 1000 ms |\n","| retryEnabled | When true, failures will trigger another content pull | No | true |\n","| retryDelayMins | The interval between retries. ","This will rise exponentially on every failure. ","| No | 5 |\n","| maxRetries | Maximum number of retry attempts | No | 100 |\n","| resetOnSuccess | If true, when a source recovers and emits pages it's retry counter is returned to zero | No | true |","Global Schedule","The global schedule applies to all sources that do ","not"," provide their own schedule. ","It can be configured as a top-level property of the Mosaic config file."," schedule: {\n"," checkIntervalMins: 60,\n"," initialDelayMs: 1000,\n"," retryDelayMins: 15,\n"," maxRetries: 20\n"," }","Example","Given the config file below:"," schedule: {\n"," checkIntervalMins: 30,\n"," initialDelayMs: 1000,\n"," retryDelayMins: 5,\n"," maxRetries: 10\n"," },\n"," sources: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-git-repo',\n"," namespace: 'sourceA',\n"," options: {\n"," credentials: 'credentials',\n"," prefixDir: 'sourceA',\n"," subfolder: 'docs',\n"," repo: 'source-a-repo-url',\n"," branch: 'develop',\n"," extensions: ['.mdx'],\n"," remote: 'origin'\n"," }\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-git-repo',\n"," namespace: 'sourceB',\n"," schedule:{\n"," checkIntervalMins: 60,\n"," initialDelayMs: 5000,\n"," retryDelayMins: 30,\n"," maxRetries: 50\n"," }\n"," options: {\n"," credentials: 'credentials',\n"," prefixDir: 'sourceB',\n"," subfolder: 'docs',\n"," repo: 'source-b-repo-url',\n"," branch: 'develop',\n"," extensions: ['.mdx'],\n"," remote: 'origin'\n"," }\n"," }\n"," ]","Source A will inherit the global schedule so it will:","Start after a 1 second delay","Pull content every 30 minutes","Retry a failed content pull after an initial 5 minute delay","Retry 10 times and if still unsuccessful, closing","Source B has its own schedule so it will:","Start after a 5 second delay","Pull content every 60 minutes","Retry a failed content pull after an initial 30 minute delay","Retry 50 times and if still unsuccessful, closing","Retry Strategy","The retry strategy that Mosaic employs is ","Exponential Backoff",". ","This is a common strategy for networking applications that aims to prevent retries from causing more harm than good.","For example, given a source schedule that has a 1 minute retry delay and will retry a maximum of 3 times then the total time spent retrying is 7 minutes:","1 minute delay then 1st retry","2 minute delay then 2nd retry","4 minute delay then 3rd (and final) retry","Total delay: 1 + 2 + 4 = 7 minutes","As you can see, the delay between retries is growing exponentially giving the content source more time to recover after each retry."]},{"title":"Custom Components","route":"/mosaic/configure/theme/custom-components","content":["Learn how to add your own custom components to your Mosaic site.","Create Components Folder","To start, create a "," folder under "," where you'll store your custom components.","src/\n","└── components/","In this tutorial, we will create a custom "," component.","Create Card Component","Inside the "," folder, create a "," folder, which will contain your React "," component. ","The "," folder should include "," and "," files as shown in the structure below:","├── src/\n","│ ├── components/\n","│ │ └── card/\n","│ │ ├── index.tsx\n","│ │ └── card.module.css","Card Component: index.tsx","Create your "," component within the "," file:","import React from 'react';\n","import styles from './card.module.css';\n","\n","type CardProps = {\n"," title: string;\n"," content: string;\n","};\n","\n","export const Card: React.FC = ({ title, content }) => {\n"," return (\n","
\n","

{title}

\n","

{content}

\n","
\n"," );\n","};","Card Component: card.module.css","Define your component styles in the "," file:",".card {\n"," background-color: #f5f5f5;\n"," border: 1px solid #ccc;\n"," border-radius: 4px;\n"," box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n"," padding: 16px;\n"," transition: box-shadow 0.2s ease-in-out;\n","}\n","\n",".card:hover {\n"," box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n","}\n","\n",".card h2 {\n"," color: #333;\n"," font-size: 24px;\n"," margin-bottom: 8px;\n","}\n","\n",".card p {\n"," color: #666;\n"," font-size: 16px;\n"," line-height: 1.5;\n","}","In this example, we use a CSS file, but you can use whichever styling approach you prefer, such as ","vanilla extract",".","To export your "," component, create an "," file in the "," folder:","export * from './card';","Your final folder structure should look like this:","├── src/\n","│ ├── components/\n","│ │ ├── card/\n","│ │ │ ├── index.tsx\n","│ │ │ └── card.module.css\n","│ │ ├── index.ts","Import Custom Card Component","To use your custom "," component, import it into your site's "," file. ","Add the following line to your imports:","import * as myComponents from '../components';","Replace this line:","const components = mosaicComponents;","with:","const components = {\n"," ...mosaicComponents,\n"," ...myComponents\n","};","This will add your custom components to the site, and any custom components in "," will override the corresponding ones in ",". ","The spread operator (",") merges both "," and "," objects, giving priority to "," when there is a naming conflict.","Use Your Custom Card Component","Now you're ready to use your custom "," component. ","Build and run your site, and add the "," component to an MDX file in your "," folder or another source:","","You can create and add more custom components to your Mosaic site by following the same process."]},{"title":"Custom CSS","route":"/mosaic/configure/theme/custom-css","content":["You can customize the look and feel of your Mosaic site by creating cusotm CSS files. ","Here is a step-by-step guide to help you create your own CSS theme.","Create a CSS folder","To get started, create a folder named \"css\" in the \"src\" folder of your Mosaic project.","src/\n","└── css/","Create your theme","Inside the \"css\" folder, create a folder named \"global\". ","This is where you will add your custom styles.","src/\n","└── css/\n"," ├── global/\n"," ├── index.css","Create an \"index.css\" file inside the \"css\" folder. ","This file will import your custom styles.","@import './global/';","Inside your global folder, create a separate CSS file for each part of your site that you want to customize. ","For instance, if you want to change the text styling, create a \"text.css\" file inside the \"global\" folder. ","Here is an example of how your \"text.css\" file could look like:","h1 {\n"," /* Set custom font size and weight */\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h2 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h3 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h4 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h5 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h6 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","p {\n"," font-size: /* insert value */ ;\n"," line-height: /* insert value */ ;\n","}","You can add as many CSS files as you need, depending on how much you want to customize your site.","Create an \"index.css\" file inside the \"global\" folder. ","This file will import your custom styles, in this example we are importing our \"text.css\" file.","@import './text.css';","Your \"css\" folder should now look like this:","src/\n","└── css/\n"," ├── global/\n"," │ ├── text.css\n"," │ ├── index.css\n"," ├── index.css","Import your custom CSS into your site","To apply your custom styles to your Mosaic site, open your \"_app.tsx\" file and add the following line to the bottom of your imports:","import '../css/index.css';","Congratulations! ","You have successfully applied your custom CSS styles to your site. ","This example demonstrated how to create text styles, but you can use the same approach to customize other aspects of your site as well."]},{"title":"Theming Your Site","route":"/mosaic/configure/theme/index","content":["Create a unique look and feel for your Mosaic site by customizing the CSS theme and integrating your own UI components.","Customize the CSS","Adapt various design elements of your Mosaic site to create a cohesive visual theme. ","Refer to our guide to learn more about crafting a custom CSS theme:","CSS Theme Guide","Import Custom Components","Incorporate your own UI components, to tailor the look and functionality of your content. ","This tutorial will walk you through the process of adding custom components to your site:","Adding Custom Components Tutorial"]},{"title":"Aliases Test","route":"/mosaic/test/aliases/index","content":["This page is the alias test page."]},{"title":"Detail Highlight Test Page","route":"/mosaic/test/layouts/detail-highlight","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Detail Overview Test Page","route":"/mosaic/test/layouts/detail-overview","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Detail Technical Test Page","route":"/mosaic/test/layouts/detail-technical","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Edit Layout","route":"/mosaic/test/layouts/edit","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Full Width Layout","route":"/mosaic/test/layouts/full-width","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Layouts","route":"/mosaic/test/layouts/index","content":["Pages for e2e testing of layouts."]},{"title":"Landing Layout Test Page","route":"/mosaic/test/layouts/landing","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Newsletter Test Page","route":"/mosaic/test/layouts/newsletter","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Product Discover Test Page","route":"/mosaic/test/layouts/product-discover","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Product Preview Test Page","route":"/mosaic/test/layouts/product-preview","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Refs Data","route":"/mosaic/test/refs/data","content":[]},{"title":"Refs Test","route":"/mosaic/test/refs/index","content":["The sidebar priority is ",".","The other page data is ","."]},{"title":"$afterSource","route":"/mosaic/configure/plugins/lifecycle/after-source","content":["The first lifecycle event to trigger after receiving pages from a source and runs in a child process.\n","The pages can safely be mutated and will be reflected in the final filesystem that gets generated.\n","It ","must"," return a collection of pages.","The "," lifecycle event is called with:","pages - the collection of pages emitted by the source","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | A mutable object for sharing data with other lifecycle phases of all plugins for this source (including in the main thread) in this plugin |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |","Example - Log out all page routes","async function $afterSource(pages, { config, ignorePages, pageExtensions }) {\n"," for (const page of pages) {\n"," console.log(page.route);\n"," }\n"," return pages;\n","}"]},{"title":"afterUpdate","route":"/mosaic/configure/plugins/lifecycle/after-update","content":["The third lifecycle event to trigger overall and the first to trigger inside the main Mosaic process.","Calls after the filesystem and symlinks have been reconstructed due to a change to the current source pages. ","Pages will ","not"," be cached when read at this stage, to allow for reading content and writing a new copy of it without the cached version taking effect.\n","This method is safe to use with lazy loading, as the filesystem should return the full page when read.","The "," lifecycle event is called with:","mutableFilesystem - Mutable filesystem instance with all of this source's pages inside (and symlinks re-applied)","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | An immutable object for reading data from other lifecycle phases of all plugins for this source in the child process for this plugin. ","Shared only with this source. ","|\n","| globalConfig | An immutable object for reading data from other lifecycle phases of all plugins. ","Shared across all sources. ","|\n","| sharedFilesystem | Mutable filesystem instance independent of any sources. ","Useful for global pages, like sitemaps |\n","| globalFilesystem | Immutable union filesystem instance with all source's pages (and symlinks applied) |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]},{"title":"$beforeSend","route":"/mosaic/configure/plugins/lifecycle/before-send","content":["The second lifecycle event to trigger and does so after a filesystem has been built up from the source pages.","It is the last lifecycle event to run in a source child process before the filesystem is sent to the main Mosaic process and should ","not"," return a value.","The "," lifecycle event is called with:","mutableFilesystem - Mutable virtual filesystem instance with all of this source's pages inside (and symlinks applied)","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | A mutable object for sharing data with other lifecycle phases of all plugins for this source (including in the main thread) in this plugin |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]},{"title":"Lifecycle Events","route":"/mosaic/configure/plugins/lifecycle/index","content":["Plugin lifecycle","The plugin lifecycle is triggered when a source emits content.","Each Mosaic source has its own worker thread and plugin lifecycle events that start with a "," will execute inside the worker thread.\n","All other lifecycle events will execute in the main Mosaic process.","The 5 lifecycle events are:","$afterSource","$beforeSend","afterUpdate","shouldClearCache","shouldUpdateNamespaceSources","Plugin methods that trigger inside the main thread should be asynchronous and highly optimised to\n","avoid holding up the main thread."]},{"title":"shouldClearCache","route":"/mosaic/configure/plugins/lifecycle/should-clear-cache","content":["The fourth lifecycle event to trigger overall and the second to trigger inside the main Mosaic process.","It is called every time ","any"," source emits new pages and should return a boolean to indicate if ","other"," sources should clear their cache in response to the source updating.","Only sources that have already run "," will call this lifecycle hook since there is no\n","cache to clear if they haven't reached that stage in the lifecycle.","The "," lifecycle event is called with:","updatedSourceFilesystem - Immutable filesystem for the source that changed i.e, not the source filesystem","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | An immutable object for reading data from other lifecycle phases of all plugins for this source in the child process for this plugin. ","Shared only with this source. ","|\n","| globalFilesystem | Immutable union filesystem instance with all source's pages (and symlinks applied) |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]},{"title":"shouldUpdateNamespaceSources","route":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources","content":["The fifth lifecycle event to trigger overall and the third to trigger inside the main Mosaic process.","It is called every time ","any"," source emits new pages and should return a boolean to indicate if ","other sources that share the same ","source namespace"," should re-run ",".","The "," lifecycle event is called with:","updatedSourceFilesystem - Immutable filesystem for the source that changed i.e, not the source filesystem","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | An immutable object for reading data from other lifecycle phases of all plugins for this source in the child process for this plugin. ","Shared only with this source. ","|\n","| globalFilesystem | Immutable union filesystem instance with all source's pages (and symlinks applied) |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]}] \ No newline at end of file +[{"title":"Mosaic","route":"/mosaic/index","content":["True to its name, Mosaic brings together several concepts—including content, design and technical infrastructure—to deliver a unified website experience that is truly greater than the sum of its individual parts.","With Mosaic, you can:","Don't move your content where it does not belong. ","Compose content from remote data sources which\n","are pulled at runtime by our content aggregator.","Visualize your content with your own theme, layouts and components or use the Mosaic Design\n","language.","Extend the existing code and add your own content source types through our simple plugin\n","architecture.","Publish your content through Server Side Rendering (SSR) or generate a snapshot of your content\n","and serve it as a Statically Generated Site (SGS).","Creating a website has never been so easy!"]},{"title":"Aliases","route":"/mosaic/author/aliases","content":["Aliases are virtual 'symlinks' of pages, allowing one page to take on one or more other routes.\n","This is not the same as copying the page, it is a primitive filesystem link which is resolved by Mosaic.","Use Cases","Aliases are great for linking to an old route if you've moved a page to a new place.\n","They can also be used to create short hand links to pages or to 'clone' a copy of a page into\n","another section of the site where it may be relevant.","Example","This is the frontmatter for this page:","---\n","title: Aliases\n","layout: DetailTechnical\n","aliases:\n"," - /mosaic/example/aliases\n","---","Try accessing this page from ","/mosaic/example/aliases"]},{"title":"Fragments","route":"/mosaic/author/fragments","content":["Fragments, also known as content fragments, are powerful tools that allow you to incorporate content from other pages into your documentation. ","By creating an MDX file and using the ","generic directives"," syntax ",", you can easily render the fragment in another file, providing modularity and reusability to your content.","Use Cases","Fragments offer various use cases, such as:","Consistent Content",": Use fragments to maintain consistent content across multiple pages. ","For instance, if you have a table or a tile that appears on multiple pages, you can create a fragment for it and include it in all relevant files. ","This ensures that any updates made to the fragment automatically reflect across the entire documentation.","Reusable Components",": Fragments enable the creation of reusable components or sections. ","You can define a complex or commonly used section once and then include it in multiple pages as needed. ","This approach saves time and effort, as you only need to update the fragment file to propagate changes throughout your documentation.","Modular Documentation",": With fragments, you can break down your documentation into smaller, manageable pieces. ","Each fragment represents a specific topic or section, allowing you to organize and structure your content more efficiently. ","This modular approach simplifies maintenance and makes it easier to navigate and update your documentation.","Usage","Firstly, enable the Fragment Plugin by adding the following to your plugins in ",".","{\n"," modulePath: '@jpmorganchase/mosaic-plugins/FragmentPlugin',\n"," options: {}\n","}","To include a fragment in your content, follow these steps:","Create an MDX file for the fragment you want to reuse. ","Remember to set the sidebar property of your fragment's frontmatter to exclude: true if you don't want the fragment to appear in the vertical navigation menu.","---\n","title: Fragment Title\n","sidebar:\n"," exclude: true\n","---","In the target file where you want to include the fragment, use the remark directive syntax ",".","Markdown Content Example","This is the contents of a fragment located at ",":","---\n","title: Content Fragment\n","sidebar:\n"," exclude: true\n","---\n","\n","#### Fragment Title\n","\n","This is an example fragment of markdown content, being pulled from `../fragments/content-fragment.mdx`.\n","The below code snippet will render the content from the content-fragment.mdx file in your target file:",":fragment{src=\"../fragments/content-fragment.mdx\"}","Example output:",":fragment","Component Example","Here is another example, where the fragment files each contain a "," component.",":fragment{src=\"../fragments/tile-a.mdx\"} :fragment{src=\"../fragments/tile-b.mdx\"}","The above code will render the content from tile-a.mdx and tile-b.mdx files, demonstrated below:",":fragment"," :fragment"]},{"title":"Frontmatter","route":"/mosaic/author/frontmatter","content":["Frontmatter",", also known as page metadata, is a powerful feature that allows easy configuration of a page and Mosaic site components e.g. the sidebar.","Frontmatter is written in yaml syntax and is found at the top of a page between 2 sets of 3 dashes: ",".","Example page yaml","---\n","title: Page Title\n","layout: DetailTechnical\n","sidebar:\n"," priority: 4\n","---\n","\n","// frontmatter is closed and now comes page content\n","# Page Title\n","\n","This is some content.\n","Accessing Frontmatter in content","With the syntax below it is possible to directly reference frontmatter inside content using curly brackets and the "," object.","You can think of "," as a JSON object that holds all the frontmatter of a page and when the Mosaic "," encounters the curly brackets then the value in the frontmatter will be resolved.","{meta.title}\n","{meta.description}\n","{meta.someValueYouHaveAddedToTheFrontmatter}","This is very common to see Mosaic pages that reference the title as shown below:","---\n","title: Title\n","---\n","\n","# {meta.title}","Plugins & Frontmatter","Mosaic plugins can also embed their output into page frontmatter in 2 different ways:","a property is directly added to the page object","a JSON file is generated and referenced using a ","ref","Adding a property to the page","A plugin can add a property to a page simply by extending the page object it receives in the "," lifecycle event:","async function $afterSource(pages) {\n"," for (const page of pages) {\n"," page.newProperty = 'Hello'\n"," }\n"," return pages;\n","}","You could use this property in the page content using ","JSON File","Let's take a look at the ",".","The purpose of this plugin is to crawl the page hierarchy to find the closest "," found in any parent page's frontmatter.","Finds all index pages among the source docs","Deserialises those pages so it can read the frontmatter and content of the page","If a property called "," in the page frontmatter is found a new file named shared-config.json is created","Adds a ref named "," to the shared config file that points to the shared config of the index page","import type { Page, Plugin as PluginType } from '@jpmorganchase/mosaic-types';\n","import { flatten } from 'lodash-es';\n","import path from 'path';\n","\n","function createFileGlob(url, pageExtensions) {\n","if (pageExtensions.length === 1) {\n","return `${url}${pageExtensions[0]}`;\n","}\n","return `${url}{${pageExtensions.join(',')}}`;\n","}\n","\n","interface SharedConfigPluginPage extends Page {\n","sharedConfig?: string;\n","}\n","\n","interface SharedConfigPluginOptions {\n","filename: string;\n","}\n","\n","const SharedConfigPlugin: PluginType = {\n","async $beforeSend(\n"," mutableFilesystem,\n"," { config, serialiser, ignorePages, pageExtensions },\n"," options\n"," ) {\n"," const pagePaths = await mutableFilesystem.promises.glob(\n"," createFileGlob('**/index', pageExtensions),\n"," {\n"," ignore: [options.filename, ...flatten(ignorePages.map(ignore => [ignore, `**/${ignore}`]))],\n","cwd: '/'\n","}\n",");\n","\n"," for (const pagePath of pagePaths) {\n"," const sharedConfigFile = path.join(path.dirname(String(pagePath)), options.filename);\n","\n"," const page = await serialiser.deserialise(\n"," String(pagePath),\n"," await mutableFilesystem.promises.readFile(String(pagePath))\n"," );\n"," if (page.sharedConfig) {\n"," config.setRef(sharedConfigFile, ['config', '$ref'], `${String(pagePath)}#/sharedConfig`);\n"," await mutableFilesystem.promises.writeFile(sharedConfigFile, '{}');\n"," } else {\n"," const baseDir = path.posix.resolve(path.dirname(String(pagePath)), '..","/');\n"," config.setAliases(path.join(baseDir, options.filename), [sharedConfigFile]);\n"," }\n"," }\n","\n","}\n","};\n","\n","export default SharedConfigPlugin;\n"]},{"title":"Author","route":"/mosaic/author/index","content":["Here you will learn how to author documentation using markdown, Mosaic components and page templates"]},{"title":"Markdown Syntax","route":"/mosaic/author/markdown-syntax","content":["Out of the box, Mosaic supports documents written in ","MDX"," which allows React components to be embedded within the ","basic syntax"," outlined in the original Markdown design document.","In addition to the basic markdown syntax, the MDX processor used by Mosaic has been configured to support additional markdown syntax and features:","GitHub flavored markdown (gfm)","Frontmatter","Mosaic Standard Components","All components that comprise the "," export from "," package are available to use out of the box in your documents.","This includes components for all standard markdown syntax and additional components like "," and ",".","Referencing Frontmatter","Frontmatter values into the page using the "," object. ","See ","frontmatter"," for more information.","Configuring Supported components","TODO"]},{"title":"Page Templates","route":"/mosaic/author/page-templates","content":["Todo..."]},{"title":"Refs","route":"/mosaic/author/refs","content":["Refs are a very powerful feature of Mosaic documents that use ","JSON References"," to reference\n","a property from the page frontmatter or frontmatter of other pages.","The key concept is that of a JSON pointer which takes the form ","A","#","B"," where:","A"," is the relative path from the current schema to a target schema. ","If A is empty, the reference is to a type or property in the same schema, an in-schema reference. ","Otherwise, the reference is to a different schema, a cross-schema reference.","B"," is the complete path from the root of the schema to a type or property in the schema. ","If # in not included or B is empty, the reference is to an entire schema.","To translate this for our purposes:","A"," is the relative path to a file in the filesystem.","B"," is the path to a property in the frontmatter of the file.","It's probably better explained with examples...","Local refs (In-schema reference)","It is possible to reference a page's own frontmatter to avoid duplication:","---\n","title: Refs\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," sidebarPriority:\n"," $ref: '#/sidebar/priority'\n","---","This page you are reading right now has a sidebar priority of ",".","The value of "," comes from "," in the frontmatter.","Notice that because we don't specify a path before the "," in the ref we need to put the whole\n","value inside quotes.","Remote Refs (Cross-schema reference)","It is possible to reference frontmatter of other pages. ","Again this helps avoid duplication but the real power is using refs to build the data model. ","See ","advanced"," for more information.","The ","index"," page of the Author section has this frontmatter:","---\n","title: Author\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," exampleRefData: Hello from Author page\n","---","This page you are currently looking at is referencing the "," in it's frontmatter like this:","---\n","title: Refs\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," authorRef:\n"," $ref: ./#/data/exampleRefData\n","---","I can then use the data and embed it in this page like this:","{meta.data.authorRef}","And here it is: ","Notice that we did not need to put "," in the ref since index pages are resolved\n","automatically.","Advanced","You have had a taste of the power and want to know more? ","OK, lets reference and then list out all the mosaic modes:","The Modes ","index"," page has this frontmatter:","---\n","title: Modes of operation\n","layout: DetailTechnical\n","sidebar:\n"," priority: 4\n","data:\n"," modes:\n"," $ref: ./*#/title\n","---","The ref here is essentially using a wildcard (the *) to grab the "," property from the frontmatter of every page in the modes folder.","We can reference that data just like before:","---\n","title: Refs\n","layout: DetailTechnical\n","sidebar:\n"," priority: 3\n","data:\n"," modes:\n"," $ref: ../configure/modes#/data/modes\n","---","Output","With the code below, the referenced data can be embedded in a page.","
    \n"," {meta.data.modes.map(mode => (\n","
  • {mode}
  • \n"," ))}\n","
","Output with Mosaic Components","You can use Mosaic components with referenced data as well. ","Below we are using the "," and "," components.","\n"," {meta.data.modes.map(mode => (\n"," \n"," ))}\n","","Setting Refs using Plugins","Mosaic plugins can create new refs, create new ","global"," refs and see existing refs created by the page or other plugins. ","This is achieved using a special "," property available in the plugin helpers.","Create new refs","Use the "," function from the helpers provided to plugin lifecycle events. ","You need to provide","The file/fullpath to write the ref to","The path to the ptoperty where the ref will be applied","The value of the ref, which can use wildcards","For example, the following would add a property to pages named ",". ","The value is the title of all pages in the ","same"," directory as the current page"," async $afterSource(pages, { config }) {\n"," for (const page of pages) {\n"," config.setRef(page.fullPath, ['titles', '$ref'], `**#/title`);\n"," }\n"," return pages;\n"," }","When setting the property path the last string must be "," otherwise you're not creating a ref\n","that will be resolved by the RefPlugin.","Existing refs","To view refs that already exist you can use ",". ","For example to see all refs for a page:"," config.data.refs[fullPathToPage]","Create global refs","Global refs are similar to regular refs except they do not pre-resolve. ","This means they are resolved when the referenced file is read and the global mosaic filesystem, made up of multiple sources, is used rather than the filesystem of a single source."]},{"title":"UI Components","route":"/mosaic/author/ui-components","content":["Todo..."]},{"title":"Configure","route":"/mosaic/configure/index","content":["Mosaic is a tool which retrieves, formats and combines documentation pages from any number of different external sources (such as GitHub repositories, local disks or REST endpoints), into a single filesystem for you to use in your websites."]},{"title":"Content Fragment","route":"/mosaic/fragments/content-fragment","content":["Fragment Title","This is an example fragment of markdown content, being pulled from ","."]},{"title":"Fragments","route":"/mosaic/fragments/index","content":["This folder contains example fragments that are referenced and rendered in the Fragments docs page."]},{"title":"Tile A","route":"/mosaic/fragments/tile-a","content":[]},{"title":"Tile B","route":"/mosaic/fragments/tile-b","content":[]},{"title":"Create a Site","route":"/mosaic/getting-started/create-a-site","content":["In this guide you will learn how to generate and serve a Mosaic site.","Prerequisites","To begin setting up a Mosaic site, you need to have the following software installed:","Yarn v1","Node.js v18 or higher","Step 1: Generate a Mosaic site","Run the following command in your project directory to generate a new Mosaic site:","npx @jpmorganchase/mosaic-create-site create -o my-sample-site","This command creates a new Mosaic site in the my-sample-site directory.","Next, navigate to the site directory:","cd my-sample-site","Step 2: Serve the site","The example site you have generated comes preconfigured with two ","sources",": a remote repository and a local docs folder. ","Sources are used by Mosaic to pull content from disparate locations and merge them into a single virtual filesystem that can be used by a Mosaic site.","Set up Git credentials","If you want the site to read from remote repositories, you need to set up an environment variable to store your Git credentials. ","Follow these steps:","Open a terminal or command prompt.","Replace "," and "," in the following commands with your actual Git username and personal access token.","On Unix:","export MOSAIC_DOCS_CLONE_CREDENTIALS=\":\"","On Windows:","set MOSAIC_DOCS_CLONE_CREDENTIALS=\":\"","This sets the MOSAIC_DOCS_CLONE_CREDENTIALS environment variable with your Git credentials.","Serve command","Now you can serve your Mosaic site by running the following command:","yarn serve","Access your Mosaic site from a browser using the following URLs:","To browse the content from your local source: http://localhost:3000/local","To browse the content from the Mosaic Git repo source: http://localhost:3000/mosaic","That's it! ","Your Mosaic site is now up and running.","Next Steps:","Deploy your Mosaic site to AWS or Vercel for production use.","Create more pages to expand your site's content.","Configure your own sources in the mosaic.config.mjs file to pull content from different locations.","Theme your site"]},{"title":"Getting Started","route":"/mosaic/getting-started/index","content":["Getting Started with Mosaic","Follow our step-by-step guides to quickly create and deploy your first Mosaic site."]},{"title":"Publish a site to AWS","route":"/mosaic/getting-started/publish-site-to-aws","content":["Publish a site to AWS using S3 snapshots.","Step 1: Generate a Mosaic site","If you have already created your Mosaic site, skip ahead to step 2.","> npx @jpmorganchase/mosaic-create-site -o my-sample-site\n","> cd my-sample-site","Step 2: Create a Github repository","> git init\n","> git remote add origin git@github.com:username/my-sample-site.git\n","> git add .\n","> git commit -m \"initial commit\"\n","> git push origin main","Step 3: Generate a snapshot of content","Consider a snapshot as a directory of static content previously pulled from your content sources, which does not update itself.","> yarn gen:snapshot","Step 4: Configure environment for S3","> export MOSAIC_MODE=\"snapshot-s3\"\n","> export MOSAIC_S3_BUCKET=\"\"\n","> export MOSAIC_S3_REGION=\"\"\n","> export MOSAIC_S3_ACCESS_KEY_ID=\"\"\"\n","> export MOSAIC_S3_SECRET_ACCESS_KEY=\"\"\n","> yarn mosaic upload -S ./snapshots/latest","Step 5: Setup AWS","Switch to the ","AWS Amplify"," console and deploy your app as a SSR application by following the ","AWS docs",".","Setup an S3 bucket as per the ","AWS S3 docs",".","Step 7: Configure your AWS app","Add the environment vars to the hosted app via your console","MOSAIC_MODE=\"snapshot-s3\"\n","MOSAIC_S3_BUCKET=\"\"\n","MOSAIC_S3_REGION=\"\"\n","MOSAIC_S3_ACCESS_KEY_ID=\"\"\"\n","MOSAIC_S3_SECRET_ACCESS_KEY=\"\"","Add the following build settings","version: 1\n","frontend:\n"," phases:\n"," preBuild:\n"," commands:\n"," - yarn install\n"," - env | grep -e MOSAIC >> .env.production\n"," build:\n"," commands:\n"," - yarn run build\n"," artifacts:\n"," baseDirectory: .next\n"," files:\n"," - '**/*'\n"," cache:\n"," paths:\n"," - node_modules/**/*","Ensure the Node is set to 16","Step 8: Upload your snapshot","Upload your snapshot to S3 storage.","> yarn mosaic upload -S ./snapshots/latest"]},{"title":"Publish","route":"/mosaic/publish/index","content":["To create your first Mosaic site, we have created a command line generator that scaffolds a ","standard"," site.","A ","standard"," site offers","an out the box, working site, which showcases local and remote content sources","a minimal set of files that can be configured with your own components, themes, layouts, sources and plugins","an update path that enables you to update Mosaic, independently of your own configuration","Create your first site","Install the Mosaic create site script.","> yarn global add @jpmorganchase/mosaic-create-site","Create a directory for your site and run the "," script.","> mkdir mosaic-sample-site\n","> cd mosaic-sample-site\n","> mosaic-create-site -f .","Define the environment variable, which enables us to access your remote repo.","> export MOSAIC_DOCS_CLONE_CREDENTIALS=\"\"","The "," environment variable is composed of your git username and your PAT token.\n","Follow these ","docs"," to see how to create your own PAT token.","Your site is ready to run.","> yarn serve","In your browser load ","Congratulations, you have created your first Mosaic site."]},{"title":"Publish a site to AWS","route":"/mosaic/publish/publish-site-to-aws","content":["A Mosaic site is a ","Next.Js"," app.","To publish a Next.Js App to AWS, deploy your app as a SSR application by following the ","AWS docs",".","Once the basic app has been configured, add the Mosaic specifics.","Add the environment vars to the hosted app via the Amplify console","MOSAIC_MODE=\"snapshot-s3\"\n","MOSAIC_S3_BUCKET=\"\"\n","MOSAIC_S3_REGION=\"\"\n","MOSAIC_S3_ACCESS_KEY_ID=\"\"\"\n","MOSAIC_S3_SECRET_ACCESS_KEY=\"\"","Add the following build settings","version: 1\n","frontend:\n"," phases:\n"," preBuild:\n"," commands:\n"," - yarn install\n"," - env | grep -e MOSAIC >> .env.production\n"," build:\n"," commands:\n"," - yarn run build\n"," artifacts:\n"," baseDirectory: .next\n"," files:\n"," - '**/*'\n"," cache:\n"," paths:\n"," - node_modules/**/*","Ensure the Node is set to 16"]},{"title":"Publish a site to Vercel","route":"/mosaic/publish/publish-site-to-vercel","content":["A Mosaic site is a ","Next.Js"," app.","To publish a Next.Js App to Vercel, refer to the ","Vercel docs",".","Deployment","As the ","vercel platform"," hosts static content you will need to deploy a mosaic snapshot. ","There is no option to run mosaic in ","active mode",".","1. ","Update Config File","Add the following to the mosaic config file used by your site:"," deployment: { mode: 'snapshot-file', platform: 'vercel' }","2. ","Set Environment Variables","Set 2 ","environment variables"," in the vercel dashboard.","| Variable Name | Value |\n","| ------------------- | ----------------- |\n","| MOSAIC_MODE | snapshot-file |\n","| MOSAIC_SNAPSHOT_DIR | snapshots/latest. ","|","3. ","Run Build and Deploy","The "," command used by vercel must run "," followed by ","The "," command is needed to workaround an ","output file tracing"," problem.","Example:","yarn build && yarn deploy","Output File Tracing","Output File Tracing"," is a feature of Next.js that uses static analysis\n","to determine what files are needed to deploy a production version of an application.","Due to the architecture of mosaic, snapshot files can be ignored by this process and therefore excluded from the build artifacts deployed by vercel.","If you are deploying your site to the ","vercel platform"," then the mosaic site has a "," command that will update the nextjs output trace to include the snapshot files."]},{"title":"Test","route":"/mosaic/test/index","content":["Pages for e2e testing."]},{"title":"Admin","route":"/mosaic/configure/admin/index","content":["There are several admin urls exposed by Mosaic that provide an insight into how the filesystem has been configured and a way to remotely manage sources.","Endpoints","| Endpoint | Method | Description | Params |\n","| -------------------------- | ------ | -------------------------------------------- | ---------------------- |\n","| "," | GET | Returns the JSON from the Mosaic config file | n/a |\n","| "," | GET | Returns the entire mosaic filesystem as JSON | n/a |\n","| "," | GET | Returns a collection of active sources | n/a |\n","| "," | POST | Adds the source | definition & isPreview |\n","| "," | PUT | Stops the source with the provided name | name |\n","| "," | PUT | Restarts the source with the provided name | name |"]},{"title":"Detail Highlight","route":"/mosaic/configure/layouts/detail-highlight","content":["Layout: Detail Highlight","Initialize with "," in your page's frontmatter.","This layout is used to promote, share insights, and statistics for a line of business.","This layout should be used for pages with only one level of nesting, therefore, pagination is not eligible for this\n","layout.","Page geometry"]},{"title":"Detail Overview","route":"/mosaic/configure/layouts/detail-overview","content":["Layout: Detail Overview","Initialize with "," in your page's frontmatter.","This layout is used to present an overview of expected documentation, statisitics, and ability to\n","navigate to more documents.","Avoid making this page too long. ","If it gets too long, we recommend the ","Detail Technical"," template.","Page geometry","Other Layouts","Detail Highlight","Detail Technical","Landing","Product Discover","Product Preview","Filler content","Eiusmod veniam adipisicing est magna id sunt occaecat minim adipisicing ad do pariatur id aliqua.\n","Officia officia deserunt consequat ullamco irure. ","Excepteur deserunt esse occaecat ex aute. ","Duis do\n","do in incididunt cupidatat dolore veniam magna aliquip voluptate laborum. ","Non irure magna amet\n","ullamco culpa esse dolore nostrud. ","Id ea id ipsum incididunt do velit aliquip fugiat do non\n","consequat.","A sub heading","Deserunt sunt pariatur mollit dolor eiusmod. ","Anim sunt officia cillum anim. ","Laborum ullamco\n","consectetur elit dolore quis laborum. ","Eiusmod cillum amet veniam sunt Lorem reprehenderit commodo.\n","Cupidatat cillum ea consequat anim. ","Duis voluptate nulla veniam labore quis tempor.","Commodo reprehenderit excepteur amet aliquip cillum veniam ad. ","Ullamco proident deserunt laboris\n","duis laborum consequat laboris est eu enim nulla. ","Mollit velit consectetur ea aliqua consectetur\n","mollit eu ex deserunt. ","Aute excepteur exercitation esse proident excepteur Lorem. ","Quis cillum\n","occaecat sint voluptate incididunt ea ipsum incididunt duis sint magna magna fugiat.","Third-level heading","Ea do magna aute proident nulla cupidatat esse consectetur anim eu esse. ","Consectetur est voluptate\n","excepteur non dolore consequat fugiat deserunt. ","Est nostrud est ea irure reprehenderit commodo\n","nostrud nulla tempor ipsum tempor sit id exercitation. ","Sunt reprehenderit officia anim id quis\n","pariatur velit cillum incididunt officia sunt. ","Ullamco ipsum cillum minim deserunt eiusmod nostrud\n","irure et nulla laborum ipsum ipsum incididunt. ","Voluptate reprehenderit in occaecat ipsum nulla\n","excepteur excepteur mollit laboris id ad laborum do. ","Qui in laborum nostrud quis occaecat proident\n","ipsum tempor laborum consequat id ut velit occaecat.Aliquip quis qui ullamco ipsum exercitation\n","exercitation excepteur ea ex. ","Proident elit incididunt incididunt ad adipisicing quis deserunt sint\n","laboris deserunt ipsum culpa est. ","Id do ex duis Lorem exercitation amet reprehenderit. ","Voluptate qui\n","tempor qui sit minim sit qui ea id dolor excepteur. ","Laborum elit excepteur enim sunt consequat\n","officia cillum. ","Do ea occaecat ut voluptate ea proident duis minim ad pariatur dolore magna enim\n","duis. ","Sit aliqua aliqua ea mollit enim cupidatat proident incididunt. ","Eu dolore sit non incididunt.\n","Mollit reprehenderit sunt sunt cillum labore velit exercitation officia aliqua ea adipisicing do ea.\n","Commodo et fugiat velit dolore consectetur.","Amet dolore deserunt in ut amet officia exercitation sint excepteur voluptate proident tempor enim\n","est. ","Culpa proident tempor in voluptate laboris sunt consectetur sit cillum excepteur culpa enim\n","velit laboris. ","Pariatur elit amet nostrud tempor nostrud ea. ","Exercitation do aliquip nisi amet id.\n","Lorem labore incididunt sit sit veniam tempor do consectetur do culpa qui.","Id sint deserunt laborum mollit id excepteur","mollit excepteur labore labore dolor. ","Sit cupidatat nostrud ad consequat amet excepteur id sunt\n","labore adipisicing non irure. ","Fugiat exercitation laborum officia minim duis dolor do officia Lorem\n","cillum excepteur. ","Sint elit mollit duis sit ad commodo.","Cillum amet irure ut tempor tempor culpa dolore sint.","Lorem qui ipsum reprehenderit est incididunt duis exercitation ea duis fugiat. ","Consectetur enim id\n","sunt exercitation et dolore ea proident sunt excepteur fugiat dolor. ","Veniam proident dolore irure\n","incididunt deserunt pariatur quis. ","Incididunt ea elit deserunt occaecat eiusmod velit fugiat eiusmod\n","dolor eiusmod ullamco. ","Fugiat fugiat eiusmod occaecat nulla consequat pariatur.","Aliquip non cupidatat irure magna et fugiat sunt amet ex est excepteur irure quis. ","Non culpa magna\n","nisi enim eu nulla esse laborum amet ipsum. ","Eu consectetur labore do id occaecat adipisicing."]},{"title":"Detail Technical","route":"/mosaic/configure/layouts/detail-technical","content":["Layout: Detail Technical","Initialize with "," in your page's frontmatter.","This layout is used for longer, technical, detailed content about the product.","This layout shows less marketing-type visuals and more visual of diagrams, screenshots, and code\n","snippets.","This page can be short or very lengthy.","Page geometry","Other Layouts","Detail Highlight","Detail Overview","Landing","Product Discover","Product Preview","Filler content","Eiusmod veniam adipisicing est magna id sunt occaecat minim adipisicing ad do pariatur id aliqua.\n","Officia officia deserunt consequat ullamco irure. ","Excepteur deserunt esse occaecat ex aute. ","Duis do\n","do in incididunt cupidatat dolore veniam magna aliquip voluptate laborum. ","Non irure magna amet\n","ullamco culpa esse dolore nostrud. ","Id ea id ipsum incididunt do velit aliquip fugiat do non\n","consequat.","A sub heading","Deserunt sunt pariatur mollit dolor eiusmod. ","Anim sunt officia cillum anim. ","Laborum ullamco\n","consectetur elit dolore quis laborum. ","Eiusmod cillum amet veniam sunt Lorem reprehenderit commodo.\n","Cupidatat cillum ea consequat anim. ","Duis voluptate nulla veniam labore quis tempor.","Commodo reprehenderit excepteur amet aliquip cillum veniam ad. ","Ullamco proident deserunt laboris\n","duis laborum consequat laboris est eu enim nulla. ","Mollit velit consectetur ea aliqua consectetur\n","mollit eu ex deserunt. ","Aute excepteur exercitation esse proident excepteur Lorem. ","Quis cillum\n","occaecat sint voluptate incididunt ea ipsum incididunt duis sint magna magna fugiat.","Third-level heading","Ea do magna aute proident nulla cupidatat esse consectetur anim eu esse. ","Consectetur est voluptate\n","excepteur non dolore consequat fugiat deserunt. ","Est nostrud est ea irure reprehenderit commodo\n","nostrud nulla tempor ipsum tempor sit id exercitation. ","Sunt reprehenderit officia anim id quis\n","pariatur velit cillum incididunt officia sunt. ","Ullamco ipsum cillum minim deserunt eiusmod nostrud\n","irure et nulla laborum ipsum ipsum incididunt. ","Voluptate reprehenderit in occaecat ipsum nulla\n","excepteur excepteur mollit laboris id ad laborum do. ","Qui in laborum nostrud quis occaecat proident\n","ipsum tempor laborum consequat id ut velit occaecat.Aliquip quis qui ullamco ipsum exercitation\n","exercitation excepteur ea ex. ","Proident elit incididunt incididunt ad adipisicing quis deserunt sint\n","laboris deserunt ipsum culpa est. ","Id do ex duis Lorem exercitation amet reprehenderit. ","Voluptate qui\n","tempor qui sit minim sit qui ea id dolor excepteur. ","Laborum elit excepteur enim sunt consequat\n","officia cillum. ","Do ea occaecat ut voluptate ea proident duis minim ad pariatur dolore magna enim\n","duis. ","Sit aliqua aliqua ea mollit enim cupidatat proident incididunt. ","Eu dolore sit non incididunt.\n","Mollit reprehenderit sunt sunt cillum labore velit exercitation officia aliqua ea adipisicing do ea.\n","Commodo et fugiat velit dolore consectetur.","Amet dolore deserunt in ut amet officia exercitation sint excepteur voluptate proident tempor enim\n","est. ","Culpa proident tempor in voluptate laboris sunt consectetur sit cillum excepteur culpa enim\n","velit laboris. ","Pariatur elit amet nostrud tempor nostrud ea. ","Exercitation do aliquip nisi amet id.\n","Lorem labore incididunt sit sit veniam tempor do consectetur do culpa qui.","Id sint deserunt laborum mollit id excepteur","mollit excepteur labore labore dolor. ","Sit cupidatat nostrud ad consequat amet excepteur id sunt\n","labore adipisicing non irure. ","Fugiat exercitation laborum officia minim duis dolor do officia Lorem\n","cillum excepteur. ","Sint elit mollit duis sit ad commodo.","Cillum amet irure ut tempor tempor culpa dolore sint.","Lorem qui ipsum reprehenderit est incididunt duis exercitation ea duis fugiat. ","Consectetur enim id\n","sunt exercitation et dolore ea proident sunt excepteur fugiat dolor. ","Veniam proident dolore irure\n","incididunt deserunt pariatur quis. ","Incididunt ea elit deserunt occaecat eiusmod velit fugiat eiusmod\n","dolor eiusmod ullamco. ","Fugiat fugiat eiusmod occaecat nulla consequat pariatur.","Aliquip non cupidatat irure magna et fugiat sunt amet ex est excepteur irure quis. ","Non culpa magna\n","nisi enim eu nulla esse laborum amet ipsum. ","Eu consectetur labore do id occaecat adipisicing."]},{"title":"Layouts","route":"/mosaic/configure/layouts/index","content":["Todo..."]},{"title":"Landing Layout","route":"/mosaic/configure/layouts/landing","content":["Layout: Landing","Initialize with "," in your page's frontmatter.","Use this layout as a landing page to show large branded visuals, and high-level content about the\n","line of business.","Set the tone and voice for your LOB’s experience.","Use components that support your content with places to insert visuals, share any stats or an\n","introduction of LOB’s story.","Use heading styles to show the grouping of content of a section.","Page geometry"]},{"title":"Product Discover Layout","route":"/mosaic/configure/layouts/product-discover","content":["Layout: Product Discover","Initialize with "," in your page's frontmatter.","Use this layout to introduce a product feature with a description and large visual.","This layout is use for marketing and discovery content.","Page geometry"]},{"title":"Product Preview Layout","route":"/mosaic/configure/layouts/product-preview","content":["Layout: Product Preview","Initialize with "," in your page's frontmatter.","This layout has been used to introduce a product and showcase their suite of product offerings.","Use heading styles to show the grouping of content of a section.","Page geometry"]},{"title":"Active mode","route":"/mosaic/configure/modes/active","content":["In "," mode content can be ","pulled"," from heterogeneous data sources and normalized via plugins, to the configured components/theme.\n","As your content changes, the site will ","re-pull"," the content and update your site in real-time.","The standard generated site comes with 2 sources to demonstrate, how 'active' mode work.","a local source, which loads content from ","a remote source, which loads content from a ","sample Github repository","Configuring your content sources","All content is composed together within a ","namespace",".","A ","namespace"," is the scope for aggregated content, represented by the root path.\n","e.g Our sample docs are aggregated into a ","namespace"," called "," and served by the user journey ","Mosaic doc sources are defined by a file called ","Here is how that might look for a standard site.","Pull your local content","To tryout local content creation, add a file called","The load ","Each directory should contain an "," which is the default page, when a page is loaded without a path","Now create other pages and subdirectories and explore how Mosaic, builds your user-journeys from your fileset.","Pull your remote content","To tryout remote content creation, your standard site comes pre-configured to load our Mosaic sample docs.","Edit the "," and change your "," and "," to pull content from other repos."]},{"title":"Modes of operation","route":"/mosaic/configure/modes/index","content":["Mosaic can operate in 3 different modes","Active updates","In ","active"," mode, content updates in real-time.","active"," mode content is pulled at configured intervals in real-time, as defined by ",".","Read the ","active"," configuration docs.","Static content","Consider a snapshot as a directory of static content previously pulled from your content sources, which does not update itself.","In a snapshot mode, the snapshot does update itself.","File based snapshots","In "," mode, immutable snapshots of content are loaded at startup from the local file-system.","Read the ","snapshot-file"," configuration docs.","S3 based snapshots","In "," mode, snapshots of content are loaded at startup from a remote S3 bucket.","Read the ","snapshot-s3"," configuration docs."]},{"title":"Snapshot file mode","route":"/mosaic/configure/modes/snapshot-file","content":["In "," mode a local immutable snapshot can be loaded by the site. ","Typically, the snapshot and the site are\n","deployed together and upon startup the site can load the snapshot from the local file-system.","To use "," mode","export MOSAIC_MODE=\"snapshot-file\"\n","export MOSAIC_SNAPSHOT_DIR=\"./snapshot/latest\"","Generating a snapshot","To generate a snapshot, run","yarn gen:snapshot","Commit the snapshot to your Git repo and push the site+snapshot to your Git repo, within the same branch."]},{"title":"Snapshot AWS/S3 mode","route":"/mosaic/configure/modes/snapshot-s3","content":["In "," mode a snapshot can be loaded from a pre-configured AWS S3 bucket.","To use "," mode","> export MOSAIC_MODE=\"snapshot-s3\"\n","> MOSAIC_S3_BUCKET=\"\"\n","> MOSAIC_S3_REGION=\"\"\n","> MOSAIC_S3_ACCESS_KEY_ID=\"\"\n","> MOSAIC_S3_SECRET_ACCESS_KEY=\"\"","Generating a snapshot","To generate a snapshot, run","yarn gen:snapshot","Uploading a snapshot to S3","To upload a snapshot to S3, define the required environment variables and run","yarn mosaic upload -S "]},{"title":"$AliasPlugin","route":"/mosaic/configure/plugins/alias-plugin","content":["The "," is what powers the ","aliases"," feature of Mosaic.","It does this by scrapes "," from page metadata and also applies all aliases stored in ","Other plugins can use "," to apply new aliases, as long as they call it before this plugin has reaches the "," lifecycle event.","This plugin is added to the plugins collection by Mosaic itself so users do ","not"," need to include it in their own mosaic config file.","Priority","This plugin runs with a priority of -1 so it runs ","after"," most other plugins."]},{"title":"BreadcrumbsPlugin","route":"/mosaic/configure/plugins/breadcrumbs-plugin","content":["The "," is responsible for generating the data needed to show breadcrumbs navigation on pages. ","It then appends this data to a "," property in the page metadata.","Should a page already have a "," property in it's metadata then it is respected and not overwritten.","If a page has a "," property in it's metadata then this is used as the label for the breadcrumb, otherwise the page "," is used.","When the "," is traversing up directories, it needs to know what page in the directory represents the ","breadcrumb"," for that directory. ","It is recommended to use the "," page for this but the page to use is a configurable option of the breadcrumbs plugin.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| ------------- | ------------------------------------------------ |\n","| indexPageName | The page name to use for \"directory\" breadcrumbs |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the breadcrumbs plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/BreadcrumbsPlugin',\n"," options: {\n"," indexPageName: 'index.mdx'\n"," }\n"," }\n"," // other plugins\n","];"]},{"title":"BrokenLinksPlugin","route":"/mosaic/configure/plugins/broken-links-plugin","content":["The "," will identify any broken links in pages Mosaic has pulled into it's filesystem by making use of the ","check-links"," package.","It can identify broken links between the pages themselves and external links that pages link out to.","What this plugin is really checking is \"liveness\" of a link.","alive if the URL is reachable (2XX status code)","dead if the URL is not reachable","invalid if the URL was parsed as invalid or used an unsupported protocol","Links may be \"alive\", but the ","content"," of the linked page may not be what you want so continue\n","to check links show what you expect.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| ------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n","| baseUrl | This is used to calculate the full url for links between pages. ","It should be the url Mosaic is running on |\n","| proxyEndpoint | If you are behind a corporate proxy, external link checking will not work unless you specify the proxy endpoint using this option |","Adding to Mosaic","This plugin is ","not"," included in the mosaic config shipped by the Mosaic standard generator so it must be added manually to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/BrokenLinksPlugin',\n"," priority: -1,\n"," // Exclude this plugin in builds\n"," runTimeOnly: true,\n"," options: {\n"," baseUrl: process.env.MOSAIC_ACTIVE_MODE_URL || 'http://localhost:8080',\n"," proxyEndpoint: 'http://some-proxy-url'\n"," }\n"," }\n"," // other plugins\n","];","This plugin needs to be a "," plugin because it needs Mosaic to be running in order to\n","make requests to all of the page links.","Example Output","When a link is found to be broken, you will see the following output in the console:","@jpmorganchase/mosaic-site:serve: 8080 [Mosaic] Broken links found in /local/docs/publish-site-to-vercel.mdx\n","@jpmorganchase/mosaic-site:serve: 8080 Link to https://nextjs.org/davie is dead {\n","@jpmorganchase/mosaic-site:serve: 8080 type: 'link',\n","@jpmorganchase/mosaic-site:serve: 8080 title: null,\n","@jpmorganchase/mosaic-site:serve: 8080 url: 'https://nextjs.org/davie',\n","@jpmorganchase/mosaic-site:serve: 8080 children: [ { type: 'text', value: 'Next.Js', position: [Object] } ],\n","@jpmorganchase/mosaic-site:serve: 8080 position: {\n","@jpmorganchase/mosaic-site:serve: 8080 start: { line: 4, column: 20, offset: 36 },\n","@jpmorganchase/mosaic-site:serve: 8080 end: { line: 4, column: 55, offset: 71 }\n","@jpmorganchase/mosaic-site:serve: 8080 }\n","@jpmorganchase/mosaic-site:serve: 8080 }"]},{"title":"$CodeModPlugin","route":"/mosaic/configure/plugins/codemod-plugin","content":["Todo"]},{"title":"Plugins","route":"/mosaic/configure/plugins/index","content":["Mosaic Plugins are ","lifecycle-based"," hooks that are called on ","every"," source at different stages. ","You will never need to invoke a lifecycle method directly as their execution is managed by a plugin runner.","Plugins enable Mosaic to have a lightweight and flexible, modular architecture by encapsulating features and functionality as plugins.","Installation","Configuration","Plugins are added to the "," collection of the mosaic config file. ","Like ","sources",", plugins have an options property that can be used to provide plugin specific configuration.","| Property | Description | Required |\n","| --------------- | -------------------------------------------------------------------------- | -------- |\n","| modulePath | The path to the installed plugin module | Yes |\n","| disabled | Exclude this plugin completely. ","Defaults to false | No |\n","| runtimeOnly | Exclude this plugin when generating a snapshot. ","Defaults to false | No |\n","| previewDisabled | Exclude this plugin for \"preview\" sources | No |\n","| allowMultiple | Allow multiple instances of this plugin to run. ","| No |\n","| priority | The importance of this plugin. ","Plugins with the highest priority run first | No |\n","| options | Collection of other configuration values | No |"," plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/PagesWithoutFileExtPlugin',\n"," options: {},\n"," priority: 1\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: {}\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/ReadingTimePlugin',\n"," options: {}\n"," }\n","],","There is no need to import the plugin module directly. ","As long as the plugin is installed, Mosaic\n","will be able to import it using the built-in plugin loader.","Default Plugins","The following plugins are always included by Mosaic, regardless of whether they are present in the plugins collection of the Mosaic config file:","$TagPlugin","$AliasPlugin","$CodeModPlugin","$RefPlugin","Plugin errors","Should a plugin fail, the failure will ","not"," cause a source to close or for any other plugin to not run.","Instead plugin errors are tracked by Mosaic and can be viewed in the "," property available on each source listed by the list sources ","admin API",".","Plugin errors will be split by lifecycle event and only the lifecycle events used by the loaded plugins used will be shown.","Multiple Instances","By default, Mosaic will only run one instance of a plugin.","It may be the case that you wish to run the same plugin twice with a slightly different config. ","To do this, you must have 2 instances listed in the plugins collection and they ","both"," must set the "," option to ",".","For example, the config below runs the ","SidebarPlugin"," twice:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: { rootDirGlob: 'products/product-a' },\n"," allowMultiple: true\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: { rootDirGlob: '*/!(","product-a)/*' },\n"," allowMultiple: true\n"," }\n"," // other plugins\n","];"]},{"title":"LazyPagePlugin","route":"/mosaic/configure/plugins/lazy-page-plugin","content":["The "," attempts to reduce the size of the Mosaic filesystem in memory by moving page metadata and content to disk.","It then adds a hook, so that when a page is requested the data is loaded from disk and combined with what is already in the Mosaic filesystem.","It must be the very last to run so that it can strip off metadata and content after other plugins\n","have finished with them.","Priority","This plugin runs with a priority of -2. ","Needs to be the last to run for biggest impact.","Options","| Property | Description |\n","| -------- | ------------------------------------------------------------------------------ |\n","| cacheDir | The directory to store the cache. ","Defaults to "," |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/LazyPagePlugin',\n"," // This plugin must be the very last to run, so it can strip off metadata and content after the other\n"," // plugins are done with them\n"," priority: -2,\n"," // Exclude this plugin in builds\n"," runTimeOnly: true,\n"," options: {\n"," cacheDir: '.tmp/.pull-docs-last-page-plugin-cache'\n"," }\n"," }\n"," // other plugins\n","];","This plugin needs to be a "," plugin because the goal is to reduce the in-memory\n","filesystem size."]},{"title":"PagesWithoutFileExtPlugin","route":"/mosaic/configure/plugins/pages-wthout-extensions-plugin","content":["The "," plugin creates ","aliases"," without the file extension for every page in the Mosaic filesystem.\n","This allows pages to be retrieved from the filesystem without specifying the extension e.g., ",".","The plugin also modifies the "," metadata property of a page to point to the shorter alias.","Priority","This plugin runs with a priority of 1. ","It must run after the ","$AliasPlugin",".","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/PagesWithoutFileExtPlugin',\n"," options: {},\n"," priority: 1\n"," }\n"," // other plugins\n","];"]},{"title":"PublicAssetsPlugin","route":"/mosaic/configure/plugins/public-assets-plugin","content":["The "," is responsible for finding \"assets\" in the Mosaic filesystem and copying them to another directory.","Typical usecase is for copying "," and "," to the public directory of a Next.js site as these are considered ","static assets"," for Next.js.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| --------- | ----------------------------------------------------------- |\n","| outputDir | The directory to copy the assets to. ","Defaults to "," |\n","| assets | A collection of filenames to copy to the outputDir |","Adding to Mosaic","This plugin is ","not"," included in the mosaic config shipped by the Mosaic standard generator so it must be added manually to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/PublicAssetsPlugin',\n"," priority: -1,\n"," options: {\n"," outputDir: './public',\n"," assets: ['sitemap.xml', 'search-data.json']\n"," }\n"," }\n"," // other plugins\n","];"]},{"title":"ReadingTimePlugin","route":"/mosaic/configure/plugins/reading-time-plugin","content":["The "," generates an estimation of how long a page written in MDX will take to read and adds the "," property to the metadata of a page.","Priority","This plugin runs with no special priority.","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/ReadingTimePlugin',\n"," options: {}\n"," }\n"," // other plugins\n","];"]},{"title":"$RefPlugin","route":"/mosaic/configure/plugins/ref-plugin","content":["The "," powers the ","refs"," feature of Mosaic.","The plugin scrapes "," properties from page metadata and also applies all refs stored in ",".","Other plugins can use "," to apply new refs, as long as they call it before this plugin has reaches ",".","Priority","This plugin runs with a priority of -1 so it runs ","after"," most other plugins."]},{"title":"SearchIndexPlugin","route":"/mosaic/configure/plugins/search-index-plugin","content":["The "," is responsible for generating the search index and configuration information for ","Fuse.js"," which is the matching engine powering the client-side search functionality of Mosaic sites.","It outputs 3 files:","Full Search Index - ","Condensed Search Index - ","Search Configuration - ","Full Search Index","On a Mosaic site, the full index is fetched after a page has loaded, thus removing the chance of a huge index slowing down first-load.","Practically, the full index should load in the background before a user searches for something, but should a search be initiated before that (e.g., slow-internet) then the condensed version of the search index is available.","Condensed Search Data","Search Index plugin creates a \"condensed\" version of the search index that only includes the "," and "," for each page. ","This is the \"Minimum Viable Index\" to provide somewhat useable search results client-side while the main search index is loaded in the background.","Search Configuration","Any ","options"," that need to be passed to Fuse.js.","Search relevancy configuration","| Property | Description |\n","| ---------------- | ----------------------------------------------------- |\n","| includeScore | https://www.fusejs.io/api/options.html#includescore |\n","| includeMatches | https://www.fusejs.io/api/options.html#includematches |\n","| maxPatternLength | TODO |\n","| ignoreLocation | https://www.fusejs.io/api/options.html#ignorelocation |\n","| threshold | https://www.fusejs.io/api/options.html#threshold |\n","| keys | https://www.fusejs.io/api/options.html#keys |","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| ------------- | --------------------------------------------------- |\n","| maxLineLength | TODO |\n","| maxLineCount | TODO |\n","| keys | https://www.fusejs.io/api/options.html#keys |\n","| relevancy | ","search relevancy"," |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SearchIndexPlugin',\n"," previewDisabled: true,\n"," options: { maxLineLength: 240, maxLineCount: 240 }\n"," }\n"," // other plugins\n","];","It's usually a good idea to mark this plugin as disabled for preview sources otherwise the pages\n","from the preview will appear in search results."]},{"title":"SharedConfigPlugin","route":"/mosaic/configure/plugins/shared-config-plugin","content":["The "," crawls the page hierarchy to find the closest "," metadata from any parent index's page metadata. ","It then exports a JSON file into each directory with the merged config for that level.","Shared config is typically the place where the following is configured for a Mosaic site:","App Header configuration including site name and main navigation","Footer information","Help links for the left sidebar area","Namespace Shared Configs","Consider 2 sources the share the same ","namespace"," \"product-docs\":","Source A - multiple product directories and main product index page. ","The index page specifies "," metadata.","Source B - pages relevant to a single product. ","Index page does ","not"," have any "," metadata.","Let's also assume that the pages from Source B would also naturally \"fit\" within the pages of Source B (e.g. inside a products directory).","In this scenario, the "," will attempt to copy the shared config file from Source A into the root directory of Source B allowing the Source B pages to use the Source A "," as though it were a product sourced directly from Source A.","Priority","This plugin runs with a priority of 3.","Options","| Property | Description |\n","| -------- | ---------------------------------------------- |\n","| filename | the name of the JSON file output by the plugin |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SharedConfigPlugin',\n"," options: {\n"," filename: 'shared-config.json'\n"," },\n"," priority: 3\n"," }\n"," // other plugins\n","];"]},{"title":"SidebarPlugin","route":"/mosaic/configure/plugins/sidebar-plugin","content":["The "," generates the necessary page metadata needed for the vertical navigation shown on some Mosaic pages.","The output from the plugin is added to a "," metadata property of the page.","Configuration","The "," is used to determine the \"root\" directories of the sidebar. ","So for example:"," - generate sidebar data for the pages that are 3 directories deep in the filesystem hierarchy"," - same as above but ignore the product-a directory"," - generate a sidebar just for product-b in the products directory","To rearrange pages in the sidebar or to apply a different label to a page you can specify the following in the page frontmatter:","| Property | Description |\n","| ---------------- | ----------------------------------------------------------------------------------------- |\n","| sidebar.label | the name of the page to use in the sidebar. ","Defaults to the page title |\n","| sidebar.priority | pages are ordered in the sidebar by priority high → low. ","Default is alphabetical ordering |","Priority","This plugin runs with a priority of 3.","Options","| Property | Description |\n","| ----------- | ----------------------------------------------------------------------------- |\n","| filename | filename of the sidebar json, linked to each related page via ref |\n","| rootDirGlob | Glob pattern for matching directories which should be the root of the sidebar |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SidebarPlugin',\n"," options: { rootDirGlob: '*/*/*' }\n"," }\n"," // other plugins\n","];"]},{"title":"SiteMapPlugin","route":"/mosaic/configure/plugins/site-map-plugin","content":["The "," generates a ","sitemap"," using the pages in the Mosaic filesystem that adheres to the ","sitemaps XML schema",".","The output of the plugin is a file is named ",".","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| -------- | --------------------------------------------------------------------------------------------------- |\n","| siteUrl | The site URL. ","Used as the prefix for loc entries in the sitemap as these must start with a protocol |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/SiteMapPlugin',\n"," previewDisabled: true,\n"," options: { siteUrl: process.env.SITE_URL || 'http://localhost:3000' }\n"," }\n"," // other plugins\n","];"]},{"title":"$TagPlugin","route":"/mosaic/configure/plugins/tag-plugin","content":["The "," powers the tags feature of Mosaic.","This plugin scrapes "," from page metadata and also applies all aliases stored in ",".","Tags ultimately resolve down into ","refs",", but are different from normal refs, in that they are applied to the\n","union filesystem (all merged filesystems), not to the individual source filesystem that they were defined on. ","This can be thought of as a ","global ref",".","Other plugins can use "," and modify the "," property, to apply new global refs, as long as\n","they do so before this plugin has reaches ",".","Priority","This plugin runs with no special priority but it must run before both the "," and the ",".","Example use case - Products Page","Let's assume there is a products page on your site and each product is shown as a tile. ","The information for each product tile is sourced from multiple Mosaic sources. ","How can tags be used to reference the product data needed for each tile on the products page?","The product page should add a "," metadata prop to its frontmatter:","---\n","title: Products\n","description: Product index\n","layout: ProductPreview\n","data:\n"," items:\n"," $tag: product#/data\n","---","The tag shown in the example above is saying populate "," of the Products index page with the "," metadata property of pages tagged with ",".","A tagged product page needs to have a "," property which is a collection of tags and one of these needs to be ",". ","This will allow the "," to correctly associate the product page to the product index page. ","It will also need a "," property because thats the property our product index page wants to use for the tiles.","---\n","title: Product A\n","description: My Product description\n","layout: ProductDiscover\n","tags:\n"," - product\n","data:\n"," name:\n"," $ref: '#/title'\n"," date: 2023/02/07\n"," action: Product Overview\n"," description:\n"," $ref: '#/description'\n"," link: /products/a/index\n","---","---\n","title: Product B\n","description: My Product description\n","layout: ProductDiscover\n","tags:\n"," - product\n","data:\n"," name:\n"," $ref: '#/title'\n"," date: 2023/02/07\n"," action: Product Overview\n"," description:\n"," $ref: '#/description'\n"," link: /products/b/index\n","---"]},{"title":"TableOfContentsPlugin","route":"/mosaic/configure/plugins/toc-plugin","content":["The "," generates a Table of Contents for each page in the Mosaic filesystem using the headings on the page.","Heading ranks are used to determine which page headings should be included in the Table of Contents:","| Heading Element (markdown syntax) | Rank |\n","| --------------------------------- | ---- |\n","| h1 (#) | 1 |\n","| h2 (##) | 2 |\n","| h3 (###) | 3 |\n","| h4 (####) | 4 |\n","| h5 (#####) | 5 |\n","| h6 (######) | 6 |","The plugin output is added to a "," metadata property of a page.","Priority","This plugin runs with no special priority.","Options","| Property | Description |\n","| -------- | ----------------------------- |\n","| minRank | The minimum page heading rank |\n","| maxRank | The maximum page heading rank |","Adding to Mosaic","This plugin is included in the mosaic config shipped by the Mosaic standard generator. ","So if you use the below import in your "," file then the plugin is included already:","import mosaicConfig from '@jpmorganchase/mosaic-standard-generator/dist/fs.config.js';","To add it yourself, add the following to the "," collection:","plugins: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-plugins/TableOfContentsPlugin',\n"," options: {\n"," minRank: 2,\n"," maxRank: 3\n"," }\n"," }\n"," // other plugins\n","];"]},{"title":"Git Repo Source","route":"/mosaic/configure/sources/git-repo-source","content":["The Git Repo Source is used to pull content from a remote git repository e.g. github.","Installation","Credentials and Access tokens","To successfully clone the git repo, the source definition must include credentials that have sufficient permissions to clone the repository.","We recommend storing a ","personal access token"," in an environment variable and using the environment variable in the source definition.","This keeps credentials out of code where they may be accidentally exposed to third parties.","Example","export MOSAIC_DOCS_CLONE_CREDENTIALS=\":\",","Configuration","| Property | Description | Required |\n","| ------------------- | -------------------------------------------------------------------------------- | -------- |\n","| modulePath | The path to the installed module (@jpmorganchase/mosaic-source-git-repo) | Yes |\n","| namespace | The scope for this source. ","| Yes |\n","| disabled | When true, content from this source is not used | No |\n","| options.credentials | Collection of URLS to make requests | Yes |\n","| options.prefixDir | The root path used in the content URL | Yes |\n","| options.subfolder | The name of the folder within the cloned repo containing the docs | Yes |\n","| options.repo | The repo URL | Yes |\n","| options.branch | The branch or tag to clone | Yes |\n","| options.extensions | Collection of file extensions that the source will look for inside the subfolder | Yes |\n","| options.remote | The name of the git remote to use. ","Defaults to origin. ","| Yes |","Example Git Repo Source Definition","\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-git-repo',\n"," namespace: 'mosaic',\n"," options: {\n"," credentials: process.env.MOSAIC_DOCS_CLONE_CREDENTIALS,\n"," prefixDir: 'mosaic',\n"," subfolder: 'docs',\n"," repo: 'https://github.com/jpmorganchase/mosaic.git',\n"," branch: 'main',\n"," extensions: ['.mdx'],\n"," remote: 'origin'\n"," }\n"," }\n"]},{"title":"HTTP Source","route":"/mosaic/configure/sources/http-source","content":["The HTTP Source is used to pull content over HTTP.","Multiple endpoints can be specified and the source will combine and transform the response from each into a single collection of pages.","Installation","Configuration","| Property | Description | Required |\n","| ------------------------------------------ | ----------------------------------------------------------------------------- | -------- |\n","| modulePath | The path to the installed module (@jpmorganchase/mosaic-source-http) | Yes |\n","| namespace | The scope for this source | Yes |\n","| disabled | When true, content from this source is not used | No |\n","| options.endpoints | Collection of URLS to make requests | Yes |\n","| options.prefixDir | The root path used in the content URL | Yes |\n","| options.transformResponseToPagesModulePath | The path of the module used to transform endpoint responses into Mosaic pages | Yes |\n","| options.checkIntervalMins | Number of minutes to wait between requests. ","Defaults to 5 minutes | No |\n","| options.initialDelayMs | Number of milliseconds to wait for making initial request. ","Defaults to 1000 | No |","Example HTTP Source Definition"," {\n"," modulePath: '@jpmorganchase/mosaic-source-http',\n"," namespace: 'my-namespace',\n"," options: {\n"," prefixDir: 'docs',\n"," endpoints: [\n"," 'https://api.data.com/blah',\n"," 'https://api.data.com/hello'\n"," ],\n"," transformResponseToPagesModulePath: '@scope/transformer-package'\n"," }\n"," }"]},{"title":"Sources","route":"/mosaic/configure/sources/index","content":["Sources are what Mosaic uses to pull content from disparte locations and merge into a single virtual filesystem that can be used by a Mosaic Site.","Depending on the ","mode"," used, sources can update periodically ensuring that new content is made available automatically.","Source Definitions","Source Definitions are specified in the "," collection of a mosaic config file.","Each source uses a ","zod schema"," to validate the provided JSON to ensure that all required information for the source to pull content has been provided.","A source definition at a minimum needs to provide the module path of the source and the ","namespace"," that it will use. ","A namespace is not unique across sources though it is common that each source has a different namespace.","Lastly, the options field can be used as a bucket for configuration values needed to configure the source e.g. credentials.","Users are free to add any property as a source option but please read the ","gotchas","\n","first regarding the allowed ","values",".","Example Local Folder Source Definition"," /**\n"," * Demonstrates a local file-system source, in this case a relative path to where the\n"," * site was generated.\n"," * Access from your browser as http://localhost:3000/local\n"," */\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-local-folder',\n"," namespace: 'local', // each site has it's own namespace, think of this as your content's uid\n"," options: {\n"," rootDir: '..","/../docs', // relative path to content\n"," prefixDir: 'local', // root path used for namespace\n"," extensions: ['.mdx'] // extensions of content which should be pulled\n"," }\n"," }","Source Namespace","A Source Namespace is a scoping mechanism for Mosaic sources used to filter the content loaded by Mosaic. ","By default all sources specified in the mosaic config file are loaded.","sources: [\n"," {\n"," namespace: 'my-namespace',\n"," modulePath: '@jpmorganchase/mosaic-source-local-folder'\n"," }\n","];","The following command will ensure mosaic only loads sources with the "," scope.","yarn mosaic serve -c ''./mosaic.config.mjs' -p 8080 --scope \"local\"","Source Schedules","Source schedules define how often sources pull in content that exists remotely and if a failed source is retried. ","More information can be found ","here","Source Types","Out of the box, Mosaic provides 3 source \"types\":","Local Folder","Git Repo Source","HTTP Source","Sources must expose an observable interface so it is possible to compose sources together e.g. the Git Repo source uses the Local Folder source internally to watch the cloned folder for changes.","Watching for Updates","When running in ","active mode",", Mosaic will watch for any changes to the source content and if a change is detected, will initiate a pull of that new content.","How often to check for updates and how updates are triggered are a matter for the source to handle. ","Mosaic simply responds when a source emits new content.","Source Worker Thread","Sources are executed inside their own worker thread to ensure that the main thread is not overloaded. ","It is here that a local virtual filesystem for the source is created and where several of the ","Plugin Lifecycle"," events are triggered.","Gotchas","A service worker thread uses ","postMessage"," to communicate with the main thread and vice-versa.","This is important because it limits what values can be provided in the source definition to those that can be processed by the ","Structured Clone Algorithm","."]},{"title":"Local Folder Source","route":"/mosaic/configure/sources/local-folder-source","content":["The Local Folder Source is used to pull content from a folder located on the same machine as Mosaic is running.","It is common to use this source when running mosaic locally.","Installation","Configuration","| Property | Description | Required |\n","| ------------------ | ------------------------------------------------------------------------------ | -------- |\n","| modulePath | The path to the installed module (@jpmorganchase/mosaic-source-local-folder) | Yes |\n","| namespace | The scope for this source | Yes |\n","| disabled | When true, content from this source is not used | No |\n","| options.rootDir | The top level directory content will be pulled from | Yes |\n","| options.prefixDir | The root path used in the content URL | Yes |\n","| options.extensions | Collection of file extensions that the source will look for inside the rootDir | Yes |","Example Local Folder Source Definition","{\n"," modulePath: '@jpmorganchase/mosaic-source-local-folder',\n"," namespace: 'local', // each site has it's own namespace, think of this as your content's uid\n"," options: {\n"," rootDir: '..","/../docs', // relative path to content\n"," prefixDir: 'local', // root path used for namespace\n"," extensions: ['.mdx'] // extensions of content which should be pulled\n"," }\n","}","This source will look for content with the \".mdx\" extension in a \"docs\" directory 2 levels up from the Mosaic working directory. ","That content is included in the \"local\" namespace and available from a route that is prefixed with \"local\".","So if you had a file, "," then you would be able to view it at ","."]},{"title":"Source Schedules","route":"/mosaic/configure/sources/schedules","content":["A source schedule defines how often a source initiates a content pull and what to do when there is a failure.","A schedule can be specified for each source in the source definition, but should a source not provide a schedule it will inherit the \"global\" schedule.","Configuration","| Property | Description | Required | Default |\n","| ----------------- | -------------------------------------------------------------------------------------- | -------- | ------- |\n","| checkIntervalMins | The length of time in minutes before triggering a content refresh | Yes | 30 mins |\n","| initialDelayMs | Startup delay for the source. ","| Yes | 1000 ms |\n","| retryEnabled | When true, failures will trigger another content pull | No | true |\n","| retryDelayMins | The interval between retries. ","This will rise exponentially on every failure. ","| No | 5 |\n","| maxRetries | Maximum number of retry attempts | No | 100 |\n","| resetOnSuccess | If true, when a source recovers and emits pages it's retry counter is returned to zero | No | true |","Global Schedule","The global schedule applies to all sources that do ","not"," provide their own schedule. ","It can be configured as a top-level property of the Mosaic config file."," schedule: {\n"," checkIntervalMins: 60,\n"," initialDelayMs: 1000,\n"," retryDelayMins: 15,\n"," maxRetries: 20\n"," }","Example","Given the config file below:"," schedule: {\n"," checkIntervalMins: 30,\n"," initialDelayMs: 1000,\n"," retryDelayMins: 5,\n"," maxRetries: 10\n"," },\n"," sources: [\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-git-repo',\n"," namespace: 'sourceA',\n"," options: {\n"," credentials: 'credentials',\n"," prefixDir: 'sourceA',\n"," subfolder: 'docs',\n"," repo: 'source-a-repo-url',\n"," branch: 'develop',\n"," extensions: ['.mdx'],\n"," remote: 'origin'\n"," }\n"," },\n"," {\n"," modulePath: '@jpmorganchase/mosaic-source-git-repo',\n"," namespace: 'sourceB',\n"," schedule:{\n"," checkIntervalMins: 60,\n"," initialDelayMs: 5000,\n"," retryDelayMins: 30,\n"," maxRetries: 50\n"," }\n"," options: {\n"," credentials: 'credentials',\n"," prefixDir: 'sourceB',\n"," subfolder: 'docs',\n"," repo: 'source-b-repo-url',\n"," branch: 'develop',\n"," extensions: ['.mdx'],\n"," remote: 'origin'\n"," }\n"," }\n"," ]","Source A will inherit the global schedule so it will:","Start after a 1 second delay","Pull content every 30 minutes","Retry a failed content pull after an initial 5 minute delay","Retry 10 times and if still unsuccessful, closing","Source B has its own schedule so it will:","Start after a 5 second delay","Pull content every 60 minutes","Retry a failed content pull after an initial 30 minute delay","Retry 50 times and if still unsuccessful, closing","Retry Strategy","The retry strategy that Mosaic employs is ","Exponential Backoff",". ","This is a common strategy for networking applications that aims to prevent retries from causing more harm than good.","For example, given a source schedule that has a 1 minute retry delay and will retry a maximum of 3 times then the total time spent retrying is 7 minutes:","1 minute delay then 1st retry","2 minute delay then 2nd retry","4 minute delay then 3rd (and final) retry","Total delay: 1 + 2 + 4 = 7 minutes","As you can see, the delay between retries is growing exponentially giving the content source more time to recover after each retry."]},{"title":"Custom Components","route":"/mosaic/configure/theme/custom-components","content":["Learn how to add your own custom components to your Mosaic site.","Create Components Folder","To start, create a "," folder under "," where you'll store your custom components.","src/\n","└── components/","In this tutorial, we will create a custom "," component.","Create Card Component","Inside the "," folder, create a "," folder, which will contain your React "," component. ","The "," folder should include "," and "," files as shown in the structure below:","├── src/\n","│ ├── components/\n","│ │ └── card/\n","│ │ ├── index.tsx\n","│ │ └── card.module.css","Card Component: index.tsx","Create your "," component within the "," file:","import React from 'react';\n","import styles from './card.module.css';\n","\n","type CardProps = {\n"," title: string;\n"," content: string;\n","};\n","\n","export const Card: React.FC = ({ title, content }) => {\n"," return (\n","
\n","

{title}

\n","

{content}

\n","
\n"," );\n","};","Card Component: card.module.css","Define your component styles in the "," file:",".card {\n"," background-color: #f5f5f5;\n"," border: 1px solid #ccc;\n"," border-radius: 4px;\n"," box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n"," padding: 16px;\n"," transition: box-shadow 0.2s ease-in-out;\n","}\n","\n",".card:hover {\n"," box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n","}\n","\n",".card h2 {\n"," color: #333;\n"," font-size: 24px;\n"," margin-bottom: 8px;\n","}\n","\n",".card p {\n"," color: #666;\n"," font-size: 16px;\n"," line-height: 1.5;\n","}","In this example, we use a CSS file, but you can use whichever styling approach you prefer, such as ","vanilla extract",".","To export your "," component, create an "," file in the "," folder:","export * from './card';","Your final folder structure should look like this:","├── src/\n","│ ├── components/\n","│ │ ├── card/\n","│ │ │ ├── index.tsx\n","│ │ │ └── card.module.css\n","│ │ ├── index.ts","Import Custom Card Component","To use your custom "," component, import it into your site's "," file. ","Add the following line to your imports:","import * as myComponents from '../components';","Replace this line:","const components = mosaicComponents;","with:","const components = {\n"," ...mosaicComponents,\n"," ...myComponents\n","};","This will add your custom components to the site, and any custom components in "," will override the corresponding ones in ",". ","The spread operator (",") merges both "," and "," objects, giving priority to "," when there is a naming conflict.","Use Your Custom Card Component","Now you're ready to use your custom "," component. ","Build and run your site, and add the "," component to an MDX file in your "," folder or another source:","","You can create and add more custom components to your Mosaic site by following the same process."]},{"title":"Custom CSS","route":"/mosaic/configure/theme/custom-css","content":["You can customize the look and feel of your Mosaic site by creating cusotm CSS files. ","Here is a step-by-step guide to help you create your own CSS theme.","Create a CSS folder","To get started, create a folder named \"css\" in the \"src\" folder of your Mosaic project.","src/\n","└── css/","Create your theme","Inside the \"css\" folder, create a folder named \"global\". ","This is where you will add your custom styles.","src/\n","└── css/\n"," ├── global/\n"," ├── index.css","Create an \"index.css\" file inside the \"css\" folder. ","This file will import your custom styles.","@import './global/';","Inside your global folder, create a separate CSS file for each part of your site that you want to customize. ","For instance, if you want to change the text styling, create a \"text.css\" file inside the \"global\" folder. ","Here is an example of how your \"text.css\" file could look like:","h1 {\n"," /* Set custom font size and weight */\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h2 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h3 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h4 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h5 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","h6 {\n"," font-size: /* insert value */ ;\n"," font-weight: /* insert value */ ;\n","}\n","\n","p {\n"," font-size: /* insert value */ ;\n"," line-height: /* insert value */ ;\n","}","You can add as many CSS files as you need, depending on how much you want to customize your site.","Create an \"index.css\" file inside the \"global\" folder. ","This file will import your custom styles, in this example we are importing our \"text.css\" file.","@import './text.css';","Your \"css\" folder should now look like this:","src/\n","└── css/\n"," ├── global/\n"," │ ├── text.css\n"," │ ├── index.css\n"," ├── index.css","Import your custom CSS into your site","To apply your custom styles to your Mosaic site, open your \"_app.tsx\" file and add the following line to the bottom of your imports:","import '../css/index.css';","Congratulations! ","You have successfully applied your custom CSS styles to your site. ","This example demonstrated how to create text styles, but you can use the same approach to customize other aspects of your site as well."]},{"title":"Theming Your Site","route":"/mosaic/configure/theme/index","content":["Create a unique look and feel for your Mosaic site by customizing the CSS theme and integrating your own UI components.","Customize the CSS","Adapt various design elements of your Mosaic site to create a cohesive visual theme. ","Refer to our guide to learn more about crafting a custom CSS theme:","CSS Theme Guide","Import Custom Components","Incorporate your own UI components, to tailor the look and functionality of your content. ","This tutorial will walk you through the process of adding custom components to your site:","Adding Custom Components Tutorial"]},{"title":"Aliases Test","route":"/mosaic/test/aliases/index","content":["This page is the alias test page."]},{"title":"Detail Highlight Test Page","route":"/mosaic/test/layouts/detail-highlight","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Detail Overview Test Page","route":"/mosaic/test/layouts/detail-overview","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Detail Technical Test Page","route":"/mosaic/test/layouts/detail-technical","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Edit Layout","route":"/mosaic/test/layouts/edit","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Full Width Layout","route":"/mosaic/test/layouts/full-width","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Layouts","route":"/mosaic/test/layouts/index","content":["Pages for e2e testing of layouts."]},{"title":"Landing Layout Test Page","route":"/mosaic/test/layouts/landing","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Newsletter Test Page","route":"/mosaic/test/layouts/newsletter","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Product Discover Test Page","route":"/mosaic/test/layouts/product-discover","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Product Preview Test Page","route":"/mosaic/test/layouts/product-preview","content":["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 1","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 2","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 3","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum","Heading 4","Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n","Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n","Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n","Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"]},{"title":"Refs Data","route":"/mosaic/test/refs/data","content":[]},{"title":"Refs Test","route":"/mosaic/test/refs/index","content":["The sidebar priority is ",".","The other page data is ","."]},{"title":"$afterSource","route":"/mosaic/configure/plugins/lifecycle/after-source","content":["The first lifecycle event to trigger after receiving pages from a source and runs in a child process.\n","The pages can safely be mutated and will be reflected in the final filesystem that gets generated.\n","It ","must"," return a collection of pages.","The "," lifecycle event is called with:","pages - the collection of pages emitted by the source","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | A mutable object for sharing data with other lifecycle phases of all plugins for this source (including in the main thread) in this plugin |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |","Example - Log out all page routes","async function $afterSource(pages, { config, ignorePages, pageExtensions }) {\n"," for (const page of pages) {\n"," console.log(page.route);\n"," }\n"," return pages;\n","}"]},{"title":"afterUpdate","route":"/mosaic/configure/plugins/lifecycle/after-update","content":["The third lifecycle event to trigger overall and the first to trigger inside the main Mosaic process.","Calls after the filesystem and symlinks have been reconstructed due to a change to the current source pages. ","Pages will ","not"," be cached when read at this stage, to allow for reading content and writing a new copy of it without the cached version taking effect.\n","This method is safe to use with lazy loading, as the filesystem should return the full page when read.","The "," lifecycle event is called with:","mutableFilesystem - Mutable filesystem instance with all of this source's pages inside (and symlinks re-applied)","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | An immutable object for reading data from other lifecycle phases of all plugins for this source in the child process for this plugin. ","Shared only with this source. ","|\n","| globalConfig | An immutable object for reading data from other lifecycle phases of all plugins. ","Shared across all sources. ","|\n","| sharedFilesystem | Mutable filesystem instance independent of any sources. ","Useful for global pages, like sitemaps |\n","| globalFilesystem | Immutable union filesystem instance with all source's pages (and symlinks applied) |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]},{"title":"$beforeSend","route":"/mosaic/configure/plugins/lifecycle/before-send","content":["The second lifecycle event to trigger and does so after a filesystem has been built up from the source pages.","It is the last lifecycle event to run in a source child process before the filesystem is sent to the main Mosaic process and should ","not"," return a value.","The "," lifecycle event is called with:","mutableFilesystem - Mutable virtual filesystem instance with all of this source's pages inside (and symlinks applied)","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | A mutable object for sharing data with other lifecycle phases of all plugins for this source (including in the main thread) in this plugin |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]},{"title":"Lifecycle Events","route":"/mosaic/configure/plugins/lifecycle/index","content":["Plugin lifecycle","The plugin lifecycle is triggered when a source emits content.","Each Mosaic source has its own worker thread and plugin lifecycle events that start with a "," will execute inside the worker thread.\n","All other lifecycle events will execute in the main Mosaic process.","The 5 lifecycle events are:","$afterSource","$beforeSend","afterUpdate","shouldClearCache","shouldUpdateNamespaceSources","Plugin methods that trigger inside the main thread should be asynchronous and highly optimised to\n","avoid holding up the main thread."]},{"title":"shouldClearCache","route":"/mosaic/configure/plugins/lifecycle/should-clear-cache","content":["The fourth lifecycle event to trigger overall and the second to trigger inside the main Mosaic process.","It is called every time ","any"," source emits new pages and should return a boolean to indicate if ","other"," sources should clear their cache in response to the source updating.","Only sources that have already run "," will call this lifecycle hook since there is no\n","cache to clear if they haven't reached that stage in the lifecycle.","The "," lifecycle event is called with:","updatedSourceFilesystem - Immutable filesystem for the source that changed i.e, not the source filesystem","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | An immutable object for reading data from other lifecycle phases of all plugins for this source in the child process for this plugin. ","Shared only with this source. ","|\n","| globalFilesystem | Immutable union filesystem instance with all source's pages (and symlinks applied) |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]},{"title":"shouldUpdateNamespaceSources","route":"/mosaic/configure/plugins/lifecycle/should-update-namespace-sources","content":["The fifth lifecycle event to trigger overall and the third to trigger inside the main Mosaic process.","It is called every time ","any"," source emits new pages and should return a boolean to indicate if ","other sources that share the same ","source namespace"," should re-run ",".","The "," lifecycle event is called with:","updatedSourceFilesystem - Immutable filesystem for the source that changed i.e, not the source filesystem","helpers - an object with useful methods","options - the options specified for the plugin in the mosaic config file","Helpers","The helpers provided with this lifecycle event are listed in the table below.","| Property | Description |\n","| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n","| serialiser | A matching "," for serialising/deserialising pages when reading/writing to the filesystem |\n","| config | An immutable object for reading data from other lifecycle phases of all plugins for this source in the child process for this plugin. ","Shared only with this source. ","|\n","| globalFilesystem | Immutable union filesystem instance with all source's pages (and symlinks applied) |\n","| pageExtensions | A collection of pageExtensions the source is using |\n","| ignorePages | A collection of page globs that are to be ignored for this source |\n","| namespace | The namespace of the source running the plugin |"]}] \ No newline at end of file diff --git a/packages/site/snapshots/latest/sitemap.xml b/packages/site/snapshots/latest/sitemap.xml index 1e9502fa..1f4df5ee 100644 --- a/packages/site/snapshots/latest/sitemap.xml +++ b/packages/site/snapshots/latest/sitemap.xml @@ -109,11 +109,41 @@ weekly 0.5 + + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/detail-highlight + weekly + 0.5 + + + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/detail-overview + weekly + 0.5 + + + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/detail-technical + weekly + 0.5 + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/index weekly 0.5 + + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/landing + weekly + 0.5 + + + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/product-discover + weekly + 0.5 + + + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/layouts/product-preview + weekly + 0.5 + https://mosaic-mosaic-dev-team.vercel.app/mosaic/configure/modes/active weekly