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
-
+
+
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 %}
+