diff --git a/.gitignore b/.gitignore index 37dfdb0..d272a9e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,6 @@ dist/ # mkdocs .cache + +# mkdocs-material +site diff --git a/docs/faq.md b/docs/faq.md index 0b616a9..22734f8 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,6 +1,8 @@ --- hide: - navigation +title: Frequently Asked Questions +description: Advanced configuration and troubleshooting tips for advanced configurations. --- ## VM location on disk diff --git a/docs/index.md b/docs/index.md index b2d8d98..58a33f8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,5 @@ --- template: overrides/home.html -title: Tart +title: Toolset to build, run and manage macOS and Linux VMs +description: Native performance. Remote storage for Virtual Machines. Many integrations including GitHub, GitLab and more. --- diff --git a/docs/integrations/buildkite.md b/docs/integrations/buildkite.md index 5c17556..4e204a4 100644 --- a/docs/integrations/buildkite.md +++ b/docs/integrations/buildkite.md @@ -1,3 +1,8 @@ +--- +title: Buildkite Integration +description: Run pipeline steps in isolated ephemeral Tart Virtual Machines. +--- + # Buildkite It is possible to run [Buildkite](https://buildkite.com/) pipeline steps in isolated ephemeral Tart Virtual Machines with the help of [Tart Buildkite Plugin](https://github.com/cirruslabs/tart-buildkite-plugin): diff --git a/docs/integrations/cirrus-cli.md b/docs/integrations/cirrus-cli.md index effaa9e..a2983b0 100644 --- a/docs/integrations/cirrus-cli.md +++ b/docs/integrations/cirrus-cli.md @@ -1,3 +1,8 @@ +--- +title: Cirrus CLI +description: Tool for running isolated tasks reproducibly in any environment with a simple YAML configuration. +--- + # Cirrus CLI Tart itself is only responsible for managing virtual machines, but we've built Tart support into a tool called Cirrus CLI diff --git a/docs/integrations/gitlab-runner.md b/docs/integrations/gitlab-runner.md index 57d1ca4..8adc243 100644 --- a/docs/integrations/gitlab-runner.md +++ b/docs/integrations/gitlab-runner.md @@ -1,3 +1,8 @@ +--- +title: GitLab Runner Executor +description: Run jobs in isolated ephemeral Tart Virtual Machines. +--- + # GitLab Runner Executor It is possible to run GitLab jobs in isolated ephemeral Tart Virtual Machines via [Tart Executor](https://github.com/cirruslabs/gitlab-tart-executor). diff --git a/docs/integrations/vm-management.md b/docs/integrations/vm-management.md index cc459b4..0a9fc7a 100644 --- a/docs/integrations/vm-management.md +++ b/docs/integrations/vm-management.md @@ -1,3 +1,8 @@ +--- +title: Managing Virtual Machine +description: Use Packer to build custom VM images, configure VMs and work with remote OCI registries. +--- + # Managing Virtual Machine ## Creating from scratch diff --git a/docs/layouts/custom.yml b/docs/layouts/custom.yml new file mode 100644 index 0000000..62b316e --- /dev/null +++ b/docs/layouts/custom.yml @@ -0,0 +1,260 @@ +# Copyright (c) 2016-2024 Martin Donath + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +# ----------------------------------------------------------------------------- +# Configuration +# ----------------------------------------------------------------------------- + +# Definitions +definitions: + + # Background image + - &background_image >- + {{ layout.background_image | x }} + + # Background color (default: indigo) + - &background_color >- + {%- if layout.background_color -%} + {{ layout.background_color }} + {%- else -%} + {%- set palette = config.theme.palette or {} -%} + {%- if not palette is mapping -%} + {%- set list = palette | selectattr("accent") | list + palette -%} + {%- set palette = list | first -%} + {%- endif -%} + {%- set accent = palette.get("accent", "indigo") -%} + {%- set accent = accent.replace(" ", "-") -%} + {{ { + "red": "#ff1a47", + "pink": "#f50056", + "purple": "#df41fb", + "deep-purple": "#7c4dff", + "indigo": "#526cfe", + "blue": "#4287ff", + "light-blue": "#0091eb", + "cyan": "#00bad6", + "teal": "#00bda4", + "green": "#00c753", + "light-green": "#63de17", + "lime": "#b0eb00", + "yellow": "#ffd500", + "amber": "#ffaa00", + "orange": "#ff9100", + "deep-orange": "#ff6e42" + }[accent] or "#4051b5" }} + {%- endif -%} + + # Text color (default: white) + - &color >- + {%- if layout.color -%} + {{ layout.color }} + {%- else -%} + {%- set palette = config.theme.palette or {} -%} + {%- if not palette is mapping -%} + {%- set list = palette | selectattr("accent") | list + palette -%} + {%- set palette = list | first -%} + {%- endif -%} + {%- set accent = palette.get("accent", "indigo") -%} + {%- set accent = accent.replace(" ", "-") -%} + {{ { + "red": "#ffffff", + "pink": "#ffffff", + "purple": "#ffffff", + "deep-purple": "#ffffff", + "indigo": "#ffffff", + "blue": "#ffffff", + "light-blue": "#ffffff", + "cyan": "#ffffff", + "teal": "#ffffff", + "green": "#ffffff", + "light-green": "#ffffff", + "lime": "#000000", + "yellow": "#000000", + "amber": "#000000", + "orange": "#000000", + "deep-orange": "#ffffff" + }[accent] or "#ffffff" }} + {%- endif -%} + + # Font family (default: Roboto) + - &font_family >- + {%- if layout.font_family -%} + {{ layout.font_family }} + {%- elif config.theme.font != false -%} + {{ config.theme.font.get("text", "Roboto") }} + {%- else -%} + Roboto + {%- endif -%} + + # Font variant + - &font_variant >- + {%- if layout.font_variant -%} + {{ layout.font_variant }} + {%- endif -%} + + # Site name + - &site_name >- + {{ config.site_name }} + + # Page title + - &page_title >- + {%- if page.meta.no_title_in_card -%} + {# do not show anything #} + {%- elif layout.title -%} + {{ layout.title }} + {%- else -%} + {{ page.meta.get("title", page.title) }} + {%- endif -%} + + # Page title with site name + - &page_title_with_site_name >- + {%- if not page.is_homepage -%} + {{ page.meta.get("title", page.title) }} - {{ config.site_name }} + {%- else -%} + {{ page.meta.get("title", page.title) }} + {%- endif -%} + + # Page description + - &page_description >- + {%- if layout.description -%} + {{ layout.description }} + {%- else -%} + {{ page.meta.get("description", config.site_description) | x }} + {%- endif -%} + + # Page description for social card + - &page_description_social_card >- + {%- if layout.description -%} + {{ layout.description }} + {%- else -%} + {{ page.meta.get("description", config.site_description_social_card) | x }} + {%- endif -%} + + # Logo + - &logo >- + {%- if layout.logo -%} + {{ layout.logo }} + {%- elif config.theme.logo -%} + {{ config.docs_dir }}/{{ config.theme.logo }} + {%- endif -%} + + # Logo (icon) + - &logo_icon >- + {%- if not layout.logo -%} + {{ config.theme.icon.logo | x }} + {%- endif -%} + +# Meta tags +tags: + + # Open Graph + og:type: website + og:title: *page_title_with_site_name + og:description: *page_description + og:image: "{{ image.url }}" + og:image:type: "{{ image.type }}" + og:image:width: "{{ image.width }}" + og:image:height: "{{ image.height }}" + og:url: "{{ page.canonical_url }}" + + # Twitter + twitter:card: summary_large_image + twitter:title: *page_title_with_site_name + twitter:description: *page_description + twitter:image: "{{ image.url }}" + +# ----------------------------------------------------------------------------- +# Specification +# ----------------------------------------------------------------------------- + +# Card size and layers +size: { width: 1200, height: 630 } +layers: + + # Background + - background: + image: *background_image + color: *background_color + + # Logo + - size: { width: 170, height: 192 } + offset: { x: 966, y: 64 } + background: + image: *logo + icon: + value: *logo_icon + color: *color + + # Site name + - size: { width: 832, height: 42 } + offset: { x: 64, y: 64 } + typography: + content: *site_name + align: start center + color: *color + font: + family: *font_family + variant: *font_variant + style: Bold + + # Motto + - size: { width: 832, height: 150 } + offset: { x: 64, y: 106 } + typography: + content: "{{ config.motto }}" + align: start center + color: *color + line: + amount: 2.5 + height: 1.25 + font: + family: *font_family + variant: *font_variant + style: Bold + + # Page title + - size: { width: 1072, height: 256 } + offset: { x: 64, y: 256 } + typography: + content: *page_title + align: start center + color: *color + line: + amount: 3 + height: 1.25 + font: + family: *font_family + variant: *font_variant + style: Bold + + # Page description + - size: { width: 832, height: 64 } + offset: { x: 64, y: 512 } + typography: + content: *page_description_social_card + align: start center + color: *color + line: + amount: 2 + height: 1.5 + font: + family: *font_family + variant: *font_variant + style: Regular \ No newline at end of file diff --git a/docs/licensing.md b/docs/licensing.md index dd0b3ab..3f4e14f 100644 --- a/docs/licensing.md +++ b/docs/licensing.md @@ -1,6 +1,8 @@ --- hide: - navigation +title: Licensing and Support +description: Free Tier with 100 CPU core limit. Very affordable Tiers for larger enterprises. --- Both [Tart Virtualization](https://github.com/cirruslabs/tart) and [Orchard Orchestration](https://github.com/cirruslabs/orchard) diff --git a/docs/quick-start.md b/docs/quick-start.md index 40f854a..d721bfd 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -1,6 +1,8 @@ --- hide: - navigation +title: Quick Start +description: Install Tart and run your first virtual machine on Apple Silicon in minutes. --- Try running a Tart VM on your Apple Silicon device running macOS 13.0 (Ventura) or later (will download a 25 GB image): diff --git a/mkdocs.yml b/mkdocs.yml index bced1c7..af2717c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,12 +2,11 @@ repo_url: https://github.com/cirruslabs/tart/ site_url: https://tart.run/ edit_uri: blob/main/docs/ -site_name: Tart +site_name: Tart Virtualization site_author: Cirrus Labs copyright: © Cirrus Labs 2017-present site_description: > Tart is a virtualization toolset to build, run and manage macOS and Linux virtual machines (VMs) on Apple Silicon. - Built by CI engineers for your automation needs. remote_branch: main @@ -47,7 +46,10 @@ plugins: match_path: blog/posts/.* date_from_meta: as_creation: date - - social + - social: + cards_layout_dir: docs/layouts + cards_layout: custom + debug: true - search - minify diff --git a/scripts/build-docs.sh b/scripts/build-docs.sh new file mode 100755 index 0000000..83a4881 --- /dev/null +++ b/scripts/build-docs.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +docker run --pull=always --rm -it -p 8000:8000 -v ${PWD}:/docs ghcr.io/cirruslabs/mkdocs-material-insiders:latest build diff --git a/scripts/start.sh b/scripts/start-docs.sh similarity index 100% rename from scripts/start.sh rename to scripts/start-docs.sh