From d084776820a386e2e8f971230c7e05952e486fca Mon Sep 17 00:00:00 2001 From: Mofi Rahman Date: Thu, 25 Jan 2024 02:20:05 -0500 Subject: [PATCH 1/2] add scaffold website for ai on gke --- .github/workflows/hugo.yaml | 32 + .gitignore | 6 +- website/.gitignore | 12 + website/archetypes/default.md | 5 + website/assets/icons/logo.svg | 1 + website/assets/scss/_styles_project.scss | 174 +++ website/assets/scss/_variables_project.scss | 151 +++ website/config.toml | 155 +++ website/content/en/_index.html | 11 + website/content/en/docs/_index.md | 8 + website/content/en/featureds-background.png | Bin 0 -> 42389 bytes website/content/en/search.md | 6 + website/layouts/404.html | 19 + website/layouts/partials/feedback.html | 61 + website/layouts/partials/footer.html | 39 + website/layouts/partials/head.html | 56 + .../partials/navbar-version-selector.html | 8 + website/layouts/partials/navbar.html | 37 + website/layouts/partials/seo_schema.html | 26 + .../shortcodes/blocks/content-item.html | 9 + .../shortcodes/blocks/content-section.html | 12 + .../layouts/shortcodes/blocks/link-down.html | 7 + .../shortcodes/blocks/sample-section.html | 10 + website/layouts/shortcodes/blocks/tab.html | 19 + website/layouts/shortcodes/blocks/tabs.html | 50 + website/layouts/shortcodes/include.html | 43 + website/layouts/shortcodes/needs-update.html | 4 + website/layouts/shortcodes/params.html | 1 + website/layouts/sitemap.xml | 21 + website/package-lock.json | 1020 +++++++++++++++++ website/package.json | 8 + website/static/favicons/android-144x144.png | Bin 0 -> 6837 bytes .../static/favicons/android-192x192 copy.png | Bin 0 -> 9200 bytes website/static/favicons/android-192x192.png | Bin 0 -> 9200 bytes website/static/favicons/android-48x48.png | Bin 0 -> 2293 bytes website/static/favicons/android-72x72.png | Bin 0 -> 2954 bytes website/static/favicons/android-96x96.png | Bin 0 -> 3775 bytes .../favicons/android-chrome-192x192.png | Bin 0 -> 9200 bytes .../favicons/apple-touch-icon-180x180.png | Bin 0 -> 9154 bytes website/static/favicons/favicon-16x16.png | Bin 0 -> 1223 bytes website/static/favicons/favicon-32x32.png | Bin 0 -> 2009 bytes website/static/favicons/favicon-96x96.png | Bin 0 -> 3775 bytes website/static/favicons/favicon.ico | Bin 0 -> 1150 bytes website/static/favicons/site.webmanifest | 1 + website/static/images/logo.svg | 1 + 45 files changed, 2012 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/hugo.yaml create mode 100644 website/.gitignore create mode 100644 website/archetypes/default.md create mode 100644 website/assets/icons/logo.svg create mode 100644 website/assets/scss/_styles_project.scss create mode 100644 website/assets/scss/_variables_project.scss create mode 100644 website/config.toml create mode 100644 website/content/en/_index.html create mode 100755 website/content/en/docs/_index.md create mode 100644 website/content/en/featureds-background.png create mode 100644 website/content/en/search.md create mode 100644 website/layouts/404.html create mode 100644 website/layouts/partials/feedback.html create mode 100644 website/layouts/partials/footer.html create mode 100644 website/layouts/partials/head.html create mode 100644 website/layouts/partials/navbar-version-selector.html create mode 100644 website/layouts/partials/navbar.html create mode 100644 website/layouts/partials/seo_schema.html create mode 100644 website/layouts/shortcodes/blocks/content-item.html create mode 100644 website/layouts/shortcodes/blocks/content-section.html create mode 100644 website/layouts/shortcodes/blocks/link-down.html create mode 100644 website/layouts/shortcodes/blocks/sample-section.html create mode 100644 website/layouts/shortcodes/blocks/tab.html create mode 100644 website/layouts/shortcodes/blocks/tabs.html create mode 100644 website/layouts/shortcodes/include.html create mode 100644 website/layouts/shortcodes/needs-update.html create mode 100644 website/layouts/shortcodes/params.html create mode 100644 website/layouts/sitemap.xml create mode 100644 website/package-lock.json create mode 100644 website/package.json create mode 100644 website/static/favicons/android-144x144.png create mode 100644 website/static/favicons/android-192x192 copy.png create mode 100644 website/static/favicons/android-192x192.png create mode 100644 website/static/favicons/android-48x48.png create mode 100644 website/static/favicons/android-72x72.png create mode 100644 website/static/favicons/android-96x96.png create mode 100644 website/static/favicons/android-chrome-192x192.png create mode 100644 website/static/favicons/apple-touch-icon-180x180.png create mode 100644 website/static/favicons/favicon-16x16.png create mode 100644 website/static/favicons/favicon-32x32.png create mode 100644 website/static/favicons/favicon-96x96.png create mode 100644 website/static/favicons/favicon.ico create mode 100644 website/static/favicons/site.webmanifest create mode 100644 website/static/images/logo.svg diff --git a/.github/workflows/hugo.yaml b/.github/workflows/hugo.yaml new file mode 100644 index 000000000..852bbfe00 --- /dev/null +++ b/.github/workflows/hugo.yaml @@ -0,0 +1,32 @@ +name: Hugo + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout repository and submodules + uses: actions/checkout@v2 + + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.121.2' + extended: true + + - name: Build + run: | + cd website && npm install && hugo --gc --minify + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./website/public \ No newline at end of file diff --git a/.gitignore b/.gitignore index ef61ff765..a98cea415 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,8 @@ terraform.tfvars terraform.tfstate* .terraform* -__pycache__/ \ No newline at end of file +__pycache__/ + +public/ +node_modules/ +resources/ \ No newline at end of file diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 000000000..cc87aecd0 --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,12 @@ +public/ + +# Modules generated by node.js for CSS editing +node_modules/ + +# Resources directory generated by Hugo local build +resources/ + +# Notebooks +.ipynb_checkpoints +# +.hugo_build.lock diff --git a/website/archetypes/default.md b/website/archetypes/default.md new file mode 100644 index 000000000..26f317f30 --- /dev/null +++ b/website/archetypes/default.md @@ -0,0 +1,5 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- diff --git a/website/assets/icons/logo.svg b/website/assets/icons/logo.svg new file mode 100644 index 000000000..791e15a0a --- /dev/null +++ b/website/assets/icons/logo.svg @@ -0,0 +1 @@ +Icon_24px_K8Engine_Color \ No newline at end of file diff --git a/website/assets/scss/_styles_project.scss b/website/assets/scss/_styles_project.scss new file mode 100644 index 000000000..fccde58c0 --- /dev/null +++ b/website/assets/scss/_styles_project.scss @@ -0,0 +1,174 @@ +// -------------------------------------------------- +// remove whitespace after footer +// -------------------------------------------------- +footer { + min-height: auto; +} + +// -------------------------------------------------- +// prevent overflow of long names in sidebar +// -------------------------------------------------- +.td-sidebar-nav__section > ul { + overflow-wrap: break-word; +} + +.td-overlay--dark::after { + background-color: rgba(33, 61, 122, 0.6); +} + +#main_navbar { + justify-content: end; + padding-right: 16px; +} + +.row > * { + flex-shrink: 1; +} + +.row > .container { + max-width: 1200px; +} + +// -------------------------------------------------- +// custom navbar with larger logo, dropdown on mobile +// -------------------------------------------------- +.td-navbar { + min-height: auto; + + .navbar-brand { + margin: 0; + padding: 0; + + .text-uppercase { + display: none; + } + + .navbar-logo { + svg { + display: inline-block; + position: absolute; + top: 0; + z-index: 33; + padding: 10px; + height: 95px; + background: white; + border: 2px solid #4279f4; + border-top: none; + + @include media-breakpoint-down(md) { + width: 80px; + height: auto; + padding: 6px; + } + } + } + } + + .navbar-nav { + @include media-breakpoint-down(md) { + font-size: .875rem; + .dropdown { + min-width: inherit; + } + } + } +} + +.td-sidebar { + padding-bottom: 0.5rem; + + .td-sidebar__inner { + padding-top: 30px; + + @include media-breakpoint-down(md) { + padding-top: 10px; + } + } +} + +.td-sidebar-toc { + @supports (position: sticky) { + position: sticky; + top: 60px; + height: calc(100vh - 120px); + overflow-y: auto; + } +} + + +// -------------------------------------------------- +// 404 page +// -------------------------------------------------- +.error-page { + margin-top: 120px; + + ul { + margin-bottom: 50px; + list-style-type: none; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + padding-left: 0; + } + + li { + margin-left: 10px; + margin-right: 10px; + } + + h1 { + text-align: center; + margin-bottom: 20px; + } + + @media (min-width: 768px) and (max-width: 991px) { + margin-top: 100px; + } + + @media (max-width: 767px) { + margin-top: 50px; + } +} + +figcaption { + font-size: 0.8rem; + text-align: center; + font-style: italic; + color: #6c757d; +} + +// -------------------------------------------------- +// for tabbed code blocks +// -------------------------------------------------- +.nav-tabs { + border-bottom: none !important; +} + +.td-content > ul li, +.td-content > ol li.nav-item { + margin-bottom: 0px; +} + +.td-content .tab-content .highlight { + margin: 0; +} + +.tab-pane { + border-radius: 0.25rem; + padding: 0 16px 16px; + + border: 1px solid #dee2e6; + + &:first-of-type.active { + border-top-left-radius: 0; + } +} + +nav.foldable-nav .ul-1 .with-child>label:hover:before { + transform: none; +} + +nav.foldable-nav .ul-1 .with-child>input:checked~label:hover:before { + transform: rotate(90deg) !important; +} \ No newline at end of file diff --git a/website/assets/scss/_variables_project.scss b/website/assets/scss/_variables_project.scss new file mode 100644 index 000000000..f9614eb5c --- /dev/null +++ b/website/assets/scss/_variables_project.scss @@ -0,0 +1,151 @@ +/* +Add styles or override the theme's variables here. +*/ + +html.smooth-scroll { + scroll-behavior: smooth; +} + +// Theme colors +$primary: #4279f4; +$secondary: #fff; +$dark: #213d7a; +$info: #adb5bd; +$light: #dee2e6; + +// Nav bar colors +$white: #fff; +$navbar-dark-color: rgba($white, 1); +$navbar-dark-hover-color: rgba($white, 0.75); +$navbar-dark-active-color: $navbar-dark-color; + +// Fonts +$google_font_family: "Open+Sans:300,300i,400,400i,600,600i,700,700i&display=swap" !default; + +// Front page styling +.card-img-top { + object-fit: scale-down; +} + +.text-white { + font-weight: 400; +} + +.bg-primary-dark { + background-color: $dark; + + a { + border-bottom: 1px dotted paleturquoise; + + color: paleturquoise !important; + font-weight: 600; + padding: 0 2px 1px 2px; + text-decoration: none; + + &:hover { + border-bottom: 1px dotted #fff; + + color: #fff !important; + } + } +} + +.border-primary-dark { + border-color: $info !important; +} + +.section-head { + font-size: 1.25em; + color: $primary; + font-weight: bold; + padding: 0 0 1em 0; +} + +.contain { + margin: 0 auto; + max-width: 1200px; } + +.image { + display: block; } + .image img { + display: block; + width: 100%; + height: auto; } + .image.left, .image.right { + max-width: 45%; } + .image.left::after, .image.right::after { + clear: both; + content: ""; + display: block; } + .image.left { + float: left; + margin: 0 1.5em 1.5em 0; } + .image.right { + float: right; + margin: 0 0 1.5em 1.5em; } + +#overview, #community { + padding: 6em 1.5em 3em 1.5em; + text-align: center; + margin: 0; } + #overview p, #community p { + font-size: 1.125em;} + +#overview { + border-bottom: 2px solid #b6d0ff; +} + +#community { + border-top: 2px solid #b6d0ff; +} + +#pageContent .lead { + margin: 0 1.5em 3em 1.5em;} + #pageContent .lead > .image { + padding: 0 1.5em; + max-width: 60%; + margin-bottom: 1.5em; } + #pageContent .lead > .text p { + font-size: 1em; } + +@media screen and (min-width: 480px) { + #overview, #community { + font-size: 1.125em; } + #pageContent .lead > .image { + max-width: 35%; + margin-bottom: 3em; } + #pageContent .lead > .text p { + font-size: 1em; } } + +@media screen and (min-width: 769px) { + #pageContent .lead { + margin-top: 1em; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + -ms-flex-pack: justify; + justify-content: space-between; + -ms-flex-align: stretch; + align-items: stretch; } + #pageContent .lead > * { + -ms-flex: 0 1 auto; + flex: 0 1 auto; } + #pageContent .lead > .image { + display: block; + margin: 0 auto; + max-width: 100%; } + #pageContent .lead > .image > img { + max-width: 80%; + margin: 0 auto; } + #pageContent .lead > .text { + -ms-flex-preferred-size: 70%; + flex-basis: 70%; } + #pageContent .lead:nth-child(2n+0) > .image { + -ms-flex-order: 2; + order: 2; } + #pageContent .lead:nth-child(2n+0) > .text { + -ms-flex-order: 1; + order: 1; } } diff --git a/website/config.toml b/website/config.toml new file mode 100644 index 000000000..e1a8a67ec --- /dev/null +++ b/website/config.toml @@ -0,0 +1,155 @@ +baseURL = "/" +title = "AI on GKE" + +enableRobotsTXT = true + +theme = "docsy" +themesDir = "node_modules" + +############################################################################### +# Docsy +############################################################################### +enableGitInfo = true + +# language settings +contentDir = "content/en" +defaultContentLanguage = "en" +# tell Hugo not to include the /en/ element in the URL path for English docs +defaultContentLanguageInSubdir = false +# useful when translating +enableMissingTranslationPlaceholders = true +# disable taxonomies +disableKinds = ["taxonomy", "taxonomyTerm"] +# deprecated directories +ignoreFiles = [] +############################################################################### +# Hugo - Top-level navigation (horizontal) +############################################################################### +[menu] + + [[menu.main]] + name = "GitHub" + weight = 99 + pre = "" + url = "https://github.com/GoogleCloudPlatform/ai-on-gke" + +############################################################################### +# Docsy - Goldmark markdown parser +############################################################################### +[markup] + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + [markup.highlight] + # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html + style = "tango" + guessSyntax = "true" + +############################################################################### +# Docsy - Image processing configuration +############################################################################### +[imaging] + resampleFilter = "CatmullRom" + quality = 75 + anchor = "smart" + +############################################################################### +# Docsy - Services configuration +############################################################################### +[services] + [services.googleAnalytics] + id = "UA-135379910-1" + +############################################################################### +# Docsy - Language configuration +############################################################################### +[languages] + [languages.en] + languageName ="English" + # weight used for sorting in the language menu + weight = 1 + +############################################################################### +# Docsy - Site Parameters +############################################################################### +[params] + github_repo = "https://github.com/GoogleCloudPlatform/ai-on-gke" + github_project_repo = "https://github.com/GoogleCloudPlatform/ai-on-gke" + github_subdir = "website" + RSSLink = "/index.xml" + author = "Google Cloud" # add your company name + github = "GoogleCloudPlatform" # add your github profile name + twitter = "googlecloud" # add your twitter profile + + copyright = "Google Cloud" + + # Google Custom Search Engine ID. + # gcs_engine_id = "007239566369470735695:624rglujm-w" + prism_syntax_highlighting = true + # Text label for the version menu in the top bar of the website. + version_menu = "Version" + + # The major.minor version tag for the version of the docs represented in this + # branch of the repository. Used in the "version-banner" partial to display a + # version number for this doc set. + version = "v0.1.0" + + # Flag used in the "version-banner" partial to decide whether to display a + # banner on every page indicating that this is an archived version of the docs. + archived_version = false + + # A link to latest version of the docs. Used in the "version-banner" partial to + # point people to the main doc site. + url_latest_version = "https://cloud.google.com/ai-platform/training/docs" + + # A variable used in various docs to determine URLs for config files etc. + # To find occurrences, search the repo for 'params "githubbranch"'. + githubbranch = "main" + + # These entries appear in the drop-down menu at the top of the website. + # [[params.versions]] + # version = "main" + # githubbranch = "main" + + # User interface configuration + [params.ui] + # Enable the logo + navbar_logo = true + # Enable to show the side bar menu in its compact state. + sidebar_menu_compact = true + # Enable the search box in the side bar. + sidebar_search_disable = false + # Set to true to disable breadcrumb navigation. + breadcrumb_disable = false + # Show expand/collapse icon for sidebar sections + sidebar_menu_foldable = true + # Disable about button in footer + footer_about_disable = true + + # Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. + # This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. + # If you want this feature, but occasionally need to remove the "Feedback" section from a single page, + # add "hide_feedback: true" to the page's front matter. + [params.ui.feedback] + enable = true + # The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful). + yes = 'Glad to hear it! Please tell us how we can improve.' + no = 'Sorry to hear that. Please tell us how we can improve.' + +[params.links] +# End user relevant links. These will show up on left side of footer and in the community page if you have one. + [[params.links.user]] + name ="Twitter" + url = "https://twitter.com/googlecloud" + icon = "fab fa-twitter" + desc = "Follow us on Twitter to get the latest news!" + [[params.links.user]] + name = "Stack Overflow" + url = "https://stackoverflow.com/questions/tagged/google-kubernetes-engine" + icon = "fab fa-stack-overflow" + desc = "Practical questions and curated answers" + [[params.links.user]] + name = "Slack" + url = "https://googlecloud-community.slack.com/" + icon = "fab fa-slack" + desc = "Chat with other project developers" diff --git a/website/content/en/_index.html b/website/content/en/_index.html new file mode 100644 index 000000000..56cd1d04a --- /dev/null +++ b/website/content/en/_index.html @@ -0,0 +1,11 @@ ++++ +title = "AI on GKE" +linkTitle = "AI on GKE" +description = "AI on GKE" ++++ + +{{< blocks/cover title="AI on GKE" image_anchor="top" height="full" color="orange" >}} + +{{< /blocks/cover >}} + +
diff --git a/website/content/en/docs/_index.md b/website/content/en/docs/_index.md new file mode 100755 index 000000000..f72f73291 --- /dev/null +++ b/website/content/en/docs/_index.md @@ -0,0 +1,8 @@ +--- +title: "Documentation" +linkTitle: "Documentation" +weight: 20 +menu: + main: + weight: 20 +--- diff --git a/website/content/en/featureds-background.png b/website/content/en/featureds-background.png new file mode 100644 index 0000000000000000000000000000000000000000..671391d41095ca0e4d90f7401806ca20046476c5 GIT binary patch literal 42389 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 literal 0 HcmV?d00001 diff --git a/website/content/en/search.md b/website/content/en/search.md new file mode 100644 index 000000000..e3690fd5a --- /dev/null +++ b/website/content/en/search.md @@ -0,0 +1,6 @@ +--- +title: Search Results +layout: search + +--- + diff --git a/website/layouts/404.html b/website/layouts/404.html new file mode 100644 index 000000000..4429eab84 --- /dev/null +++ b/website/layouts/404.html @@ -0,0 +1,19 @@ +{{ define "main"}} +
+

404 Page not found

+
    + {{ range .Site.Menus.main }} +
  • + {{ $url := urls.Parse .URL }} + {{ $baseurl := urls.Parse $.Site.Params.Baseurl }} + + {{ .Name }} + +
  • + {{ end }} +
+
+{{ end }} \ No newline at end of file diff --git a/website/layouts/partials/feedback.html b/website/layouts/partials/feedback.html new file mode 100644 index 000000000..78e65fecb --- /dev/null +++ b/website/layouts/partials/feedback.html @@ -0,0 +1,61 @@ + +
+
+

Feedback

+

Was this page helpful?

+ + + + +
+
+ diff --git a/website/layouts/partials/footer.html b/website/layouts/partials/footer.html new file mode 100644 index 000000000..56ec47207 --- /dev/null +++ b/website/layouts/partials/footer.html @@ -0,0 +1,39 @@ +{{ $links := .Site.Params.links }} +
+
+
+
+ {{ with $links }} + {{ with index . "user"}} + {{ template "footer-links-block" . }} + {{ end }} + {{ end }} +
+
+ {{ with $links }} + {{ with index . "developer"}} + {{ template "footer-links-block" . }} + {{ end }} + {{ end }} +
+
+ {{ with .Site.Params.copyright }}© {{ now.Year}} {{ .}} {{ "| Documentation Distributed under CC BY 4.0" }}{{ end }} + {{ with .Site.Params.privacy_policy }}

{{ T "footer_privacy_policy" }}

{{ end }} + {{ if not .Site.Params.ui.footer_about_disable }} + {{ with .Site.GetPage "about" }}

{{ .Title }}

{{ end }} + {{ end }} +
+
+
+
+{{ define "footer-links-block" }} +
    + {{ range . }} +
  • + + + +
  • + {{ end }} +
+{{ end }} diff --git a/website/layouts/partials/head.html b/website/layouts/partials/head.html new file mode 100644 index 000000000..7e474dd0d --- /dev/null +++ b/website/layouts/partials/head.html @@ -0,0 +1,56 @@ + + +{{ hugo.Generator }} +{{ range .AlternativeOutputFormats -}} + +{{ end -}} + +{{ $outputFormat := partial "outputformat.html" . -}} +{{ if and hugo.IsProduction (ne $outputFormat "print") -}} + +{{ else -}} + +{{ end -}} + +{{ partial "seo_schema" . }} + +{{ partialCached "favicons.html" . }} + + {{- if .IsHome -}} + {{ .Site.Title -}} + {{ else -}} + {{ with .Title }}{{ . }} | {{ end -}} + {{ .Site.Title -}} + {{ end -}} + +{{ $desc := .Page.Description | default (.Page.Content | safeHTML | truncate 150) -}} + +{{ template "_internal/opengraph.html" . -}} +{{ template "_internal/schema.html" . -}} +{{ template "_internal/twitter_cards.html" . -}} +{{ partialCached "head-css.html" . "asdf" -}} + +{{ if .Site.Params.offlineSearch -}} + +{{ end -}} + +{{ if .Site.Params.prism_syntax_highlighting -}} + +{{ end -}} + +{{ partial "hooks/head-end.html" . -}} + +{{/* To comply with GDPR, cookie consent scripts places in head-end must execute before Google Analytics is enabled */ -}} +{{ if hugo.IsProduction -}} + {{ if hasPrefix .Site.GoogleAnalytics "G-" -}} + {{ template "_internal/google_analytics.html" . -}} + {{ else -}} + {{ template "_internal/google_analytics_async.html" . -}} + {{ end -}} +{{ end -}} diff --git a/website/layouts/partials/navbar-version-selector.html b/website/layouts/partials/navbar-version-selector.html new file mode 100644 index 000000000..04aebe324 --- /dev/null +++ b/website/layouts/partials/navbar-version-selector.html @@ -0,0 +1,8 @@ + + diff --git a/website/layouts/partials/navbar.html b/website/layouts/partials/navbar.html new file mode 100644 index 000000000..d65dc0b54 --- /dev/null +++ b/website/layouts/partials/navbar.html @@ -0,0 +1,37 @@ +{{ $cover := and (.HasShortcode "blocks/cover") (not .Site.Params.ui.navbar_translucent_over_cover_disable) }} + diff --git a/website/layouts/partials/seo_schema.html b/website/layouts/partials/seo_schema.html new file mode 100644 index 000000000..c75ca7ad5 --- /dev/null +++ b/website/layouts/partials/seo_schema.html @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/website/layouts/shortcodes/blocks/content-item.html b/website/layouts/shortcodes/blocks/content-item.html new file mode 100644 index 000000000..c5dbd4da9 --- /dev/null +++ b/website/layouts/shortcodes/blocks/content-item.html @@ -0,0 +1,9 @@ +{{ $url_text := .Get "url_text" }} +
+ {{ with .Get "title" }}

{{ . }}

{{ end }} + +

{{ .Get "date" }}

+ +

{{ .Inner }}

+ {{ with .Get "url" }}

{{ with $url_text }}{{ $url_text }}{{ else }}{{ "Read" }}{{ end }}

{{ end }} +
diff --git a/website/layouts/shortcodes/blocks/content-section.html b/website/layouts/shortcodes/blocks/content-section.html new file mode 100644 index 000000000..df2d996f5 --- /dev/null +++ b/website/layouts/shortcodes/blocks/content-section.html @@ -0,0 +1,12 @@ +{{ $col_id := .Get "color" | default .Ordinal }} +{{ $height := .Get "height" | default "auto" }} + + +
+
+

{{ .Get "title" | markdownify }}

+
+ {{ .Inner }} +
+
+
\ No newline at end of file diff --git a/website/layouts/shortcodes/blocks/link-down.html b/website/layouts/shortcodes/blocks/link-down.html new file mode 100644 index 000000000..365d8d11a --- /dev/null +++ b/website/layouts/shortcodes/blocks/link-down.html @@ -0,0 +1,7 @@ +{{ with .Parent }} +{{ $id := $.Get "id" | default "overview" }} +{{ $color := $.Get "color" | default "blue" }} + +{{ else }} +{{ errorf "The link-down shortcode is supposed to be nested inside a shortcode"}} +{{ end }} \ No newline at end of file diff --git a/website/layouts/shortcodes/blocks/sample-section.html b/website/layouts/shortcodes/blocks/sample-section.html new file mode 100644 index 000000000..4eb2bf9da --- /dev/null +++ b/website/layouts/shortcodes/blocks/sample-section.html @@ -0,0 +1,10 @@ +{{ $api := .Get "api" }} +{{ $last_updated := "" }} +{{ $version := .Get "kfctl" }} +
+ {{ with .Get "title" }}

{{ . }}

{{ end }} + {{ with getJSON $api }} {{ $last_updated = (index (index (index (index . 0) "commit") "committer") "date") | dateFormat "2006/01/02" }} +

{{ "Last update " }} {{ $last_updated }} {{ with $version }}{{ "AI on GKE " }}{{ . }}{{ end }}

{{ end }} +

{{ .Inner }}

+ {{ with .Get "url" }}

{{ "Go to sample" }}

{{ end }} +
diff --git a/website/layouts/shortcodes/blocks/tab.html b/website/layouts/shortcodes/blocks/tab.html new file mode 100644 index 000000000..4db7465af --- /dev/null +++ b/website/layouts/shortcodes/blocks/tab.html @@ -0,0 +1,19 @@ +{{ if .Parent }} + {{ $name := trim (.Get "name") " " }} + {{ $include := trim (.Get "include") " "}} + {{ $codelang := .Get "codelang" }} + {{ if not (.Parent.Scratch.Get "tabs") }} + {{ .Parent.Scratch.Set "tabs" slice }} + {{ end }} + {{ with .Inner }} + {{ if $codelang }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "content" (highlight . $codelang "") ) }} + {{ else }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "content" . ) }} + {{ end }} + {{ else }} + {{ $.Parent.Scratch.Add "tabs" (dict "name" $name "include" $include "codelang" $codelang) }} + {{ end }} +{{ else }} + {{- errorf "[%s] %q: tab shortcode missing its parent" site.Language.Lang .Page.Path -}} +{{ end}} diff --git a/website/layouts/shortcodes/blocks/tabs.html b/website/layouts/shortcodes/blocks/tabs.html new file mode 100644 index 000000000..aeb9582b2 --- /dev/null +++ b/website/layouts/shortcodes/blocks/tabs.html @@ -0,0 +1,50 @@ +{{- .Page.Scratch.Add "tabset-counter" 1 -}} +{{- $tab_set_id := .Get "name" | default (printf "tabset-%s-%d" (.Page.RelPermalink) (.Page.Scratch.Get "tabset-counter") ) | anchorize -}} +{{- $tabs := .Scratch.Get "tabs" -}} +{{- if .Inner -}}{{- /* We don't use the inner content, but Hugo will complain if we don't reference it. */ -}}{{- end -}} + +
+{{- range $i, $e := $tabs -}} +{{- $id := printf "%s-%d" $tab_set_id $i -}} +{{- if (eq $i 0) -}} +
+{{ else }} +
+{{ end }} +

+ {{- with .content -}} + {{- . -}} + {{- else -}} + {{- if eq $.Page.BundleType "leaf" -}} + {{- /* find the file somewhere inside the bundle. Note the use of double asterisk */ -}} + {{- with $.Page.Resources.GetMatch (printf "**%s*" .include) -}} + {{- if ne .ResourceType "page" -}} + {{- /* Assume it is a file that needs code highlighting. */ -}} + {{- $codelang := $e.codelang | default ( path.Ext .Name | strings.TrimPrefix ".") -}} + {{- highlight .Content $codelang "" -}} + {{- else -}} + {{- .Content -}} + {{- end -}} + {{- end -}} + {{- else -}} + {{- $path := path.Join $.Page.File.Dir .include -}} + {{- $page := site.GetPage "page" $path -}} + {{- with $page -}} + {{- .Content -}} + {{- else -}} + {{- errorf "[%s] tabs include not found for path %q" site.Language.Lang $path -}} + {{- end -}} + {{- end -}} + {{- end -}} +

+{{- end -}} +
diff --git a/website/layouts/shortcodes/include.html b/website/layouts/shortcodes/include.html new file mode 100644 index 000000000..b15253c89 --- /dev/null +++ b/website/layouts/shortcodes/include.html @@ -0,0 +1,43 @@ + +{{/* Handle the "file" and "lang" named parameter or two unnamed parameter as the filepath and coding language*/}} +{{/* The first parameter should be a relative path to the "static" directory. Ex: "examples/jobs/sample-job.yaml" */}} +{{ if .IsNamedParams }} + {{ $.Scratch.Set "fparameter" ( .Get "file" ) }} + {{ $.Scratch.Set "lang" ( .Get "lang") }} +{{ else }} + {{ $.Scratch.Set "fparameter" ( .Get 0 ) }} + {{ $.Scratch.Set "lang" ( .Get 1 ) }} +{{ end }} + +{{/* If coding language are specified, then the static file is a code file; If not, then the static are non-code file. */}} +{{ if eq ($.Scratch.Get "lang") "" }} +{{ $.Scratch.Set "iscode" "false"}} +{{ else }} +{{ $.Scratch.Set "iscode" "true" }} +{{ end }} + +{{/* `fparameter is a relative path of the static file from the `static` diretory. For example, `/example/python/hello.py` */}} +{{ $.Scratch.Set "filepath" "/" }} +{{ $.Scratch.Add "filepath" "static/" }} +{{ $.Scratch.Add "filepath" ($.Scratch.Get "fparameter") }} + +{{/* If the file exists, read it and highlight it if it's code. +Throw a compile error or print an error on the page if the file is not found */}} + +{{ if fileExists ($.Scratch.Get "filepath") }} + {{ $filename := (path.Split ($.Scratch.Get "filepath")).File }} + {{ $link := printf "/%s" ($.Scratch.Get "fparameter") | safeURL }} +
+ + {{ if eq ($.Scratch.Get "iscode") "true" }} + {{- highlight ($.Scratch.Get "filepath" | readFile | htmlUnescape | + safeHTML ) ($.Scratch.Get "lang") "" -}} + {{ else }} + {{- $.Scratch.Get "filepath" | os.ReadFile | .Page.RenderString | safeHTML -}} + {{ end }} +
+{{ else if eq (.Get "draft") "true" }} + +

The file {{ $.Scratch.Get "filepath" }} was not found.

+ +{{ else }}{{- errorf "Shortcode %q: file %q not found at %s" .Name ($.Scratch.Get "filepath") .Position -}}{{ end }} \ No newline at end of file diff --git a/website/layouts/shortcodes/needs-update.html b/website/layouts/shortcodes/needs-update.html new file mode 100644 index 000000000..6dcb7d2d1 --- /dev/null +++ b/website/layouts/shortcodes/needs-update.html @@ -0,0 +1,4 @@ + diff --git a/website/layouts/shortcodes/params.html b/website/layouts/shortcodes/params.html new file mode 100644 index 000000000..499251b98 --- /dev/null +++ b/website/layouts/shortcodes/params.html @@ -0,0 +1 @@ +{{- .Page.Param (.Get 0) -}} \ No newline at end of file diff --git a/website/layouts/sitemap.xml b/website/layouts/sitemap.xml new file mode 100644 index 000000000..20ea79af4 --- /dev/null +++ b/website/layouts/sitemap.xml @@ -0,0 +1,21 @@ + + {{ range .Data.Pages }} + + https://github.com/GoogleCloudPlatform/ai-on-gke{{ .Permalink }}{{ if not .Lastmod.IsZero }} + {{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }}{{ with .Sitemap.ChangeFreq }} + {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }} + {{ .Sitemap.Priority }}{{ end }}{{ if .IsTranslated }}{{ range .Translations }} + {{ end }} + {{ end }} + + {{ end }} + \ No newline at end of file diff --git a/website/package-lock.json b/website/package-lock.json new file mode 100644 index 000000000..3b4b018d5 --- /dev/null +++ b/website/package-lock.json @@ -0,0 +1,1020 @@ +{ + "name": "website", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "autoprefixer": "^10.4.13", + "docsy": "github:google/docsy", + "postcss": "^8.4.21", + "postcss-cli": "^10.1.0" + } + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", + "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", + "dev": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bootstrap": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz", + "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.6" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/docsy": { + "version": "0.6.0", + "resolved": "git+ssh://git@github.com/google/docsy.git#dc94be3e13e2090ff6cd1c50edd650ab7ebd968b", + "dev": true, + "dependencies": { + "@fortawesome/fontawesome-free": "6.2.1", + "bootstrap": "5.2.3" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz", + "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", + "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/website/package.json b/website/package.json new file mode 100644 index 000000000..5000fb607 --- /dev/null +++ b/website/package.json @@ -0,0 +1,8 @@ +{ + "devDependencies": { + "autoprefixer": "^10.4.13", + "docsy": "github:google/docsy", + "postcss": "^8.4.21", + "postcss-cli": "^10.1.0" + } +} diff --git a/website/static/favicons/android-144x144.png b/website/static/favicons/android-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..c08925589de8bfe9478d89996c4b80e215f9ca9d GIT binary patch literal 6837 zcmaKR1yoeg_wEEWbc2X=jC9A)NDPugcQ|xQi`0O0BOndZARwZ24IK)IQj&u-C?X-! zZ+z>$^?vXFV%>G(p7ZU!&)(;(d-nQnyq=Ca2_XX^001D-fUD?Z+q8d$01sR5sC{q4 zHaJd7+DZVxyHuiUJ6!BL3lgrc4FCjl0RRy%0Dw#EP{b|(;4cIK?ArnWup9t@&by!k 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 literal 0 HcmV?d00001 diff --git a/website/static/favicons/android-192x192 copy.png b/website/static/favicons/android-192x192 copy.png new file mode 100644 index 0000000000000000000000000000000000000000..ccacec3a4aa8d3e10ff18e2ffa357b6f95a67762 GIT binary patch literal 9200 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 literal 0 HcmV?d00001 diff --git a/website/static/favicons/android-192x192.png b/website/static/favicons/android-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ccacec3a4aa8d3e10ff18e2ffa357b6f95a67762 GIT binary patch literal 9200 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 literal 0 HcmV?d00001 diff --git a/website/static/favicons/android-48x48.png b/website/static/favicons/android-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..f754031dfb0ac0fd7859c2569369f465b4ce3aa4 GIT binary patch literal 2293 zcmZ{lc{tSDAIHzkm?4ZU(jZ2JY_r5LlO{4^)L2R}QU){3&@h>iCDka)uSMCibgh*& z6ltSnTw#<#E0rQj*S;j_c5}ae&+mDD{qFPpp7VUp=bZC-y+5DNIscp!9&XNPc`bPW z0GjSX+W~p}vdN*K*&Du?0y&uw2ZjRxb!QcR1R$Y3HppcM1AsUq0K|y^e20$2p8<%1 zgrh6~D7gS=3i2C0?VtcEaGNs?EG>`XyXBeCiL8juaFYED!=SWP2XCK)M5qEf&B2TN zZXz#izxpoq_M_2Xd$P038=TVQLOoV$Ak;l)U`BQ)Y25VU6WFa`7vRU#L-ATJp{7@k z`Jm5!)Ua2(l;jH2SCdm!^L6Q|a424_aX~#W@C|=sQ~ylM-EHlCeFqzxT5+2?jG8t^ zPv$R?mxPn#km7BPhL)-Ybv$0F?$7fV3I}DS9kWJ1n7+pAr(nqle?T1|NP^(mczUjE zR-~4|2Cp51_*`!3FM9)~E!M(jnM6E5OV}^&NxWE8!RGXLXjqQ;y2M-F>utkHjF>*- zHGpBMPTO`DZiNjfUe&QhJ#R-C8Udq1W#lIq4)j|*IuFxinUpp$Yi)prBy>PW%NYI_|S@9wMWa@hAYZ=zy;&!b03ps6}^ub`1%=!?!>Z)!p+K%sePq$Zj7zh&-$jo;h4V#4Zcaq_^>|^WIzqL0! zK-itQ^gdW8Ur$xnq-MX;(qZFiQpQMLHishE&AbE0q}?C)%kzh!>BZaU=|zEJ7jI6J(1{?Mg7H8OKw zq;m`ihp#KUdxa^gD;xM~r=ri01hQnatwLODj;D(bF_=%xDwPgN0nO_O6gE#99qm#lJSm+q@wg<8^7+8$Ca>u2GjQ5(S|hJy7h6)=TbiC){bv|s ztQIlWZ&`o19nqTf=Xu#LqeiZYEE{52tN9GTKR3q2Fjwkuxg`0o1!z)Cf2Zm(zk#q~ zKe@=A{hjMyUwLIc+7_SF24mlFElE`zq6LEctpQk!L+Zq>q%gV$& zjFgf2V3>_VO61si1uAqykQLaHFtL7L-NN)jbM%q#1~k_UA7rO}q3nutG=$tXc|7X) zMlWi9H|C+^4+kC1qe~GWeC_3SpM?`-BZ>@`ZC}`h6E~$<|CK8Pr0{o0)M<-q%@U>W z&j~uvh=6T>f;|A2AtXb*A(+2%W=IuS*D4?Pzn+oTANb%In(r@ z{^bW$=`*2ST55IJk@nc_eva9XSEj@6=`dx&wexEyDyn#xq?S0T=PG%O;VYXun%s}% zW=nmanrh8(y&U~Lk6K+zbUklW$({j4*o}>X)9*wWyCFb zjYVK#*L$vgrFf@=?Z_xi*d;~%tYXdx^t#oHqnWz~7JuGth3h|XT&?Q&#d&9aP1zA_ zz44QE_4J;EsVpaV7H@Pe{s<^p@oh0wj>BlFvYnM^qs?gt!(KMTBTO9I_M|RiCK}tG z4t+8(R^VlGqNL+>sEW4c7>|iDlIigqr2mHG$oFF`8bNz0& zf8=3!K@=d^;7J6M6@CLTX0g8~Wvy&Ic0r)LjvMx}^q0sJMLc4a*K`?JW2f8|r zA1>M-5rPX2ILHf%2p8i1`{d9vI4CfPV-tjD(j1OGse} V_2*U|cL1sY=uU35+AXYOe*?i7y%Ycd literal 0 HcmV?d00001 diff --git a/website/static/favicons/android-72x72.png b/website/static/favicons/android-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e6c6601d20bc10a0edbfaf0ade8a4b4a3c4122 GIT binary patch literal 2954 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 literal 0 HcmV?d00001 diff --git a/website/static/favicons/android-96x96.png b/website/static/favicons/android-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd728d4994107ab3a88874b8772cb60566a049c GIT binary patch literal 3775 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 literal 0 HcmV?d00001 diff --git a/website/static/favicons/android-chrome-192x192.png b/website/static/favicons/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ccacec3a4aa8d3e10ff18e2ffa357b6f95a67762 GIT binary patch literal 9200 zcmb7~byQoyx9>v&Bsjq-h2WAFD_)9QDHOLN#ao;J#oetGDHPXI3IU3{rAP&eTacn9 zDNvl?^7y^G*1d1N|L&}H=KOKa%$nI}&zaeu?~d2eQX?b2M+^V}$kd-I>)qW^|G6N9 zceUQ43m5?4Xi-;IFz}n-$@fn;H*DGuy<9}HJYv%atb18eO$|`1^MtWe8py|R{?<)V zhp;L5ttri(@$-?Am7L2@h;aaemo#O``2T79PQhGeEVE0iYu&3!F#l4)It=k!xY~7 z`KikMaFM&0;x$JIXwso^d4M1?Ng#T>@;8Wu5X0Mk@2{JpUno1oo(&rIXzat04x7CJ z55ST@i%@mv&-XV#IS?k{8TtNat*28Z#oW*^HqQ4)l*;Ld(5iw^Iy2l=c>RDZL}--B zz$}MKfdNj1#{hgJ)$)ep)Ibtci4Dyv?&#sVw34kQ^=r~ir~b~v^6_gL1jXvOy$@jK z8ze$;9cz!mc)2c%Xzj!tjJ<4_NbhD&_*5K=m!{WCgiZ>5B=o4HW)DAvyb+$JbYMnx zX(i7ItbN~D{eZGGCH=uAsG&CC=A|${mUiWp6&|0vj6woNnSY*-3hytEt20UI_T*WC z99<=L)W+d%v=a-mtzy+TWf4=t)qJ!^^~lIp*vo)AQ`mBc*49*^bpZ%20s$|~@TYl8tybcz70GK1Ew@qPPk#F8Q zw_Sf}tn5;hWyzU^OK|c^!q89W0qi^l*oy{DTqvFC5b|V8iD|(?FcXYqeT7I(p1*-> zg^Cz%Ohk%eOxI=lh=;1WVA=4hMGYpWzfv<$s8SJ;u?DV2!ByIw_!b(u@vZy=@pRP_ z=Sr}JPaAU|0%oiw=AbUs1R*?@AaP(OFcwcM%K0DuE}^N4rZnKhoU~;2s1Qt7yy)<@^FA_!;tV4ma{6S2aHR_+g(5(8Lu-6N16S<2!CC}4u^z=Y zwKQQaf#Ix%vD9aQd;xULl3Y$Qq0|T_q2=-$_0%!wzI7~+6@XM#AqRE?^R$+o^xM!j zu=3hpsmEok5632^C|9XUtWAjIUs+H@5msV{)J?o!1IM?{{jF$)jH}#sp1UGH@?+D= zLV-Gi2QA(MrQsZjvz|}Jk#4eGhl$E!Fv%FlShCE0NLDMokb#|-0Jjj|3U3Ni*e7%n z_4MRn__CG6K^t+;#2N<1JN(>x%8UcYR`u+S?Eb=qySeL7+h|0HMvA!0c7{IseC7d2 zp*E>21klJJC!_Yf6~3_R(C672!qo;NT%)nbTFH0xAbqm-%VaWD(qqYll3-RN zW^?omR5mtdUXQ>&o3^W0Qvk4DQv5GT^0lq^(si8C=q(ch)H~s^7kC(*X?ek`PwxEo za;7s0qiv$_>&uS+^T$WCv9_u;z*hiE!fz^#Z_|Pi_2qJ~R<4ej-!$TiLu?t9bcR&` z6PTY+&X^Qq<+`{^=aNJiDS~-lnl-QW^sLo=$S3>pI3e=U&XT3hH3jL5mE|x#lmPVM zo!x*p^bST!l{6+9oBM~uv^hQ&9>A2Jv{ughSZDN#wkTcMC$JwN3v|H>kH!#XToP_4 zzFOem{qbj!ylT)7Jo5rUN*Vn%?b|%K5U{J-BsRHPW7xR1MFCd@)HAchL8n(((-Y%l zuV7Zo$FuBqDt!_lJd$qCk%Ftw13J^bQvKDu3E+~JdUPV&`^DHG}H8HTwml&E*c+&*^y*@ zY#QuE+-n?u0Ik^+Tk)|fa5xiXU)?N>yUy34E2Gh_Z}vHL=QWP+8(dSDCPVW_aNRk` zEm+ifrN!nKQnMrXyRhi@bW56{mj4Vfr7URlNZPRpsW5=xAJs~Jn88YNF*bj)6L zEBQ=j8SIHNR}LX}DKNEGePJLfG5s;NGB~)@v z=%7OQ-Dbg!)e~}rbe&Q;xXZ}FY5d4dAdCO}UC>^}S#J=oZZ}kiuS29VSi)?>HYkPTA?QYO3ySHO7tlb-Pdc*p7VVDq1sPz(r@G*9G$-)D!b1s1h&p# zKX28CxVU|QAi=Emg8k>z`%)|J8zJF_9e_@vD!><&KOSSO?^-q%YGw(TCV9!e%cg}> z3=i1``j0^QMu^|Npsccn^NrWWSBs>?wv!4x!YiMteT`?vD+@N^7}Fo4`7ANu3vcoE zW0i~wVDMQl99((O_^hc_t#T^~)w?j$jSHHe%7pi^f3^?G(H!CTPCR24kMk#*@vDA3 zYuc0#VB5z>$T;Li9<|4gHZojJ+s#{)N+-SBmyN;|hB7Xooyz&XG~UTz z7HznTP9V9um-TU9gLYH>vKzPlUD>QdgA!7a9s+4jf8Fg)3Co7a3lgLFQTL(OAWE$y ze;NmFY>8qQ@B3QaUmxQ~hRxRaSxFjWzFlb<^qrB}Q&56di_u%PfB)_DoIfoN|z-~lKlb`dVNGn|i1)8ZeJTJqjQ7Ni;To5=`B!)YPspq*eAC zR1UhP+22D4oew&J58Sru`sB!sH^@`Ajh@V0r^l$SH|N4LlmSZ$;>G|X6+?;`{-&QD z-@Cr#+ex_Gtpn?ohd?)nZGr)0?onlxAXDHi%0CRbdH-$nEB2M37^%08ZQF?Sx!dmcNKk+7+jM4jYy{llCFru=yD)_(;*A!Wsv5G66gj zHM{jgfAE4S{drI_A7coWeSUl{vtc759yd#Tn5Bpg(sVsmn1_l90=P_bwtoC+CsDj` zgTQoiV?&|ixH&;Eiw|O1to(+mSUMimnV-{ycTv(-ky`PbPw`J7!S`&i=C|gH5UJg! z9Zupa=vh089@?gnvg-tMFeZ1}!p~|eWs)~|>d&_x->cnywflTr?;m^W4&s*7ym*kf zDpwRKWgck_LQvPD*i2wH&1MFnSBAgih`aq9bzozcU+z<%iYcqQ<^zyLraZ{Z8UL?* zj&kLNZKck+J+j_G%q959LteN@m{;8ZZ{4fUZjn!B@)y_<*{F-3&y!qghF3fqqz|~t zeUn0;@p?M)mIBr39m%lm*r)abV2Q2cZEbF=tt2an17#N)MHrHNjpzm$ZWYutaI%xwQChXV= zQJ=k4r~$j>)inlAmK&hNu$^W@eD?ay8;eQZi07tlU^5UC&T4n53QPx($QEUa=qx^e zzc6wj<#X~1U%^^iR|@R>XK!Jv!h+Ju!pS~u)5YDwEHB)d;c|IR{j7@Uw3jrNuK8k=&N z{o{n|EC&H{)e6YJw051JaTxvSumJix*?ymx?*h;Uq#E1jCWD6+#aYq36U1-l?3f_o=FS(44bO6!*p~BzNcu) z_3XWa2WwKl8BQ(Mjz!M_Q^?JjPn1auYU2h}+)oNT?mz2v`2S4h`Y7?h^H zoVmq^;$~pvoZ_gFRlsu;yHy3dn&dmIi(t-^YQBL?IRQu~?>@5?adXC{Sy#vo40Vdn zJ;eKhH)fVcB74W}#`ZP#fcZOg1L9&^r83aOl^e?QR4Xi87`T0VOS4aHwQ4Wtw?2@0 zg2aAnxHL*E`|vN4+}#4w@OI17MQ+?Ue1_73hqCd0XRtSRQtpTTZJJtG2w>awF$J1u zmr1XhlLxhe2A|QT1iQ|*doe8{e*NM)-?>pZIuliGQk%LWJ&RzahfKJoSgG-kCU+s< z8)!>%qdB|<#LrIn(}v}E)2OZX)7$HZLD{5NelrtSeY`gjN0$W;W*_i`dWCjdO-$zl z_|iEP1O~{LpTbRJ?))?69br{SXen|L@~b1*A6p3X8xjh=KsoKmc^MWERY0HI`*S*g zVa^A=O}bQ!rH%)X%GlO%sA{*~KA$9B6t?xi=Hj%NXY*%!oT^5Hm-~*|iBx?3MSp}s zne@vsgN+GXb$El302l}Z9D19j?)LXn3zi=)yor3$jV)98#cB28Ktxux{(MN$6PTW< z*DxO+u?RGm*e)9$MY@~#EiLRs+SY6};!H}wHeE`u^@3&8E8i&tO00cdR)6YlJ$`Kk zmhU8krig;AmoH#E{_ARr?0|7LR7lA}aOK{+9rYZSo4BVgVGexc+Kl_7)G=Ag04k@P z|5cSk1*p4S7Yb5^k#UiWWkniL|3rw;)3a(8>!B&kUU>U0IwR%DL9bZrT_*kw*HlP8 zL7eXw-jlA<4)elxefz~FQ-0R5P9s3L3+x`*&j(5|oB%`OwwPHz$2s+t&YdfSI(!mw z(GDZ|@JGQxzHgNHa1W&`ACLl*UQ`FY4?8G&VYTbg&;g?t?c7UP^}k0djn`_WPEV}5 zqLW?&)K{Mm-+O3VYw;ynKjIUyMp?-0<+fbD8%ukT-|syr(`&Al|Eq2}_-OdeZ^-U7W?xdXa)~gjtvr$BgHJJh&vCIUu)X)$ zKP3(E+cBN3z&A2~9|@1V?kdvpt=cg(z!~6(guK-0dA&>SC%KXa-fyPtlIsi?OV|#7 zU*09YmXGQ}xuJOG>Vl`j`1j?^)1~p-c14!=0-h;NUkWm*H|b>ntzr$!70!8k2hg(l z9k`=WlJxoH*eW9C`|0n)G{WOaZ!z_FwRC57#J)`SQS*GM^myR9b(6bpAF9ZG?iRpz z%X?#p9r||AwpV}JAM7gq+^|Akgx=fZW`{t>Ul6|BkCblsyNoejQD3PnvLqI+R0)#U zk92$gOb~1u<_;3<56-v$6TK$ZTwcG(`Tq~I9ns|rNSAD zwI78~mN`k^_rPPiF~VO&nrEfDcDEV`)4J zTRu6uP_wdRaE%HIy}4cr@v!s@tvI7bQ7~SkEhBE}RwZ2;>*f5=vA$$Kx=QA|tWh4z+AA zv~ZD@c(1Lee}OIz@@>O4wwblg<{sbD^DyTiz2H~0X5&ECuzo7U?rDJlXm-HHs}CLsf~VDiV*8i1UXNJ<_dsXQ`-) zv>9jNi>+Qp4illSI?K>S`oveFhgi_I;R+wEz}J)QPFP^C!M&FruCEjRa`9^K2xDFZ zTTu!OiW$FMyKzr8qCNk}zKjZ3FtP#r>_L=h?J|vyiE0VH5-TjXh)^toe(Bm*NA zD?ZYwkuo&_{W707)R_)cw&O<-Hiz$o_ur<_`q8y&S!Ea15S03@B!rXPNc*oGrrr<4 zDX7d^f3JDjD^7Um>Tfv^{Q5#cg(M6}=7@H$S{*P}5=b>E%f~3{wF)Q z`e|0_=4Mo6fR#dGRnN+K6&7TcdqX=?(KBeI5UpoZ>lo zC_w=shIp|USyR*Id2A);CBGQD;b3sRzbz4{-5u(Cp4_Riju!TuVfm<{{LfK`%pe+o zGV1cwj4X9nS*9VMbEeOJzq3DU=jEmyF8WzQrRI&mlb%#Y4U(GEtabv9-rdW(rL=}{ znb@;RaXbmUqxN>SFYXS1SHC`p)f!!9bQ|Ks`PoVL#(X6AVsC<2-L`x(e zzt-gnkc}matJZ04*1GyG!t6HoME1gSd0?{o!sF}2E-oQt^6!VihEd@&$9FR5(k2+u zp&2Ul7u+#Dm@CA@nBUU8jZ? zFHOC9P~r@+%=dzwRz$Q{Pnya140U&8-b+wnh944+hopsW7a4MVko5{Wz30M-ds39T zvjEn+YQd8Z5BXaB{aw&%-Q}J4E*#i7zxEV>D>7`c-1EF=H1ObaJ~f{%v3#3*mX%uk zjfvGggyNC-*fdd&iFrsA|gVbS7beLYs{H!ZBm z9QTfKfhx2YrzRPnx0&a1QqzXp0DLMu3DuSF+O2-{?Pk~OpUi3;yqc-t*Xl{n*RW+F z76-NfNEQS9XATT|_Tx(hjVu?>vounuDjxg|H)-0@EXmj010@6H3{ne0Awy?}ERv~t zHQ9L@UrQ?}x=w8@qUb4IeLew4@kqjRWs=DPcj20k{Y>&PpjX2%8S$_G4ygx?pUzl@n% zG{;D2etN&T4^aIW@JKvmR=Kfxl`w&)k%|vQRn;K=MSR`vKsiKYlu9`SJkn&;{R17Nl zsH^q0JNO&*&I0zo*`;;5d!ghH3~`Z@!7sI1f#FH3j=qlAdoVwI2NgToVvL6-=a!ab z|L)LmW5?6S$}$bwbr(oGm~vZl4?qLojaL%$DZn!Ov9(`5WX>m9@mV=VuLm*KCO0;i zx0ma9;^+mpmea=zmSO6(;MINs0N4L;-muB|8Cgi!GTwiaUT5U4$?9QVa%6JC9DzMt zJa~0oc{_fg1e?e+TJdrIN!_C-9<&?)u19S^`Fnq!HqV1~eO~S0u>de(vT@If{T1z> zRONF`?nXGs{18S5`ag^ueLl~4r!(2iz)gKxFe7>%Kpl45b@0dV)=p}7tB>`wcs)vx z^{0(YkZf{#n#kZuOHxs4SN?`r9JU2mN%_+l*-~vo0APJjf@-CF9C+7MBz{Tu?Ei=G zi9BTfYE>q)!?NoIYoB^xhYIPNCKk7r?BZXlHHHTSrp1Qo`jQJ5oSdmYLNcMr_5Bye6ek+FJ1~=Z7`9!)mN4V zRlhGOs2L+a;}<@=)8h<@0I1(mv#+L!J{m|dK7dfi%~aMgF1!d3uttYJrEHQGoO}r| z1lxYIbuHDe6W2FLzdHA#F=G6*?H#^p*mzz{OiYB^xsSoX+J$`h8 zw)|7x^HTV+y`q2q!w2($l!`>0O>*L|Jn3q+qh`&WWW`~vVw(O;NoLwd{e#B77bQ*v zMatY*_HS`9tFd(_Um2C1VV$l@rH!@Y8Q<8FVGl>oryM1^r;-Qe<>`Si?)ldy6G!w> zR8tKb=Zm2gS$UKBrCqO8l!d0&NJJJ7NwFdTBCAN z!|+Jp&h4w#C6w}{Vd^38bwC_+` z=REc6A2yVJ(#gQ=n#wVt??U`#o%x-$UdU0E}A5c9%dJ&_X}a?syOY0 zDE&)D-I3-Fh?8P!+QR7@8@+7<6U@^9eM&k9$Am|5_sRP70MG2C&EK*r{0MhxqA00C z02j)Fpo2*v^PT3F`*%!yIlM6=*+;)z`~6{WFy#o_MK9amPuRpQFSyQ5z|9H63{c1B zzjV!2M3pH`6C4WI4s%v8BEFcBo-T12QArgpdS6H691E>>_Dz(t>~H+IHLIAU{2U^G zr@HsegU#OljK8z>8(XuiQM`~O8fj%-99sRvvQMl1?W5V=kLiUJl{A~kbcip_R60O@ z+|?=2_}#|Nq;^RseGSMr;#b3Mh2__irDd^Rv16ZQ0k8XWQ`yENPn`Vxd@nSH?{-6% z*hJx{l$6F``~mVk&;t5_Q|Qfel;YPaV}td-`36K&Re*Gdp|+w@Um5ATf+H$~eP5Q_ z-6`&P+1|4FYz&O?Tk$3ek`aRq6whw1q*yCy+w*j?_1J#X|A)U`s4vU|H!noHvB?8v z2EW)Z-u&s-S<$AMtef0&hd;HLZt;pwxD)xO$D6;%rzq-u`Ik%^(GWK(>lbaaME+m- z0tfN!4I-RCA^CbKij;IJEfi9PhdMvFR%O(fGj^?ov_Z>9H}(I?TDbG0!6qh|D!HEj zo3${-Q53^;7t-V1ErIsbKx7j|OuKnqOF_?nB|T7kzaG2mJj%|KB_fV$H<`aziUb{) z0=pz0=*$Nkbt*J{s23Z0&JM6I8Ya)wV4NmG>wSAacg|>*j~WeYD@g-gt$N=H_&q8 z2#eQpUhIYx=}os=&%CqP|Kyd_o_w9Vn@jWG^Ou89_M(uJ%HV literal 0 HcmV?d00001 diff --git a/website/static/favicons/apple-touch-icon-180x180.png b/website/static/favicons/apple-touch-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..795cb88570bddcfbe6a9691c60d83027b9bf2fa9 GIT binary patch literal 9154 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 CckVy{ literal 0 HcmV?d00001 diff --git a/website/static/favicons/favicon-16x16.png b/website/static/favicons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..fe8a03f7a3cd4c11457e7823df3c3726ad87152e GIT binary patch literal 1223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>=NqHhZh{hYD) zr*F?!$CfWj1)tWR`2|D){a@4OeoLM6&7tLsQ|lMSf=|ni{Ysqm4JZgiKoKCaZuqkJ z2+%tqlYu7WFaDk|6C?{X))}n8vi@^G-`C!4KY#|VJq1z*bRp0&(bK+~*L`kX{{!eq zpcK%A4QD`7@X&x*@&Et-yMmS>z_3d#3GxHQ0}u$Nu>0)){E5kU>GK8ERSQ|l9`5r@ zPGm0SIWdh_vg1Xo_>ANE0l$9j_ASWg+cLSXX3`cuAnU^9$rt!)LN2XZbt$;!*s+_b z8vWCz^=qczI{IXf2dB6=r~95IMn+Fl1(?E~B?4_>O!9VjNsqq#ax;*_UgGKN%Km~; zl1*Ch;m)bRNM_jY>Eak7aXC4Gf!R$V!GS?d&8)1C_Hg&r^DYqql0p{|i>h=G}vk-3$jk+y+> zm4QLVt&o){8glbfGSez?YmjVzBMQ`@0J5PtKdq!Zu_%=xqokyu*h*hNGdD3k6^JvF zv-R?e()XN~oeNYe0a6>1QJR}%W#y8eT$-DjS7K!q090DcV7UDMZhbU0o*+}KtUOXP z(=$pK3@wcuVhcloYQ&MufvO45Oex6#DY?8xkprki5=n_~W^QUpWkD(f*j4%kdFl3> z!u-(8@eKj0VlXr}Ff%kWF)%i&_<46ZPzgVhIl-A#sSE~APE!`yy#Y#vAxVV>c`~GB z=A;6>uAiG%l9QjVpO#pbnVg?jtd9tCATupFDLK_V*&xNh)F{o+Bq_zr)I7z^(lpH^ eCDF`K52!;A=sv&YRfRws7(8A5T-G@yGywpyav4nk literal 0 HcmV?d00001 diff --git a/website/static/favicons/favicon-32x32.png b/website/static/favicons/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c3c2e65dc55c4c4ac4ab8fe006f9e52d9ad978 GIT binary patch literal 2009 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 literal 0 HcmV?d00001 diff --git a/website/static/favicons/favicon.ico b/website/static/favicons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dc42506ae3df26437f24b96e1283f491f72cc8ec GIT binary patch literal 1150 zcma)*OGq106o!uvD1wiy4DO_>taT%}Q0qd3iXvSW+M=Vbj4mvQq9O*ms0Iwg2MV@U z!G$v_D2Pu)jC7KUx~e-x)MYW5F}X_Ze`c;BK4QJ$n|pH3`Oke5rQqjq5We};lundO zL@odqJhmSl5n?ZG*FlXEd8tn5DoGsZ6$#sxKUp1PFRpuq+_zv8oJrVbAIIog*Y1^J zA4mm-U<#arA0jwcAVTv6mTmhu#yOm8)!-hagU{mU?5WVTRcI=r%Yzw)|GhKZRpg9n zo(%D8p+W=^vvSlnsbMXX30)wzHvIc)(yf>yA6({mgV!8a{1Hz%c;gLs7rBgq>c;3& z{}Jl!*qZp7p;rT9XS%~2{qzpn18@swpk;2sVWg+HHnu(4iQK33yQu3n25PdQ+qd*% ziZ9Yv>XZ8YOLu-Ya$2mhtU2Es-`0DfA5#|1@6Ep0)~eqOJu zZr)VvT@A)q2Lk&7)Rm~#Tg5Thtsnq+%?bOb?&81S@`vX0(0>6JfX~t+LJLmxSzrh} z)Z6E$t0#!@xRoFc)PaxEW*^6nLHzvWoOm7&@6QB$9iSb213ZsM_lNb|p18jo$PY`{ zPI`as3icOycYDHbre5;j_mfzI?ZmgscCz-jo9L#5=uZyOW*SjX%JXmz=dy;i{{YCG BFckm* literal 0 HcmV?d00001 diff --git a/website/static/favicons/site.webmanifest b/website/static/favicons/site.webmanifest new file mode 100644 index 000000000..45dc8a206 --- /dev/null +++ b/website/static/favicons/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/website/static/images/logo.svg b/website/static/images/logo.svg new file mode 100644 index 000000000..791e15a0a --- /dev/null +++ b/website/static/images/logo.svg @@ -0,0 +1 @@ +Icon_24px_K8Engine_Color \ No newline at end of file From d478143c572e9b4161a722550cba6a73918c89a5 Mon Sep 17 00:00:00 2001 From: Mofi Rahman Date: Thu, 25 Jan 2024 02:31:36 -0500 Subject: [PATCH 2/2] update base url --- website/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/config.toml b/website/config.toml index e1a8a67ec..3c8769785 100644 --- a/website/config.toml +++ b/website/config.toml @@ -1,4 +1,4 @@ -baseURL = "/" +baseURL = "/ai-on-gke/" title = "AI on GKE" enableRobotsTXT = true