From 4b02e57f7741081cabd85d50d31c7ed7de3a60c0 Mon Sep 17 00:00:00 2001 From: Xianpeng Shen Date: Sun, 18 Oct 2026 22:44:35 +0300 Subject: [PATCH 1/5] fix: absolute baseURL, robots.txt and canonical so Google can read the sitemap With baseURL '/' the sitemap index listed '/en/sitemap.xml' and '/zh/sitemap.xml', and every page entry was a bare path. Search Console reports the sitemap as "Couldn't fetch" and has indexed only the home page. og:url was '/' and there was no canonical. - baseURL is https://devops-maturity.github.io/, so the sitemap, og:url and asset URLs are absolute (hugo server still uses its own address). - static/robots.txt allows everything and names both sitemaps: this site's and the docs site's at /devops-maturity/sitemap.xml. - head.html adds rel=canonical and hreflang links between the English and Chinese pages. --- config.yaml | 5 ++++- static/robots.txt | 5 +++++ themes/devops-maturity/layouts/partials/head.html | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 static/robots.txt diff --git a/config.yaml b/config.yaml index 558ff8c..b02772d 100644 --- a/config.yaml +++ b/config.yaml @@ -1,4 +1,7 @@ -baseURL: '/' +# Absolute, so the sitemap, canonical and og:url carry full URLs. With '/' +# the sitemap index listed '/en/sitemap.xml' and Search Console could not +# fetch it. `hugo server` still overrides this with its own address. +baseURL: 'https://devops-maturity.github.io/' languageCode: en-us theme: devops-maturity # defaultContentLanguageInSubdir: true diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000..1201781 --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,5 @@ +User-agent: * +Allow: / + +Sitemap: https://devops-maturity.github.io/sitemap.xml +Sitemap: https://devops-maturity.github.io/devops-maturity/sitemap.xml diff --git a/themes/devops-maturity/layouts/partials/head.html b/themes/devops-maturity/layouts/partials/head.html index 787dbb4..9deab41 100644 --- a/themes/devops-maturity/layouts/partials/head.html +++ b/themes/devops-maturity/layouts/partials/head.html @@ -13,6 +13,12 @@ {{ .Param "Title" }} + + {{- if .IsTranslated }} + {{- range .AllTranslations }} + + {{- end }} + {{- end }} From ebfeb9e0eec197e4317e5e4e7381f614da3de376 Mon Sep 17 00:00:00 2001 From: Xianpeng Shen Date: Sun, 18 Oct 2026 22:44:40 +0300 Subject: [PATCH 2/5] feat: a Get started button and copyable install and Action snippets on the home page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The home page's first screen offered Quick Summary, Full Specification and Contribute, and nothing that leads to using the tool. In 16 months GA has recorded 20 views of /enterprise/ and 2 clicks on a GitHub link, and the docs site is not linked from here at all. - "Get started" ("开始使用") opens the docs quick start, as the primary button. - Below the buttons: `pip install devops-maturity` and the devops-maturity-action step, each with a Copy button. The step pins @v1.0.0, the action's only tag (there is no v1 tag yet). - scripts.html reports copy_install (method: button | select), click_action (method: button | select | link) and click_docs (placement, link_url). It is inline so it needs no bundle rebuild. style.css is rebuilt from the SCSS with the theme's npm run css:build; the same command reproduces the committed file byte for byte before this change. --- config.yaml | 31 ++++++ .../layouts/partials/scripts.html | 78 +++++++++++++++ .../layouts/partials/welcome.html | 29 +++++- .../static/css/scss/components/_try.scss | 99 +++++++++++++++++++ .../static/css/scss/style.scss | 1 + themes/devops-maturity/static/css/style.css | 2 +- 6 files changed, 237 insertions(+), 3 deletions(-) create mode 100644 themes/devops-maturity/static/css/scss/components/_try.scss diff --git a/config.yaml b/config.yaml index b02772d..1f69404 100644 --- a/config.yaml +++ b/config.yaml @@ -29,12 +29,28 @@ languages: title: DevOps Maturity Specification description: Assess, improve, and showcase your DevOps maturity — across teams and organizations. actions: + - label: Get started + url: 'https://devops-maturity.github.io/devops-maturity/getting-started/quickstart/' + primary: true - label: Quick Summary url: '#summary' - label: Full Specification url: '#specification' - label: Contribute url: 'https://github.com/devops-maturity/spec' + # Home page "try it" snippets (layouts/partials/welcome.html) + try: + install_label: Assess your project from the terminal + install: pip install devops-maturity + install_note: Then run `dm assess`. [Quick start](https://devops-maturity.github.io/devops-maturity/getting-started/quickstart/) + action_label: Or keep the badge current in CI + action: |- + - uses: devops-maturity/devops-maturity-action@v1.0.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + action_note: Runs when `devops-maturity.yml` changes. [GitHub Action](https://github.com/devops-maturity/devops-maturity-action) + copy: Copy + copied: Copied # versions: # current: v1.0.0 zh: @@ -44,9 +60,24 @@ languages: title: DevOps 成熟度规范 description: 评估、改进和展示你的 DevOps 成熟度 — 跨团队和组织。 actions: + - label: 开始使用 + url: 'https://devops-maturity.github.io/devops-maturity/getting-started/quickstart/' + primary: true - label: 概述 url: '#概述' - label: 完整规范 url: '#规范' - label: 贡献 url: 'https://github.com/devops-maturity/spec' + try: + install_label: 在终端里评估你的项目 + install: pip install devops-maturity + install_note: 然后运行 `dm assess`。[快速上手(英文)](https://devops-maturity.github.io/devops-maturity/getting-started/quickstart/) + action_label: 或者在 CI 里自动更新徽章 + action: |- + - uses: devops-maturity/devops-maturity-action@v1.0.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + action_note: 在 `devops-maturity.yml` 变更时运行。[GitHub Action](https://github.com/devops-maturity/devops-maturity-action) + copy: 复制 + copied: 已复制 diff --git a/themes/devops-maturity/layouts/partials/scripts.html b/themes/devops-maturity/layouts/partials/scripts.html index 79131fb..9a06916 100644 --- a/themes/devops-maturity/layouts/partials/scripts.html +++ b/themes/devops-maturity/layouts/partials/scripts.html @@ -1 +1,79 @@ +{{- /* + Copy buttons for the home page snippets (layouts/partials/welcome.html) and + the GA events that say whether visitors try the tool: + + copy_install the pip command was copied; method: button | select + click_action the Action step was copied (method: button | select) or a + link to the Action was followed (method: link) + click_docs a link into the docs site (/devops-maturity/) was followed + + Link events also carry placement (hero | content | other) and link_url. + Inline rather than in js/index.js so it needs no bundle rebuild. +*/}} + diff --git a/themes/devops-maturity/layouts/partials/welcome.html b/themes/devops-maturity/layouts/partials/welcome.html index 5eaa7e6..1519828 100644 --- a/themes/devops-maturity/layouts/partials/welcome.html +++ b/themes/devops-maturity/layouts/partials/welcome.html @@ -1,14 +1,39 @@ +{{- $try := and .IsHome (.Param "Try") -}}
-
+

{{.Param "Title"}}

{{.Param "Description"}}

{{ if .Param "Actions" }}
{{ range .Param "Actions" }} - {{.label}} + {{.label}} {{ end }}
{{ end }} + {{- /* Home page only: the two ways to start using the tool, each with a + copy button. Copy and link clicks are reported to GA by + layouts/partials/scripts.html (copy_install, click_action, + click_docs). Text comes from `try` in config.yaml per language. */}} + {{ with $try }} +
+
+ {{ .install_label }} +
+
{{ .install }}
+ +
+ {{ .install_note | markdownify }} +
+
+ {{ .action_label }} +
+
{{ .action }}
+ +
+ {{ .action_note | markdownify }} +
+
+ {{ end }}
diff --git a/themes/devops-maturity/static/css/scss/components/_try.scss b/themes/devops-maturity/static/css/scss/components/_try.scss new file mode 100644 index 0000000..0e544bf --- /dev/null +++ b/themes/devops-maturity/static/css/scss/components/_try.scss @@ -0,0 +1,99 @@ +// "Try it" block under the home page hero (layouts/partials/welcome.html): +// the pip command and the GitHub Action step, each with a copy button. +@use "./../abstracts/index"; + +// The hero is a fixed 80vh; with the snippets it grows instead of overflowing. +.welcome .welcome__container--try { + height: auto; + min-height: index.$welcome-height; + padding-top: index.$header-height + index.$gap-lg; + // the article card below is pulled up by $article-offset-top; clear it + padding-bottom: -(index.$article-offset-top) + index.$gap-lg; +} + +.welcome__action--primary { + background-color: index.$color-neutral-light; + color: index.$color-primary; + font-weight: bold; + + &:hover { + background-color: rgba(index.$color-neutral-light, .85); + color: index.$color-primary; + } +} + +.try { + display: grid; + gap: index.$gap-md; + margin-top: index.$gap-sm; + max-width: 600px; + + @include index.desktop { + width: 70%; + } + + &__item { + display: flex; + flex-direction: column; + gap: index.$gap-sm; + min-width: 0; + } + + &__label { + font-size: 14px; + font-weight: bold; + opacity: .9; + } + + &__snippet { + position: relative; + display: flex; + align-items: flex-start; + gap: index.$gap-sm; + padding: 12px 12px 12px 16px; + border-radius: index.$radius-lg; + background: rgba(index.$color-neutral-dark, .28); + color: index.$color-neutral-light; + } + + &__code { + flex: 1; + min-width: 0; + margin: 0; + font: 14px/1.6 SFMono-Regular, Menlo, Consolas, monospace; + // wrap long lines on phones instead of a scrollbar; the copy button + // copies the text as written + white-space: pre-wrap; + overflow-wrap: anywhere; + background: none; + color: inherit; + } + + &__copy { + flex: none; + padding: 4px 10px; + border: 1px solid rgba(index.$color-neutral-light, .6); + border-radius: 50px; + background: transparent; + color: index.$color-neutral-light; + font: inherit; + font-size: 13px; + line-height: 1.5; + cursor: pointer; + + &:hover, + &:focus-visible { + background: index.$color-neutral-light; + color: index.$color-primary; + } + } + + &__note { + font-size: 14px; + opacity: .9; + + a { + color: inherit; + } + } +} diff --git a/themes/devops-maturity/static/css/scss/style.scss b/themes/devops-maturity/static/css/scss/style.scss index 7dfe9ef..11d2aca 100644 --- a/themes/devops-maturity/static/css/scss/style.scss +++ b/themes/devops-maturity/static/css/scss/style.scss @@ -5,6 +5,7 @@ @use "components/dropdown"; @use "components/banner-image"; @use "components/enterprise-cta"; +@use "components/try"; @use "themes/markdown"; @use "themes/devops-maturity"; @use "vendors/github-markdown-css"; diff --git a/themes/devops-maturity/static/css/style.css b/themes/devops-maturity/static/css/style.css index bf80b82..047295f 100644 --- a/themes/devops-maturity/static/css/style.css +++ b/themes/devops-maturity/static/css/style.css @@ -1 +1 @@ -*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font:16px Helvetica,sans-serif;min-height:100vh;position:relative}.container{margin-left:auto;margin-right:auto;max-width:1024px;padding-left:24px;padding-right:24px;width:100%}.container.markdown-body{margin:0 auto}article,main{background-color:#fff}article{border-radius:8px;box-shadow:0 2px 10px 0 rgba(0,0,0,.03),0 2px 20px 10px rgba(0,0,0,.02);min-height:50vh;padding-bottom:24px;padding-top:24px;transform:translateY(-64px)}@media (min-width:1024px){.container{padding-left:48px;padding-right:48px}article{padding-bottom:40px;padding-top:40px}}.no-style-a{color:#fff;text-decoration:none}.header{left:0;position:absolute;top:12px;width:100%;z-index:10}.header .container{align-items:center;display:flex;font-size:.8em;font-weight:700;height:56px;justify-content:space-between;text-transform:uppercase}.header .logo{background-color:transparent;border:2px solid #fff;border-radius:50%;height:30px;width:30px}.header__menu{color:#fff;display:flex;list-style:none;margin-left:16px}.header__menu-item{margin-right:8px}.header__menu-item:last-child{margin-right:0}@media (max-width:349px){.header .container{align-items:flex-start;height:auto;margin-top:8px}.header__menu{align-items:flex-end;flex-direction:column;justify-content:flex-end;margin-top:-8px}.header__menu-item{margin-right:0}}.footer{margin:8px 0 72px}.footer .container{align-items:center;display:flex}.footer__license{margin-right:auto}.footer__license a{color:inherit;font-size:.7em;text-decoration:none}.footer__license a:hover{text-decoration:underline}.footer__logos{margin-left:auto}.footer__logo{display:flex}.footer .github{height:24px;width:24px}.welcome{background:#5b7965;background:linear-gradient(45deg,#5b7965,#f4c403);position:relative;z-index:0}.welcome .container{height:80vh}.welcome .container,.welcome .mini_container{color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:450px;position:relative;z-index:2}.welcome .mini_container{margin-left:auto;margin-right:auto;max-width:1024px;padding-left:24px;padding-right:24px;width:100%}.welcome__title{font-size:2.6em;margin-bottom:8px}@media (max-width:349px){.welcome__title{word-break:break-all}}@media (min-width:1024px){.welcome__title{font-size:3.6em;width:85%}}.welcome__description{font-size:18px;width:100%}@media (min-width:1024px){.welcome__description{width:80%}}.welcome__actions{display:flex;flex-wrap:wrap;margin-top:72px}.welcome__action{border:1px solid #fff;border-radius:50px;color:#fff;line-height:1.5;margin-bottom:24px;margin-right:24px;min-width:-moz-fit-content;min-width:fit-content;padding:12px 16px;text-decoration:none;transition:background-color .3s ease,color .3s ease}.welcome__action:last-child{margin-right:0}.welcome__action:hover{background-color:#fff;color:#666}.welcome__image{display:none}@media (min-width:1024px){.welcome__image{align-items:center;display:flex;height:70%;justify-content:center;overflow:hidden;position:absolute;right:0;top:50%;transform:translateY(-50%);width:24%;z-index:-1}.welcome__image img{display:block;margin:auto;max-height:100%;max-width:200px}}@keyframes show{0%{opacity:0;transform:translate(-50%);visibility:hidden}to{opacity:1;transform:translate(-50%,8px);visibility:visible}}@keyframes hide{0%{opacity:1;transform:translate(-50%,8px);visibility:visible}to{opacity:0;transform:translate(-50%);visibility:hidden}}.dropdown{position:relative}.dropdown__label{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:4px;color:inherit;display:block;font-size:inherit;outline:none;padding:12px 8px;text-align:center;text-decoration:inherit;text-transform:inherit;width:100%}.dropdown__label:after{background-color:transparent;content:"";display:none;height:12px;left:0;position:absolute;top:100%;width:100%}.dropdown__options{animation:hide .2s ease forwards;background-color:#fff;border-radius:4px;box-shadow:0 2px 10px 0 rgba(0,0,0,.03),0 2px 20px 10px rgba(0,0,0,.02);font-size:13px;left:50%;list-style:none;max-height:50vh;min-width:110px;overflow:auto;position:absolute;top:100%;transform:translate(-50%);visibility:visible;z-index:1}@media (max-width:349px){.dropdown__options{top:75%}}.dropdown__options:before{border-color:transparent transparent #fff;border-style:solid;border-width:0 10px 5px;content:"";height:0;left:50%;position:absolute;top:0;transform:translate(-50%,-100%);width:0}.dropdown__option a{border-bottom:1px solid rgba(0,0,0,.04);color:rgba(0,0,0,.6);display:block;font-weight:400;padding:12px 16px;text-decoration:none;text-transform:none;transition:background-color .3s ease,color .3s ease}.dropdown__option a:focus,.dropdown__option a:hover{background-color:rgba(0,0,0,.025);color:#5b7965}.dropdown__option:last-child a{border-bottom:none}.dropdown:focus .dropdown__label:after,.dropdown:focus .dropdown__options,.dropdown:hover .dropdown__label:after,.dropdown:hover .dropdown__options{display:block}.dropdown:focus .dropdown__options,.dropdown:hover .dropdown__options{animation:show .4s ease forwards}.banner-image{background:linear-gradient(14deg,#5b7965,#f4c403);border-radius:4px;box-shadow:0 2px 10px 0 rgba(0,0,0,.03),0 2px 20px 10px rgba(0,0,0,.02);margin:48px 0;width:100%}.banner-image img.banner-image__picture{background-color:transparent;display:block;margin:auto;max-height:300px;min-height:100px;-o-object-fit:contain;object-fit:contain;width:100%}.enterprise-cta{align-items:flex-start;display:flex;flex-direction:column;gap:16px;margin:48px 0}.enterprise-cta__button{background:linear-gradient(45deg,#5b7965,#f4c403);border:none;border-radius:50px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:700;padding:14px 28px;text-decoration:none;transition:opacity .3s ease,transform .2s ease}.enterprise-cta__button:hover{color:#fff;opacity:.9;transform:translateY(-2px)}.enterprise-cta__note{color:#666;font-size:.9rem}.enterprise-cta__note a{color:#5b7965;font-weight:700;text-decoration:none}.enterprise-cta__note a:hover{text-decoration:underline}main article.markdown-body h1{font-size:2.3em}main article.markdown-body a,main article.markdown-body h1,main article.markdown-body h2,main article.markdown-body h3,main article.markdown-body h4,main article.markdown-body h5,main article.markdown-body h6{color:#64746a;font-weight:700}main article.markdown-body a.anchorjs-link:hover{text-decoration:none}.devops-maturity--loading .dropdown__options{box-shadow:none!important;height:0!important}.markdown-body{--base-size-16:1rem;--base-size-24:1.5rem;--base-size-4:0.25rem;--base-size-40:2.5rem;--base-size-8:0.5rem;--base-text-weight-medium:500;--base-text-weight-normal:400;--base-text-weight-semibold:600;--fontStack-monospace:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;--fontStack-sansSerif:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--fgColor-accent:Highlight}@media (prefers-color-scheme:dark){.markdown-body,[data-theme=dark]{color-scheme:dark;--fgColor-accent:#4493f8;--bgColor-attention-muted:#bb800926;--bgColor-default:#0d1117;--bgColor-muted:#151b23;--bgColor-neutral-muted:#656c7633;--borderColor-accent-emphasis:#1f6feb;--borderColor-attention-emphasis:#9e6a03;--borderColor-danger-emphasis:#da3633;--borderColor-default:#3d444d;--borderColor-done-emphasis:#8957e5;--borderColor-success-emphasis:#238636;--color-prettylights-syntax-brackethighlighter-angle:#9198a1;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-comment:#9198a1;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#f0f6fc;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-markup-ignored-text:#f0f6fc;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-italic:#f0f6fc;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#f0f6fc;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-sublimelinter-gutter-mark:#3d444d;--color-prettylights-syntax-variable:#ffa657;--fgColor-attention:#d29922;--fgColor-danger:#f85149;--fgColor-default:#f0f6fc;--fgColor-done:#ab7df8;--fgColor-muted:#9198a1;--fgColor-success:#3fb950;--borderColor-muted:#3d444db3;--color-prettylights-syntax-invalid-illegal-bg:var(--bgColor-danger-muted);--color-prettylights-syntax-invalid-illegal-text:var(--fgColor-danger);--focus-outlineColor:var(--borderColor-accent-emphasis);--borderColor-neutral-muted:var(--borderColor-muted)}}@media (prefers-color-scheme:light){.markdown-body,[data-theme=light]{color-scheme:light;--fgColor-danger:#d1242f;--bgColor-attention-muted:#fff8c5;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--borderColor-accent-emphasis:#0969da;--borderColor-attention-emphasis:#9a6700;--borderColor-danger-emphasis:#cf222e;--borderColor-default:#d1d9e0;--borderColor-done-emphasis:#8250df;--borderColor-success-emphasis:#1a7f37;--color-prettylights-syntax-brackethighlighter-angle:#59636e;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-comment:#59636e;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-entity-tag:#0550ae;--color-prettylights-syntax-invalid-illegal-text:var(--fgColor-danger);--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-markup-ignored-text:#d1d9e0;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-sublimelinter-gutter-mark:#818b98;--color-prettylights-syntax-variable:#953800;--fgColor-accent:#0969da;--fgColor-attention:#9a6700;--fgColor-done:#8250df;--fgColor-muted:#59636e;--fgColor-success:#1a7f37;--bgColor-default:#fff;--borderColor-muted:#d1d9e0b3;--color-prettylights-syntax-invalid-illegal-bg:var(--bgColor-danger-muted);--color-prettylights-syntax-markup-bold:#1f2328;--color-prettylights-syntax-markup-italic:#1f2328;--color-prettylights-syntax-storage-modifier-import:#1f2328;--fgColor-default:#1f2328;--focus-outlineColor:var(--borderColor-accent-emphasis);--borderColor-neutral-muted:var(--borderColor-muted)}}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background-color:var(--bgColor-default);color:var(--fgColor-default);font-family:var(--fontStack-sansSerif,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");font-size:16px;font-weight:var(--base-text-weight-normal,400);line-height:1.5;margin:0;word-wrap:break-word}.markdown-body a{text-decoration:underline;text-underline-offset:.2rem}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:" ";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-image:url('data:image/svg+xml;charset=utf-8,');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--fgColor-accent);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--borderColor-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em var(--base-size-40)}.markdown-body hr{background:transparent;background-color:var(--borderColor-default);border:0;box-sizing:content-box;height:.25em;margin:var(--base-size-24) 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--fgColor-muted);opacity:1}.markdown-body ::placeholder{color:var(--fgColor-muted);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:"";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;font-variant:tabular-nums;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--bgColor-muted);border-bottom-color:var(--borderColor-neutral-muted);border:1px solid var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted);color:var(--fgColor-default);display:inline-block;font:11px var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);line-height:10px;padding:var(--base-size-4);vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:var(--base-size-16);margin-top:var(--base-size-24)}.markdown-body h2{border-bottom:1px solid var(--borderColor-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--fgColor-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--borderColor-default);color:var(--fgColor-muted);margin:0;padding:0 1em}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body .octicon{display:inline-block;fill:currentColor;overflow:visible!important;vertical-align:text-bottom}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body:after,.markdown-body:before{content:"";display:table}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--fgColor-danger)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:var(--base-size-4)}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:var(--base-size-16);margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:var(--base-size-16)}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:var(--base-size-16);padding:0}.markdown-body dl dd{margin-bottom:var(--base-size-16);padding:0 var(--base-size-16)}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--borderColor-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--bgColor-muted)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--borderColor-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--fgColor-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--bgColor-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:var(--base-size-16)}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--bgColor-muted);border-radius:6px;color:var(--fgColor-default);font-size:85%;line-height:1.45;overflow:auto;padding:var(--base-size-16)}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--bgColor-default);border:0;padding:10px var(--base-size-8) 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--bgColor-muted);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:"["}.markdown-body [data-footnote-ref]:after{content:"]"}.markdown-body .footnotes{border-top:1px solid var(--borderColor-default);color:var(--fgColor-muted);font-size:12px}.markdown-body .footnotes ol,.markdown-body .footnotes ol ul{padding-left:var(--base-size-16)}.markdown-body .footnotes ol ul{display:inline-block;margin-top:var(--base-size-16)}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--borderColor-accent-emphasis);border-radius:6px;bottom:calc(var(--base-size-8)*-1);content:"";left:calc(var(--base-size-24)*-1);pointer-events:none;position:absolute;right:calc(var(--base-size-8)*-1);top:calc(var(--base-size-8)*-1)}.markdown-body .footnotes li:target{color:var(--fgColor-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body button:focus:not(:focus-visible),.markdown-body summary:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body [tabindex="0"]:focus:not(:focus-visible),.markdown-body details-dialog:focus:not(:focus-visible){outline:none}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body a:has(>p,>div,>pre,>blockquote){display:block}.markdown-body a:has(>p,>div,>pre,>blockquote):not(:has(.snippet-clipboard-content,>pre)){width:-moz-fit-content;width:fit-content}.markdown-body a:has(>p,>div,>pre,>blockquote):has(.snippet-clipboard-content,>pre):focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:2px}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:var(--base-size-4)}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{clip-path:none;display:block;height:24px;overflow:visible;width:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{border-left:.25em solid var(--borderColor-default);color:inherit;margin-bottom:var(--base-size-16);padding:var(--base-size-8) var(--base-size-16)}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{align-items:center;display:flex;font-weight:var(--base-text-weight-medium,500);line-height:1}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}.markdown-body>:first-child>.heading-element:first-child{margin-top:0!important}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px} \ No newline at end of file +*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font:16px Helvetica,sans-serif;min-height:100vh;position:relative}.container{margin-left:auto;margin-right:auto;max-width:1024px;padding-left:24px;padding-right:24px;width:100%}.container.markdown-body{margin:0 auto}article,main{background-color:#fff}article{border-radius:8px;box-shadow:0 2px 10px 0 rgba(0,0,0,.03),0 2px 20px 10px rgba(0,0,0,.02);min-height:50vh;padding-bottom:24px;padding-top:24px;transform:translateY(-64px)}@media (min-width:1024px){.container{padding-left:48px;padding-right:48px}article{padding-bottom:40px;padding-top:40px}}.no-style-a{color:#fff;text-decoration:none}.header{left:0;position:absolute;top:12px;width:100%;z-index:10}.header .container{align-items:center;display:flex;font-size:.8em;font-weight:700;height:56px;justify-content:space-between;text-transform:uppercase}.header .logo{background-color:transparent;border:2px solid #fff;border-radius:50%;height:30px;width:30px}.header__menu{color:#fff;display:flex;list-style:none;margin-left:16px}.header__menu-item{margin-right:8px}.header__menu-item:last-child{margin-right:0}@media (max-width:349px){.header .container{align-items:flex-start;height:auto;margin-top:8px}.header__menu{align-items:flex-end;flex-direction:column;justify-content:flex-end;margin-top:-8px}.header__menu-item{margin-right:0}}.footer{margin:8px 0 72px}.footer .container{align-items:center;display:flex}.footer__license{margin-right:auto}.footer__license a{color:inherit;font-size:.7em;text-decoration:none}.footer__license a:hover{text-decoration:underline}.footer__logos{margin-left:auto}.footer__logo{display:flex}.footer .github{height:24px;width:24px}.welcome{background:#5b7965;background:linear-gradient(45deg,#5b7965,#f4c403);position:relative;z-index:0}.welcome .container{height:80vh}.welcome .container,.welcome .mini_container{color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:450px;position:relative;z-index:2}.welcome .mini_container{margin-left:auto;margin-right:auto;max-width:1024px;padding-left:24px;padding-right:24px;width:100%}.welcome__title{font-size:2.6em;margin-bottom:8px}@media (max-width:349px){.welcome__title{word-break:break-all}}@media (min-width:1024px){.welcome__title{font-size:3.6em;width:85%}}.welcome__description{font-size:18px;width:100%}@media (min-width:1024px){.welcome__description{width:80%}}.welcome__actions{display:flex;flex-wrap:wrap;margin-top:72px}.welcome__action{border:1px solid #fff;border-radius:50px;color:#fff;line-height:1.5;margin-bottom:24px;margin-right:24px;min-width:-moz-fit-content;min-width:fit-content;padding:12px 16px;text-decoration:none;transition:background-color .3s ease,color .3s ease}.welcome__action:last-child{margin-right:0}.welcome__action:hover{background-color:#fff;color:#666}.welcome__image{display:none}@media (min-width:1024px){.welcome__image{align-items:center;display:flex;height:70%;justify-content:center;overflow:hidden;position:absolute;right:0;top:50%;transform:translateY(-50%);width:24%;z-index:-1}.welcome__image img{display:block;margin:auto;max-height:100%;max-width:200px}}@keyframes show{0%{opacity:0;transform:translate(-50%);visibility:hidden}to{opacity:1;transform:translate(-50%,8px);visibility:visible}}@keyframes hide{0%{opacity:1;transform:translate(-50%,8px);visibility:visible}to{opacity:0;transform:translate(-50%);visibility:hidden}}.dropdown{position:relative}.dropdown__label{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;border-radius:4px;color:inherit;display:block;font-size:inherit;outline:none;padding:12px 8px;text-align:center;text-decoration:inherit;text-transform:inherit;width:100%}.dropdown__label:after{background-color:transparent;content:"";display:none;height:12px;left:0;position:absolute;top:100%;width:100%}.dropdown__options{animation:hide .2s ease forwards;background-color:#fff;border-radius:4px;box-shadow:0 2px 10px 0 rgba(0,0,0,.03),0 2px 20px 10px rgba(0,0,0,.02);font-size:13px;left:50%;list-style:none;max-height:50vh;min-width:110px;overflow:auto;position:absolute;top:100%;transform:translate(-50%);visibility:visible;z-index:1}@media (max-width:349px){.dropdown__options{top:75%}}.dropdown__options:before{border-color:transparent transparent #fff;border-style:solid;border-width:0 10px 5px;content:"";height:0;left:50%;position:absolute;top:0;transform:translate(-50%,-100%);width:0}.dropdown__option a{border-bottom:1px solid rgba(0,0,0,.04);color:rgba(0,0,0,.6);display:block;font-weight:400;padding:12px 16px;text-decoration:none;text-transform:none;transition:background-color .3s ease,color .3s ease}.dropdown__option a:focus,.dropdown__option a:hover{background-color:rgba(0,0,0,.025);color:#5b7965}.dropdown__option:last-child a{border-bottom:none}.dropdown:focus .dropdown__label:after,.dropdown:focus .dropdown__options,.dropdown:hover .dropdown__label:after,.dropdown:hover .dropdown__options{display:block}.dropdown:focus .dropdown__options,.dropdown:hover .dropdown__options{animation:show .4s ease forwards}.banner-image{background:linear-gradient(14deg,#5b7965,#f4c403);border-radius:4px;box-shadow:0 2px 10px 0 rgba(0,0,0,.03),0 2px 20px 10px rgba(0,0,0,.02);margin:48px 0;width:100%}.banner-image img.banner-image__picture{background-color:transparent;display:block;margin:auto;max-height:300px;min-height:100px;-o-object-fit:contain;object-fit:contain;width:100%}.enterprise-cta{align-items:flex-start;display:flex;flex-direction:column;gap:16px;margin:48px 0}.enterprise-cta__button{background:linear-gradient(45deg,#5b7965,#f4c403);border:none;border-radius:50px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:700;padding:14px 28px;text-decoration:none;transition:opacity .3s ease,transform .2s ease}.enterprise-cta__button:hover{color:#fff;opacity:.9;transform:translateY(-2px)}.enterprise-cta__note{color:#666;font-size:.9rem}.enterprise-cta__note a{color:#5b7965;font-weight:700;text-decoration:none}.enterprise-cta__note a:hover{text-decoration:underline}.welcome .welcome__container--try{height:auto;min-height:80vh;padding-bottom:112px;padding-top:104px}.welcome__action--primary{background-color:#fff;color:#5b7965;font-weight:700}.welcome__action--primary:hover{background-color:hsla(0,0%,100%,.85);color:#5b7965}.try{display:grid;gap:24px;margin-top:8px;max-width:600px}@media (min-width:1024px){.try{width:70%}}.try__item{display:flex;flex-direction:column;gap:8px;min-width:0}.try__label{font-size:14px;font-weight:700;opacity:.9}.try__snippet{align-items:flex-start;background:rgba(0,0,0,.28);border-radius:8px;color:#fff;display:flex;gap:8px;padding:12px 12px 12px 16px;position:relative}.try__code{background:none;color:inherit;flex:1;font:14px/1.6 SFMono-Regular,Menlo,Consolas,monospace;margin:0;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.try__copy{background:transparent;border:1px solid hsla(0,0%,100%,.6);border-radius:50px;color:#fff;cursor:pointer;flex:none;font:inherit;font-size:13px;line-height:1.5;padding:4px 10px}.try__copy:focus-visible,.try__copy:hover{background:#fff;color:#5b7965}.try__note{font-size:14px;opacity:.9}.try__note a{color:inherit}main article.markdown-body h1{font-size:2.3em}main article.markdown-body a,main article.markdown-body h1,main article.markdown-body h2,main article.markdown-body h3,main article.markdown-body h4,main article.markdown-body h5,main article.markdown-body h6{color:#64746a;font-weight:700}main article.markdown-body a.anchorjs-link:hover{text-decoration:none}.devops-maturity--loading .dropdown__options{box-shadow:none!important;height:0!important}.markdown-body{--base-size-16:1rem;--base-size-24:1.5rem;--base-size-4:0.25rem;--base-size-40:2.5rem;--base-size-8:0.5rem;--base-text-weight-medium:500;--base-text-weight-normal:400;--base-text-weight-semibold:600;--fontStack-monospace:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;--fontStack-sansSerif:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--fgColor-accent:Highlight}@media (prefers-color-scheme:dark){.markdown-body,[data-theme=dark]{color-scheme:dark;--fgColor-accent:#4493f8;--bgColor-attention-muted:#bb800926;--bgColor-default:#0d1117;--bgColor-muted:#151b23;--bgColor-neutral-muted:#656c7633;--borderColor-accent-emphasis:#1f6feb;--borderColor-attention-emphasis:#9e6a03;--borderColor-danger-emphasis:#da3633;--borderColor-default:#3d444d;--borderColor-done-emphasis:#8957e5;--borderColor-success-emphasis:#238636;--color-prettylights-syntax-brackethighlighter-angle:#9198a1;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-comment:#9198a1;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#f0f6fc;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-markup-ignored-text:#f0f6fc;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-italic:#f0f6fc;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#f0f6fc;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-sublimelinter-gutter-mark:#3d444d;--color-prettylights-syntax-variable:#ffa657;--fgColor-attention:#d29922;--fgColor-danger:#f85149;--fgColor-default:#f0f6fc;--fgColor-done:#ab7df8;--fgColor-muted:#9198a1;--fgColor-success:#3fb950;--borderColor-muted:#3d444db3;--color-prettylights-syntax-invalid-illegal-bg:var(--bgColor-danger-muted);--color-prettylights-syntax-invalid-illegal-text:var(--fgColor-danger);--focus-outlineColor:var(--borderColor-accent-emphasis);--borderColor-neutral-muted:var(--borderColor-muted)}}@media (prefers-color-scheme:light){.markdown-body,[data-theme=light]{color-scheme:light;--fgColor-danger:#d1242f;--bgColor-attention-muted:#fff8c5;--bgColor-muted:#f6f8fa;--bgColor-neutral-muted:#818b981f;--borderColor-accent-emphasis:#0969da;--borderColor-attention-emphasis:#9a6700;--borderColor-danger-emphasis:#cf222e;--borderColor-default:#d1d9e0;--borderColor-done-emphasis:#8250df;--borderColor-success-emphasis:#1a7f37;--color-prettylights-syntax-brackethighlighter-angle:#59636e;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-comment:#59636e;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-entity-tag:#0550ae;--color-prettylights-syntax-invalid-illegal-text:var(--fgColor-danger);--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-markup-ignored-text:#d1d9e0;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-sublimelinter-gutter-mark:#818b98;--color-prettylights-syntax-variable:#953800;--fgColor-accent:#0969da;--fgColor-attention:#9a6700;--fgColor-done:#8250df;--fgColor-muted:#59636e;--fgColor-success:#1a7f37;--bgColor-default:#fff;--borderColor-muted:#d1d9e0b3;--color-prettylights-syntax-invalid-illegal-bg:var(--bgColor-danger-muted);--color-prettylights-syntax-markup-bold:#1f2328;--color-prettylights-syntax-markup-italic:#1f2328;--color-prettylights-syntax-storage-modifier-import:#1f2328;--fgColor-default:#1f2328;--focus-outlineColor:var(--borderColor-accent-emphasis);--borderColor-neutral-muted:var(--borderColor-muted)}}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background-color:var(--bgColor-default);color:var(--fgColor-default);font-family:var(--fontStack-sansSerif,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");font-size:16px;font-weight:var(--base-text-weight-normal,400);line-height:1.5;margin:0;word-wrap:break-word}.markdown-body a{text-decoration:underline;text-underline-offset:.2rem}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:" ";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,');mask-image:url('data:image/svg+xml;charset=utf-8,');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--fgColor-accent);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--borderColor-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--bgColor-attention-muted);color:var(--fgColor-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em var(--base-size-40)}.markdown-body hr{background:transparent;background-color:var(--borderColor-default);border:0;box-sizing:content-box;height:.25em;margin:var(--base-size-24) 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--fgColor-muted);opacity:1}.markdown-body ::placeholder{color:var(--fgColor-muted);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:"";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;font-variant:tabular-nums;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--bgColor-muted);border-bottom-color:var(--borderColor-neutral-muted);border:1px solid var(--borderColor-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--borderColor-neutral-muted);color:var(--fgColor-default);display:inline-block;font:11px var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);line-height:10px;padding:var(--base-size-4);vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:var(--base-size-16);margin-top:var(--base-size-24)}.markdown-body h2{border-bottom:1px solid var(--borderColor-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--fgColor-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--borderColor-default);color:var(--fgColor-muted);margin:0;padding:0 1em}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace);font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body .octicon{display:inline-block;fill:currentColor;overflow:visible!important;vertical-align:text-bottom}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body:after,.markdown-body:before{content:"";display:table}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--fgColor-danger)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:var(--base-size-4)}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:var(--base-size-16);margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--fgColor-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type="a s"]{list-style-type:lower-alpha}.markdown-body ol[type="A s"]{list-style-type:upper-alpha}.markdown-body ol[type="i s"]{list-style-type:lower-roman}.markdown-body ol[type="I s"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:var(--base-size-16)}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:var(--base-size-16);padding:0}.markdown-body dl dd{margin-bottom:var(--base-size-16);padding:0 var(--base-size-16)}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--borderColor-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--bgColor-default);border-top:1px solid var(--borderColor-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--bgColor-muted)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--borderColor-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--fgColor-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--bgColor-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:var(--base-size-16)}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--bgColor-muted);border-radius:6px;color:var(--fgColor-default);font-size:85%;line-height:1.45;overflow:auto;padding:var(--base-size-16)}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--bgColor-default);border:0;padding:10px var(--base-size-8) 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--bgColor-muted);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:"["}.markdown-body [data-footnote-ref]:after{content:"]"}.markdown-body .footnotes{border-top:1px solid var(--borderColor-default);color:var(--fgColor-muted);font-size:12px}.markdown-body .footnotes ol,.markdown-body .footnotes ol ul{padding-left:var(--base-size-16)}.markdown-body .footnotes ol ul{display:inline-block;margin-top:var(--base-size-16)}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--borderColor-accent-emphasis);border-radius:6px;bottom:calc(var(--base-size-8)*-1);content:"";left:calc(var(--base-size-24)*-1);pointer-events:none;position:absolute;right:calc(var(--base-size-8)*-1);top:calc(var(--base-size-8)*-1)}.markdown-body .footnotes li:target{color:var(--fgColor-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body button:focus:not(:focus-visible),.markdown-body summary:focus:not(:focus-visible){box-shadow:none;outline:none}.markdown-body [tabindex="0"]:focus:not(:focus-visible),.markdown-body details-dialog:focus:not(:focus-visible){outline:none}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body a:has(>p,>div,>pre,>blockquote){display:block}.markdown-body a:has(>p,>div,>pre,>blockquote):not(:has(.snippet-clipboard-content,>pre)){width:-moz-fit-content;width:fit-content}.markdown-body a:has(>p,>div,>pre,>blockquote):has(.snippet-clipboard-content,>pre):focus-visible{outline:2px solid var(--focus-outlineColor);outline-offset:2px}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:var(--base-size-4)}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body ul:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body ol:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{clip-path:none;display:block;height:24px;overflow:visible;width:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.markdown-body .markdown-alert{border-left:.25em solid var(--borderColor-default);color:inherit;margin-bottom:var(--base-size-16);padding:var(--base-size-8) var(--base-size-16)}.markdown-body .markdown-alert>:first-child{margin-top:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}.markdown-body .markdown-alert .markdown-alert-title{align-items:center;display:flex;font-weight:var(--base-text-weight-medium,500);line-height:1}.markdown-body .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis)}.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--fgColor-accent)}.markdown-body .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis)}.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--fgColor-done)}.markdown-body .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis)}.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--fgColor-attention)}.markdown-body .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis)}.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--fgColor-success)}.markdown-body .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis)}.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--fgColor-danger)}.markdown-body>:first-child>.heading-element:first-child{margin-top:0!important}.markdown-body .highlight pre:has(+.zeroclipboard-container){min-height:52px} \ No newline at end of file From 7ab1406def550c4b32599b1b884d4196121b8720 Mon Sep 17 00:00:00 2001 From: Xianpeng Shen Date: Mon, 19 Oct 2026 11:03:43 +0300 Subject: [PATCH 3/5] fix: the copy buttons no longer stick on "Copied" The click handler read the button's label from textContent on every click. A second click within the 1.5 s window therefore saved "Copied" as the label to restore, and the button kept saying "Copied" from then on. - Each button's label is read once when the script starts (data-label) and restored from there; a new copy restarts the 1.5 s timer. - A second click within 1 s is ignored, so a double-click is one copy and one copy_install / click_action event, not two. - The gtag call is wrapped in try/catch, as in conventional-branch, so a failing gtag no longer throws an uncaught error from the click handler. --- .../layouts/partials/scripts.html | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/themes/devops-maturity/layouts/partials/scripts.html b/themes/devops-maturity/layouts/partials/scripts.html index 9a06916..71061dd 100644 --- a/themes/devops-maturity/layouts/partials/scripts.html +++ b/themes/devops-maturity/layouts/partials/scripts.html @@ -14,9 +14,21 @@