diff --git a/README.md b/README.md index fd5d0944f..38dae7436 100644 --- a/README.md +++ b/README.md @@ -19,12 +19,12 @@ git submodule update --init --recursive # for quick development reloads docker run --rm -it -p 8000:8000 -v "${PWD}:/docs" \ - squidfunk/mkdocs-material:2.7.2 \ + squidfunk/mkdocs-material:9.7.6 \ -- serve --dev-addr=0.0.0.0:8000 --dirtyreload # for a production-like build environment (link checking, etc.) docker run --rm -it -p 8000:8000 -v "${PWD}:/docs" \ - squidfunk/mkdocs-material:2.7.2 + squidfunk/mkdocs-material:9.7.6 ``` You can then make changes in a text editor, and refresh in a local browser at . diff --git a/ci/tasks/build.yml b/ci/tasks/build.yml index 7fe880044..26812bef9 100644 --- a/ci/tasks/build.yml +++ b/ci/tasks/build.yml @@ -3,7 +3,7 @@ image_resource: type: registry-image source: repository: squidfunk/mkdocs-material - tag: 2.7.2 + tag: 9.7.6 run: dir: docs path: /usr/bin/mkdocs diff --git a/content/images/logo-full-white.png b/content/images/logo-full-white.png new file mode 100644 index 000000000..68e2bc1ad Binary files /dev/null and b/content/images/logo-full-white.png differ diff --git a/content/images/logo-full.png b/content/images/logo-full.png index 5f4cd0825..e08123b47 100644 Binary files a/content/images/logo-full.png and b/content/images/logo-full.png differ diff --git a/content/index.md b/content/index.md index 18f492f31..b124b1d0f 100644 --- a/content/index.md +++ b/content/index.md @@ -1,6 +1,7 @@ # Welcome to -![Cloud Foundry BOSH](images/logo-full.png) +![Cloud Foundry BOSH](images/logo-full.png#only-light) +![Cloud Foundry BOSH](images/logo-full-white.png#only-dark) BOSH is a project that unifies release engineering, deployment, and lifecycle management of small and large-scale cloud software. BOSH can provision and deploy software over hundreds of VMs. It also performs monitoring, failure recovery, and software updates with zero-to-minimal downtime. diff --git a/mkdocs.yml b/mkdocs.yml index 969795683..8721f3d2c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,14 +1,15 @@ +# yaml-language-server: $schema=https://squidfunk.github.io/mkdocs-material/schema.json site_name: Cloud Foundry BOSH site_url: "https://bosh.io/docs/" -repo_name: 'cloudfoundry/docs-bosh' -repo_url: 'https://github.com/cloudfoundry/docs-bosh' -edit_uri: edit/master/content/ +repo_name: cloudfoundry/bosh +repo_url: https://github.com/cloudfoundry/bosh +edit_uri: https://github.com/cloudfoundry/docs-bosh/edit/master/content/ # non-default since our repo itself is called "docs" docs_dir: content -pages: +nav: - About: - Welcome: index.md - Project Goals: problems.md @@ -258,7 +259,6 @@ pages: - What is a Stemcell?: stemcell.md - Recent Changes: recent.md - Deploying BOSH with create-env: init.md - - "--- Cloud Providers": divider.md - Alibaba Cloud: - Usage: alicloud-cpi.md @@ -309,18 +309,45 @@ pages: - Using Human-readable VM names: vsphere-human-readable-names.md - Warden: - Usage: warden-cpi.md -# this hack avoids divider.md showing up in navigation and site search -- "--- ": divider.md - +- Stemcells: '/stemcells/' +- Releases: '/releases/' + theme: name: material custom_dir: theme favicon: assets/images/favicon.2776d0bae488.png - feature: - tabs: true + features: + - content.action.edit + - content.code.copy + - navigation.tabs + - navigation.footer palette: - primary: blue - accent: indigo + # Palette toggle for automatic mode + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + primary: blue + accent: indigo + + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + primary: blue + accent: indigo + + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + primary: blue + accent: indigo + logo: assets/images/logo.d93e7da69dbf.png extra_css: @@ -328,14 +355,14 @@ extra_css: markdown_extensions: - markdown.extensions.admonition -- markdown.extensions.codehilite - markdown.extensions.def_list - markdown.extensions.attr_list - markdown.extensions.footnotes -- markdown.extensions.meta -- markdown.extensions.toc(permalink=true) +- markdown.extensions.toc: + permalink: true - pymdownx.arithmatex -- pymdownx.betterem(smart_enable=all) +- pymdownx.betterem: + smart_enable: all - pymdownx.caret - pymdownx.critic - pymdownx.emoji: @@ -346,20 +373,29 @@ markdown_extensions: - pymdownx.smartsymbols - pymdownx.snippets - pymdownx.superfences -- pymdownx.tasklist(custom_checkbox=true) +- pymdownx.tasklist: + custom_checkbox: true - pymdownx.tilde extra: + analytics: + provider: google + property: !ENV GOOGLE_ANALYTICS_KEY # avoid forks accidentally using us + social: - - type: 'github' + - icon: fontawesome/brands/github link: 'https://github.com/cloudfoundry/bosh' - - type: 'slack' + - icon: fontawesome/brands/slack link: 'https://cloudfoundry.slack.com/messages/C02HPPYQ2/' -google_analytics: -# avoid forks accidentally using us -- !!python/object/apply:os.getenv ["GOOGLE_ANALYTICS_KEY"] -- auto + generator: false +copyright: > + powered by + bosh-io/web, + mkdocs + and + material + # since we publish via bosh.io, avoid unintentionally using gh-pages remote_branch: docroot diff --git a/theme/assets/stylesheets/extra.61026d2ee9f4.css b/theme/assets/stylesheets/extra.61026d2ee9f4.css index c664bc81d..4e5916aa9 100644 --- a/theme/assets/stylesheets/extra.61026d2ee9f4.css +++ b/theme/assets/stylesheets/extra.61026d2ee9f4.css @@ -2,9 +2,9 @@ .bosh-schema blockquote { padding-bottom: .01rem; padding-left: 1.8rem; - margin-left: 1.4rem; + margin-left: 1rem; border-left: .4rem solid rgba(0,0,0,.18); - color: rgba(0,0,0,.87); + color: var(--md-typeset-color); } /* in headers, the codehilite causes distracting indenting */ @@ -24,9 +24,8 @@ .bosh-schema h4, .bosh-schema h5, .bosh-schema h6 { - font-size: 2rem; + font-size: 1rem; font-weight: 600; - margin-top: 3.2rem; text-transform: none; } @@ -42,11 +41,45 @@ display: table; } -.bosh-schema dd { - margin: 0 0 .25em 6em +[dir="ltr"] .bosh-schema dd { + margin: 0 0 0 6em; } .bosh-schema dt { font-style: italic; position: absolute; } + +.md-copyright__highlight { + color: inherit; +} + + +/* START Primary Sidebar */ + +@media screen and (max-width: 76.2344em) { + .md-nav--lifted > .md-nav__list { + &:has(> .md-nav__item--bosh-sidebar-sticky-bottom) { padding-bottom: 1.2rem; } + > .md-nav__item--bosh-sidebar-sticky-bottom { + position: absolute; + bottom: 0; + width: 100%; + background: inherit; + } + } +} + +@media screen and (min-width: 76.25em) { + .md-nav--lifted > .md-nav__list { + > .md-nav__item--bosh-persistent { + display: block; + margin-top: 0; + > .md-nav__link { + > .md-ellipsis { cursor: default; } + > .md-nav__icon { display: none; } + } + } + > .md-nav__item--bosh-persistent + .md-nav__item { margin-top: 1.2rem; } + } +} +/* END Primary Sidebar */ diff --git a/theme/partials/footer.html b/theme/partials/footer.html deleted file mode 100644 index a91914c58..000000000 --- a/theme/partials/footer.html +++ /dev/null @@ -1,103 +0,0 @@ -{##} - -{% import "partials/language.html" as lang with context %} - -{##} - diff --git a/theme/partials/nav-item.html b/theme/partials/nav-item.html index 1bf5dd60b..75d3093f7 100644 --- a/theme/partials/nav-item.html +++ b/theme/partials/nav-item.html @@ -22,92 +22,190 @@ IN THE SOFTWARE. -->#} -{##} -{% set class = "md-nav__item" %} -{% if nav_item.active %} - {% set class = "md-nav__item md-nav__item--active" %} -{% endif %} - -{##} -{% if nav_item.children %} -
  • - - {##} - {% if nav_item.active %} - - {% else %} - +{% macro render_status(nav_item, type) %} + {% set class = "md-status md-status--" ~ type %} + {% if config.extra.status and config.extra.status[type] %} + + + {% else %} + + {% endif %} +{% endmacro %} +{% macro render_title(nav_item) %} + {% if nav_item.title[0:4] == "--- " %} + {% set title = nav_item.title[4:] %} + {% else %} + {% set title = nav_item.title %} + {% endif %} + {% if nav_item.typeset %} + + {{ nav_item.typeset.title }} + + {% else %} + {{ title }} + {% endif %} +{% endmacro %} +{% macro render_content(nav_item, ref) %} + {% set ref = ref or nav_item %} + {% if nav_item.meta and nav_item.meta.icon %} + {% include ".icons/" ~ nav_item.meta.icon ~ ".svg" %} + {% endif %} + + {{ render_title(ref) }} + {% if nav_item.meta and nav_item.meta.subtitle %} +
    + {{ nav_item.meta.subtitle }} {% endif %} - - {##} - - -
  • - -{##} -{% elif nav_item == page %} -
  • - {% set toc_ = page.toc %} - - {##} - - - {##} - {% if toc_ | first is defined and "\x3ch1 id=" in page.content %} - {% set toc_ = (toc_ | first).children %} + + {% if nav_item.meta and nav_item.encrypted %} + {{ render_status(nav_item, "encrypted") }} + {% endif %} + {% if nav_item.meta and nav_item.meta.status %} + {{ render_status(nav_item, nav_item.meta.status) }} + {% endif %} +{% endmacro %} +{% macro render_pruned(nav_item, ref) %} + {% set ref = ref or nav_item %} + {% set first = nav_item.children | first %} + {% if first and first.children %} + {{ render_pruned(first, ref) }} + {% else %} + + {{ render_content(ref) }} + {% if nav_item.children | length > 0 %} + + {% endif %} + + {% endif %} +{% endmacro %} +{% macro render(nav_item, path, level, parent) %} + {% set class = "md-nav__item" %} + {% if nav_item.active %} + {% set class = class ~ " md-nav__item--active" %} + {% endif %} + {% if nav_item.pages %} + {% if page in nav_item.pages %} + {% set nav_item = page %} {% endif %} - - {##} - {% if toc_ | first is defined %} - + {% endif %} + {% if nav_item.children %} + {% set _ = namespace(index = none) %} + {% if "navigation.indexes" in features %} + {% for item in nav_item.children %} + {% if item.is_index and _.index is none %} + {% set _.index = item %} + {% endif %} + {% endfor %} {% endif %} - - {{ nav_item.title }} - - - {##} - {% if toc_ | first is defined %} - {% include "partials/toc.html" %} + {% set index = _.index %} + {% if "navigation.tabs" in features %} + {% if level == 1 and nav_item.active %} + {% set class = class ~ " md-nav__item--section" %} + {% set is_section = true %} + {% endif %} + {% if "navigation.sections" in features %} + {% if level == 2 and parent.active %} + {% set class = class ~ " md-nav__item--section" %} + {% set is_section = true %} + {% endif %} {% endif %} -
  • - -{##} -{% elif nav_item.title[0:4] == "--- " %} - {% if level != 1 %}{# 1 = mobile-friendly nav where this does not make sense to show #} + {% elif "navigation.sections" in features %} + {% if level == 1 %} + {% set class = class ~ " md-nav__item--section" %} + {% set is_section = true %} + {% endif %} + {% endif %} + {% if "navigation.prune" in features %} + {% if not is_section and not nav_item.active %} + {% set class = class ~ " md-nav__item--pruned" %} + {% set is_pruned = true %} + {% endif %} + {% endif %} +
  • + {% if not is_pruned %} + {% set checked = "checked" if nav_item.active %} + {% if "navigation.expand" in features and not checked %} + {% set indeterminate = "md-toggle--indeterminate" %} + {% endif %} + + {% if not index %} + {% set tabindex = "0" if not is_section %} + + {% else %} + {% set class = "md-nav__link--active" if index == page %} + + {% endif %} + + {% else %} + {{ render_pruned(nav_item) }} + {% endif %} +
  • + {% elif nav_item == page %}
  • - + {% set toc = page.toc %} + + {% set first = toc | first %} + {% if first and first.level == 1 %} + {% set toc = first.children %} + {% endif %} + {% if toc %} + + {% endif %} + + {{ render_content(nav_item) }} + + {% if toc %} + {% include "partials/toc.html" %} + {% endif %}
  • + {% else %} + {% if nav_item.title[0:4] == "--- " %} + {% if level == 2 and parent.active %} + {% set class = class ~ " md-nav__item--section" %} + {% set is_section = true %} + {% endif %} + {% endif %} + {% if is_section == true %} +
  • + + {{ render_content(nav_item) }} + + +
  • + {% else %} +
  • + + {{ render_content(nav_item) }} + +
  • + {% endif %} {% endif %} - -{##} -{% else %} -
  • - - {{ nav_item.title }} - -
  • -{% endif %} +{% endmacro %} diff --git a/theme/partials/nav.html b/theme/partials/nav.html deleted file mode 100644 index 05ea172b1..000000000 --- a/theme/partials/nav.html +++ /dev/null @@ -1,60 +0,0 @@ -{##} - -{##} - diff --git a/theme/partials/source.html b/theme/partials/source.html deleted file mode 100644 index e89af2e32..000000000 --- a/theme/partials/source.html +++ /dev/null @@ -1,13 +0,0 @@ -{% import "partials/language.html" as lang with context %} - - -
    - - - -
    -
    - cloudfoundry/bosh -
    -
    diff --git a/theme/partials/tabs.html b/theme/partials/tabs.html deleted file mode 100644 index 5d07d9093..000000000 --- a/theme/partials/tabs.html +++ /dev/null @@ -1,16 +0,0 @@ -{% set class = "md-tabs" %} -{% if page.ancestors | length > 0 %} - {% set class = "md-tabs md-tabs--active" %} -{% endif %} -