docs: update hugo version

Newer version supports arm containers.

Move to new version of Docsy and Hugo, now docsy is not stored in the
repository.

Signed-off-by: Orzelius <33936483+Orzelius@users.noreply.github.com>
Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
This commit is contained in:
Orzelius 2025-04-06 21:02:46 +09:00 committed by Andrey Smirnov
parent 5cd58ec86f
commit 84f69f043c
No known key found for this signature in database
GPG Key ID: FE042E3D4085A811
7414 changed files with 987 additions and 387234 deletions

1
.gitignore vendored
View File

@ -34,7 +34,6 @@ sha512sum.txt
.netlify .netlify
*.lock *.lock
package-lock.json
node_modules node_modules
website/resources website/resources
website/public website/public

View File

@ -117,8 +117,8 @@ TEXTLINT_VERSION ?= 14.6.0
TEXTLINT_FILTER_RULE_COMMENTS_VERSION ?= 1.2.2 TEXTLINT_FILTER_RULE_COMMENTS_VERSION ?= 1.2.2
# renovate: datasource=npm depName=textlint-rule-one-sentence-per-line # renovate: datasource=npm depName=textlint-rule-one-sentence-per-line
TEXTLINT_RULE_ONE_SENTENCE_PER_LINE_VERSION ?= 2.0.0 TEXTLINT_RULE_ONE_SENTENCE_PER_LINE_VERSION ?= 2.0.0
# renovate: datasource=docker depName=klakegg/hugo # renovate: datasource=docker depName=hugomods/hugo
HUGO_VERSION ?= 0.111.3-ext-alpine HUGO_VERSION ?= dart-sass-0.145.0
OPERATING_SYSTEM := $(shell uname -s | tr "[:upper:]" "[:lower:]") OPERATING_SYSTEM := $(shell uname -s | tr "[:upper:]" "[:lower:]")
ARCH := $(shell uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/') ARCH := $(shell uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
TALOSCTL_DEFAULT_TARGET := talosctl-$(OPERATING_SYSTEM) TALOSCTL_DEFAULT_TARGET := talosctl-$(OPERATING_SYSTEM)
@ -381,10 +381,9 @@ docs: ## Generates the documentation for machine config, and talosctl.
.PHONY: docs-preview .PHONY: docs-preview
docs-preview: ## Starts a local preview of the documentation using Hugo in docker docs-preview: ## Starts a local preview of the documentation using Hugo in docker
@docker run --rm --interactive --tty \ @docker run --rm --interactive --tty \
--user $(shell id -u):$(shell id -g) \
--volume $(PWD):/src --workdir /src/website \ --volume $(PWD):/src --workdir /src/website \
--publish 1313:1313 \ --publish 1313:1313 \
klakegg/hugo:$(HUGO_VERSION) \ hugomods/hugo:$(HUGO_VERSION) \
server server
# Local Artifacts # Local Artifacts

View File

@ -1,7 +1,11 @@
[build] [build]
command = "hugo --source website --gc --minify" command = "hugo --gc --minify"
publish = "website/public" publish = "public"
base = "website"
[build.environment] [build.environment]
HUGO_VERSION = "0.95.0" HUGO_VERSION = "0.145.0"
NODE_VERSION = "16.13.2" NODE_VERSION = "23.10"
# must match the version in /website/go.mod
GO_VERSION = "1.24.1"

View File

@ -1,24 +0,0 @@
{
"name": "tech-doc-hugo",
"version": "0.0.1",
"description": "Hugo theme for technical documentation.",
"main": "none.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/google/docsy-example.git"
},
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/google/docsy-example/issues"
},
"homepage": "https://github.com/google/docsy-example#readme",
"devDependencies": {
"autoprefixer": "^10.4.0",
"postcss": "^8.3.7",
"postcss-cli": "^11.0.0"
}
}

View File

@ -20,6 +20,7 @@
.td-page-meta { .td-page-meta {
a { a {
text-decoration: none;
display: block; display: block;
font-weight: $font-weight-medium; font-weight: $font-weight-medium;
} }
@ -28,6 +29,7 @@
.td-toc { .td-toc {
a { a {
text-decoration: none;
display: block; display: block;
font-weight: $font-weight-light; font-weight: $font-weight-light;
padding-bottom: .25rem; padding-bottom: .25rem;

View File

@ -63,6 +63,8 @@
} }
a { a {
text-decoration: none;
&:hover { &:hover {
color: $secondary; color: $secondary;
text-decoration: none; text-decoration: none;

View File

@ -3,3 +3,12 @@
top: 5rem; top: 5rem;
z-index: 1; z-index: 1;
} }
.white-bold-text {
font-weight: bold;
color: white;
}
.td-page-meta__child {
display: none !important;
}

View File

@ -12,3 +12,8 @@ $primary: #281D49;
$secondary: #F92A20; $secondary: #F92A20;
$link-color: $secondary; $link-color: $secondary;
$border-color: $gray-300 !default;
$td-sidebar-tree-root-color: $primary !default;
$td-sidebar-bg-color: rgba($primary, 0.03) !default;
$td-sidebar-border-color: $border-color !default;

View File

@ -10,15 +10,15 @@ images = ["images/talos-dev-banner.png"]
content="Talos Linux is Linux designed for Kubernetes secure, immutable, and minimal." /> content="Talos Linux is Linux designed for Kubernetes secure, immutable, and minimal." />
<meta name="twitter:image" content="https://www.talos.dev/images/talos-dev-banner.png" /> <meta name="twitter:image" content="https://www.talos.dev/images/talos-dev-banner.png" />
{{< blocks/cover title="Talos Linux" image_anchor="top" color="orange">}} {{< blocks/cover title="Talos Linux" image_anchor="top" color="black">}}
<div class="mx-auto"> <div class="mx-auto white-bold-text">
<div class="col-12 text-center"> <div class="col-12 text-center">
<img width="250" class="" src="/images/logo.svg" /> <img width="250" class="" src="/images/logo.svg" />
</div> </div>
<br /> <br />
<h3 class="display-4 text-center mb-3">The Kubernetes Operating System</h3> <h3 class="display-4 text-center mb-3">The Kubernetes Operating System</h3>
</div> </div>
{{< /blocks/cover>}} {{< /blocks/cover>}}
<section class=""> <section class="">
<div class="container"> <div class="container">

View File

@ -16,7 +16,7 @@ This guide is structured so that it can be followed step-by-step, skip sections
## Network Configuration ## Network Configuration
As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed. As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed.
Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard " >}}) which is available on the machine console. Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard" >}}) which is available on the machine console.
When running in the cloud the networking should be configured automatically. When running in the cloud the networking should be configured automatically.
Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}). Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}).

View File

@ -4,6 +4,6 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos" >}}) for important changes.
TBD TBD

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

View File

@ -4,11 +4,11 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos">}}) for important changes.
## Interactive Dashboard ## Interactive Dashboard
Talos now starts a text-based [UI dashboard]({{< relref "../../talos-guides/interactive-dashboard" >}}) on virtual console `/dev/tty2` and switches to it by default upon boot. Talos now starts a text-based [UI dashboard]({{< relref "../talos-guides/interactive-dashboard" >}}) on virtual console `/dev/tty2` and switches to it by default upon boot.
Kernel logs remain available on `/dev/tty1`. Kernel logs remain available on `/dev/tty1`.
To switch between virtual TTYs, use the `Alt+F1` and `Alt+F2` keys. To switch between virtual TTYs, use the `Alt+F1` and `Alt+F2` keys.
@ -98,7 +98,7 @@ These APIs are available via new `talosctl etcd` sub-commands:
* `talosctl etcd defrag` * `talosctl etcd defrag`
* `talosctl etcd status` * `talosctl etcd status`
See also [etcd maintenance guide]({{< relref "../../advanced/etcd-maintenance " >}}). See also [etcd maintenance guide]({{< relref "../../advanced/etcd-maintenance.md" >}}).
### `talosctl containers` ### `talosctl containers`

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

View File

@ -4,7 +4,7 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos">}}) for important changes.
## Predictable Network Interface Names ## Predictable Network Interface Names
@ -25,19 +25,19 @@ This change doesn't affect "cloud" platforms, like AWS, as Talos automatically a
## SecureBoot ## SecureBoot
Talos now supports booting on UEFI systems in [SecureBoot]({{< relref "../../talos-guides/install/bare-metal-platforms/secureboot" >}}) mode. Talos now supports booting on UEFI systems in [SecureBoot]({{< relref "../../talos-guides/install/bare-metal-platforms/secureboot.md" >}}) mode.
When combined with TPM-based disk encryption, this provides Trusted Boot experience. When combined with TPM-based disk encryption, this provides Trusted Boot experience.
## Boot Assets Generation ## Boot Assets Generation
Talos provides [a new unified way]({{< relref "../../talos-guides/install/boot-assets" >}}) to generate various boot assets, including ISOs, disk images, PXE boot files, installer container images etc., which can be Talos provides [a new unified way]({{< relref "../../talos-guides/install/boot-assets.md" >}}) to generate various boot assets, including ISOs, disk images, PXE boot files, installer container images etc., which can be
further customized with system extensions, extra kernel arguments. further customized with system extensions, extra kernel arguments.
## Kubernetes ## Kubernetes
### KubePrism - Kubernetes API Server In-Cluster Load Balancer ### KubePrism - Kubernetes API Server In-Cluster Load Balancer
Talos now supports configuring the [KubePrism]({{< relref "../../kubernetes-guides/configuration/kubeprism">}}) - Kubernetes API Server in-cluster load balancer with machine config Talos now supports configuring the [KubePrism]({{< relref "../../kubernetes-guides/configuration/kubeprism.md">}}) - Kubernetes API Server in-cluster load balancer with machine config
`features.kubePrism.port` and `features.kubePrism.enabled` fields. `features.kubePrism.port` and `features.kubePrism.enabled` fields.
If enabled, KubePrism binds to `localhost` and runs on the same port on every machine in the cluster. If enabled, KubePrism binds to `localhost` and runs on the same port on every machine in the cluster.
@ -66,18 +66,18 @@ On the first mount of a volume, the quota information will be recalculated, whic
### Installing System Extensions ### Installing System Extensions
The way to install system extensions on the machine using `machine.install.extensions` machine configuration option is now deprecated, The way to install system extensions on the machine using `machine.install.extensions` machine configuration option is now deprecated,
please use instead [the boot asset generation process]({{< relref "../../talos-guides/install/boot-assets" >}}) to create an image with system extension pre-installed. please use instead [the boot asset generation process]({{< relref "../../talos-guides/install/boot-assets.md" >}}) to create an image with system extension pre-installed.
### Extension Services ### Extension Services
Talos now supports setting `environmentFile` for an [extension service container spec]({{< relref "../../advanced/extension-services/#container" >}}). Talos now supports setting `environmentFile` for an [extension service container spec]({{< relref "../../advanced/extension-services.md#container" >}}).
The extension waits for the file to be present before starting the service. The extension waits for the file to be present before starting the service.
## Disk Encryption ## Disk Encryption
### TPM-based Disk Encryption ### TPM-based Disk Encryption
Talos now supports encrypting `STATE`/`EPHEMERAL` with [keys bound to a TPM device]({{< relref "../../talos-guides/install/bare-metal-platforms/secureboot" >}}). Talos now supports encrypting `STATE`/`EPHEMERAL` with [keys bound to a TPM device]({{< relref "../../talos-guides/install/bare-metal-platforms/secureboot.md" >}}).
The TPM device must be TPM2.0 compatible. The TPM device must be TPM2.0 compatible.
This type of disk encryption should be used when booting Talos in SecureBoot mode. This type of disk encryption should be used when booting Talos in SecureBoot mode.

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

View File

@ -16,7 +16,7 @@ This guide is structured so that it can be followed step-by-step, skip sections
## Network Configuration ## Network Configuration
As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed. As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed.
Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard " >}}) which is available on the machine console. Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard" >}}) which is available on the machine console.
When running in the cloud the networking should be configured automatically. When running in the cloud the networking should be configured automatically.
Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}). Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}).
@ -126,7 +126,7 @@ Check that all control plane nodes are reported in `talosctl get members` output
### `etcd` Reports and Alarm ### `etcd` Reports and Alarm
See [etcd maintenance]({{< relref "../advanced/etcd-maintenance" >}}) guide. See [etcd maintenance]({{< relref "../advanced/etcd-maintenance.md" >}}) guide.
### `etcd` Quorum is Lost ### `etcd` Quorum is Lost

View File

@ -4,7 +4,7 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos">}}) for important changes.
## Breaking Changes ## Breaking Changes
@ -12,8 +12,8 @@ See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) fo
Starting with Talos 1.6, Linux firmware is not included in the default initramfs. Starting with Talos 1.6, Linux firmware is not included in the default initramfs.
Users that need Linux firmware can pull them as an extension during install time using the [Image Factory]({{< relref "../../learn-more/image-factory" >}}) service. Users that need Linux firmware can pull them as an extension during install time using the [Image Factory]({{< relref "../../learn-more/image-factory.md" >}}) service.
If the initial boot requires firmware, a [custom ISO can be built]({{< relref "../../talos-guides/install/boot-assets" >}}) with the firmware included using the Image Factory service or using the `imager`. If the initial boot requires firmware, a [custom ISO can be built]({{< relref "../../talos-guides/install/boot-assets.md" >}}) with the firmware included using the Image Factory service or using the `imager`.
This also ensures that the linux-firmware is not tied to a specific Talos version. This also ensures that the linux-firmware is not tied to a specific Talos version.
The list of firmware packages which were removed from the default `initramfs` and are now available as extensions: The list of firmware packages which were removed from the default `initramfs` and are now available as extensions:
@ -23,7 +23,7 @@ The list of firmware packages which were removed from the default `initramfs` an
### Network Device Selectors ### Network Device Selectors
Previously, [network device selectors]({{< relref "../../talos-guides/network/device-selector" >}}) only matched the first link, now the configuration is applied to all matching links. Previously, [network device selectors]({{< relref "../../talos-guides/network/device-selector.md" >}}) only matched the first link, now the configuration is applied to all matching links.
### `talosctl images` command ### `talosctl images` command
@ -37,18 +37,18 @@ The option `.persist` deprecated in Talos 1.5 was removed, the machine configura
### Kubernetes `n-5` Version Support ### Kubernetes `n-5` Version Support
Talos Linux starting with version 1.6 supports the latest Kubernetes `n-5` versions, for release 1.6.0 this means [support]({{< relref "../support-matrix" >}}) for Kubernetes versions 1.24-1.29. Talos Linux starting with version 1.6 supports the latest Kubernetes `n-5` versions, for release 1.6.0 this means [support]({{< relref "../support-matrix.md" >}}) for Kubernetes versions 1.24-1.29.
This allows users to make it easier to upgrade to new Talos Linux versions without having to upgrade Kubernetes at the same time. This allows users to make it easier to upgrade to new Talos Linux versions without having to upgrade Kubernetes at the same time.
> See [Kubernetes release support](https://kubernetes.io/releases/) for the list of supported versions by Kubernetes project. > See [Kubernetes release support](https://kubernetes.io/releases/) for the list of supported versions by Kubernetes project.
### OAuth2 Machine Config Flow ### OAuth2 Machine Config Flow
Talos Linux when running on the `metal` platform can be configured to authenticate the machine configuration download using [OAuth2 device flow]({{< relref "../../advanced/machine-config-oauth" >}}). Talos Linux when running on the `metal` platform can be configured to authenticate the machine configuration download using [OAuth2 device flow]({{< relref "../../advanced/machine-config-oauth.md" >}}).
### Ingress Firewall ### Ingress Firewall
Talos Linux now supports configuring the [ingress firewall rules]({{< relref "../../talos-guides/network/ingress-firewall" >}}). Talos Linux now supports configuring the [ingress firewall rules]({{< relref "../../talos-guides/network/ingress-firewall.md" >}}).
## Improvements ## Improvements
@ -107,7 +107,7 @@ Talos System Extensions can be used to install the credential binaries.
### KubePrism ### KubePrism
[KubePrism]({{< relref "../../kubernetes-guides/configuration/kubeprism" >}}) is enabled by default on port 7445. [KubePrism]({{< relref "../../kubernetes-guides/configuration/kubeprism.md" >}}) is enabled by default on port 7445.
### Sysctl ### Sysctl

View File

@ -18,7 +18,7 @@ Refer to the OpenEBS Jiva [documentation](https://github.com/openebs/jiva-operat
## Preparing the nodes ## Preparing the nodes
Create the [boot assets]({{< relref "../../talos-guides/install/boot-assets" >}}) which includes the `iscsi-tools` system extensions (or create a custom installer and perform a machine upgrade if Talos is already installed). Create the [boot assets]({{< relref "../../talos-guides/install/boot-assets.md" >}}) which includes the `iscsi-tools` system extensions (or create a custom installer and perform a machine upgrade if Talos is already installed).
Create a machine config patch with the contents below and save as `patch.yaml` Create a machine config patch with the contents below and save as `patch.yaml`

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

View File

@ -16,7 +16,7 @@ This guide is structured so that it can be followed step-by-step, skip sections
## Network Configuration ## Network Configuration
As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed. As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed.
Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard " >}}) which is available on the machine console. Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard" >}}) which is available on the machine console.
When running in the cloud the networking should be configured automatically. When running in the cloud the networking should be configured automatically.
Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}). Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}).

View File

@ -4,7 +4,7 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos">}}) for important changes.
## Important Changes ## Important Changes
@ -17,22 +17,22 @@ See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) fo
### CA Rotation ### CA Rotation
Talos Linux now supports [rotating the root CA certificate and key]({{< relref "../../advanced/ca-rotation" >}}) for Talos API and Kubernetes API. Talos Linux now supports [rotating the root CA certificate and key]({{< relref "../../advanced/ca-rotation.md" >}}) for Talos API and Kubernetes API.
## Networking ## Networking
### Device Selectors ### Device Selectors
Talos Linux now supports `physical: true` qualifier for [device selectors]({{< relref "../../talos-guides/network/device-selector" >}}), it selects non-virtual network interfaces (i.e. `en0` is selected, while `bond0` is not). Talos Linux now supports `physical: true` qualifier for [device selectors]({{< relref "../../talos-guides/network/device-selector.md" >}}), it selects non-virtual network interfaces (i.e. `en0` is selected, while `bond0` is not).
### DNS Caching ### DNS Caching
Talos Linux now provides a [caching DNS resolver]({{< relref "../../talos-guides/network/host-dns" >}}) for host workloads (including host networking pods). Talos Linux now provides a [caching DNS resolver]({{< relref "../../talos-guides/network/host-dns.md" >}}) for host workloads (including host networking pods).
Host DNS resolver is enabled by default for clusters created with Talos 1.7. Host DNS resolver is enabled by default for clusters created with Talos 1.7.
### Time Sync ### Time Sync
Default [NTP server]({{< relref "../../talos-guides/configuration/time-sync" >}}) was updated to be `time.cloudflare.com` instead of `pool.ntp.org`. Default [NTP server]({{< relref "../../talos-guides/configuration/time-sync.md" >}}) was updated to be `time.cloudflare.com` instead of `pool.ntp.org`.
Default server is only used if the user does not specify any NTP servers in the configuration. Default server is only used if the user does not specify any NTP servers in the configuration.
Talos Linux can now sync to PTP devices (e.g. provided by the hypervisor) skipping the network time servers. Talos Linux can now sync to PTP devices (e.g. provided by the hypervisor) skipping the network time servers.
@ -47,7 +47,7 @@ machine:
### SideroLink HTTP Proxy ### SideroLink HTTP Proxy
[SideroLink]({{< relref "../../talos-guides/network/siderolink" >}}) connections can now proxy Wireguard UDP packet over existing HTTP/2 SideroLink API connection (for networks where UDP protocol is filtered, but HTTP is allowed). [SideroLink]({{< relref "../../talos-guides/network/siderolink.md" >}}) connections can now proxy Wireguard UDP packet over existing HTTP/2 SideroLink API connection (for networks where UDP protocol is filtered, but HTTP is allowed).
## Kubernetes ## Kubernetes
@ -69,19 +69,19 @@ to update to use `iptables-nft`.
Talos Linux now supports: Talos Linux now supports:
* [OpenNebula](https://opennebula.io/) platform ([Talos platform `opennebula`]({{< relref "../../talos-guides/install/virtualized-platforms/opennebula" >}})) * [OpenNebula](https://opennebula.io/) platform ([Talos platform `opennebula`]({{< relref "../../talos-guides/install/virtualized-platforms/opennebula.md" >}}))
* [Akamai Connected Cloud](https://www.linode.com/) provider ([Talos platform `akamai`]({{< relref "../../talos-guides/install/cloud-platforms/akamai" >}})) * [Akamai Connected Cloud](https://www.linode.com/) provider ([Talos platform `akamai`]({{< relref "../../talos-guides/install/cloud-platforms/akamai.md" >}}))
### Containers (`docker`) ### Containers (`docker`)
The `talosctl cluster create` command now can create [multiple Talos clusters on the same machine]({{< relref "../../talos-guides/install/local-platforms/docker" >}}). The `talosctl cluster create` command now can create [multiple Talos clusters on the same machine]({{< relref "../../talos-guides/install/local-platforms/docker.md" >}}).
The Kubernetes and Talos APIs are mapped to a random port on the host machine. The Kubernetes and Talos APIs are mapped to a random port on the host machine.
Talos Linux now uses provided DNS resolver when running inside a container. Talos Linux now uses provided DNS resolver when running inside a container.
### Talos-in-Kubernetes ### Talos-in-Kubernetes
Talos Linux now supports running Talos inside [Kubernetes as a pod]({{< relref "../../talos-guides/install/cloud-platforms/kubernetes" >}}): e.g. to run controlplane nodes inside existing Kubernetes cluster. Talos Linux now supports running Talos inside [Kubernetes as a pod]({{< relref "../../talos-guides/install/cloud-platforms/kubernetes.md" >}}): e.g. to run controlplane nodes inside existing Kubernetes cluster.
## SBC ## SBC
@ -90,7 +90,7 @@ There will not be any more SBC specific release assets as part of Talos release.
The default Talos `installer` image will stop working for SBC's and will fail the upgrade, if used, starting from Talos v1.7.0. The default Talos `installer` image will stop working for SBC's and will fail the upgrade, if used, starting from Talos v1.7.0.
The SBC's images and installers can be generated on the fly using [Image Factory](https://factory.talos.dev) or using [imager]({{< relref "../../talos-guides/install/boot-assets">}}) for custom images. The SBC's images and installers can be generated on the fly using [Image Factory](https://factory.talos.dev) or using [imager]({{< relref "../../talos-guides/install/boot-assets.md">}}) for custom images.
The list of official SBC's images supported by Image Factory can be found in the [overlays](https://github.com/siderolabs/overlays/) repository. The list of official SBC's images supported by Image Factory can be found in the [overlays](https://github.com/siderolabs/overlays/) repository.
In order to upgrade an SBC running Talos 1.6 to Talos 1.7, generate an `installer` image with an SBC overlay and use it to upgrade the cluster. In order to upgrade an SBC running Talos 1.6 to Talos 1.7, generate an `installer` image with an SBC overlay and use it to upgrade the cluster.
@ -115,9 +115,9 @@ environment:
- UPS_NAME=ups - UPS_NAME=ups
``` ```
For documentation, see [Extension Services Config Files]({{< relref "../../reference/configuration/extensions/extensionserviceconfig" >}}). For documentation, see [Extension Services Config Files]({{< relref "../../reference/configuration/extensions/extensionserviceconfig.md" >}}).
> **Note**: The use of `environmentFile` in extension service [spec]({{< relref "../../advanced/extension-services">}}) is now deprecated and will be removed in a future release of Talos, > **Note**: The use of `environmentFile` in extension service [spec]({{< relref "../../advanced/extension-services.md">}}) is now deprecated and will be removed in a future release of Talos,
> use `ExtensionServiceConfig` instead. > use `ExtensionServiceConfig` instead.
### New Extensions ### New Extensions
@ -135,7 +135,7 @@ Talos Linux in version v1.7 introduces new [extensions](https://github.com/sider
### Additional Tags ### Additional Tags
Talos Linux now supports setting [extra tags]({{< relref "../../talos-guides/configuration/logging" >}}) when sending logs in JSON format: Talos Linux now supports setting [extra tags]({{< relref "../../talos-guides/configuration/logging.md" >}}) when sending logs in JSON format:
```yaml ```yaml
machine: machine:
@ -159,12 +159,12 @@ This is mostly implemented for extension services that log to syslog.
### Kubernetes Upgrade ### Kubernetes Upgrade
The [command]({{< relref "../../kubernetes-guides/upgrading-kubernetes" >}}) `talosctl upgrade-k8s` now supports specifying custom image references for Kubernetes components via `--*-image` flags. The [command]({{< relref "../../kubernetes-guides/upgrading-kubernetes.md" >}}) `talosctl upgrade-k8s` now supports specifying custom image references for Kubernetes components via `--*-image` flags.
The default behavior is unchanged, and the flags are optional. The default behavior is unchanged, and the flags are optional.
### KubeSpan ### KubeSpan
Talos Linux disables by default a [KubeSpan]({{< relref "../../talos-guides/network/kubespan" >}}) feature to harvest additional endpoints from KubeSpan members. Talos Linux disables by default a [KubeSpan]({{< relref "../../talos-guides/network/kubespan.md" >}}) feature to harvest additional endpoints from KubeSpan members.
This feature turned out to be less helpful than expected and caused unnecessary performance issues. This feature turned out to be less helpful than expected and caused unnecessary performance issues.
Previous behavior can be restored with: Previous behavior can be restored with:
@ -178,7 +178,7 @@ machine:
### Secure Boot ISO ### Secure Boot ISO
Talos Linux now provides a way to configure systemd-boot ISO 'secure-boot-enroll' option while [generating]({{< relref "../../talos-guides/install/boot-assets" >}}) a SecureBoot ISO image: Talos Linux now provides a way to configure systemd-boot ISO 'secure-boot-enroll' option while [generating]({{< relref "../../talos-guides/install/boot-assets.md" >}}) a SecureBoot ISO image:
```yaml ```yaml
output: output:
@ -190,10 +190,10 @@ output:
### Hardware Watchdog Timers ### Hardware Watchdog Timers
Talos Linux now supports [hardware watchdog timers]({{< relref "../../advanced/watchdog" >}}) configuration. Talos Linux now supports [hardware watchdog timers]({{< relref "../../advanced/watchdog.md" >}}) configuration.
If enabled, and the machine becomes unresponsive, the hardware watchdog will reset the machine. If enabled, and the machine becomes unresponsive, the hardware watchdog will reset the machine.
The watchdog can be enabled with the following [configuration document]({{< relref "../../reference/configuration/runtime/watchdogtimerconfig" >}}): The watchdog can be enabled with the following [configuration document]({{< relref "../../reference/configuration/runtime/watchdogtimerconfig.md" >}}):
```yaml ```yaml
apiVersion: v1alpha1 apiVersion: v1alpha1

View File

@ -18,7 +18,7 @@ Refer to the OpenEBS Jiva [documentation](https://github.com/openebs/jiva-operat
## Preparing the nodes ## Preparing the nodes
Create the [boot assets]({{< relref "../../talos-guides/install/boot-assets" >}}) which includes the `iscsi-tools` system extensions (or create a custom installer and perform a machine upgrade if Talos is already installed). Create the [boot assets]({{< relref "../../talos-guides/install/boot-assets.md" >}}) which includes the `iscsi-tools` system extensions (or create a custom installer and perform a machine upgrade if Talos is already installed).
Create a machine config patch with the contents below and save as `patch.yaml` Create a machine config patch with the contents below and save as `patch.yaml`

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

View File

@ -16,7 +16,7 @@ This guide is structured so that it can be followed step-by-step, skip sections
## Network Configuration ## Network Configuration
As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed. As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed.
Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard " >}}) which is available on the machine console. Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard" >}}) which is available on the machine console.
When running in the cloud the networking should be configured automatically. When running in the cloud the networking should be configured automatically.
Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}). Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}).

View File

@ -4,7 +4,7 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos">}}) for important changes.
## Important Changes ## Important Changes
@ -20,30 +20,30 @@ These include:
* `metal` iso and disk images * `metal` iso and disk images
* `talosctl-cni-bundle` * `talosctl-cni-bundle`
All other release assets can be downloaded from [Image Factory]({{< relref "../../talos-guides/install/boot-assets#image-factory" >}}). All other release assets can be downloaded from [Image Factory]({{< relref "../../talos-guides/install/boot-assets.md#image-factory" >}}).
### Serial Console for `metal` Platform ### Serial Console for `metal` Platform
Starting from Talos 1.8, the `console=ttyS0` kernel argument is no longer included by default in the metal images and installer. Starting from Talos 1.8, the `console=ttyS0` kernel argument is no longer included by default in the metal images and installer.
If you are running Talos virtualized in QEMU (e.g., Proxmox), you can add this as an extra kernel argument if needed. If you are running Talos virtualized in QEMU (e.g., Proxmox), you can add this as an extra kernel argument if needed.
You can refer to the [Image Factory or Imager documentation]({{< relref "../../talos-guides/install/boot-assets" >}}) for instructions on how to do this. You can refer to the [Image Factory or Imager documentation]({{< relref "../../talos-guides/install/boot-assets.md" >}}) for instructions on how to do this.
This change addresses issues such as slow boot or lack of console output on bare metal hardware without a serial console. This change addresses issues such as slow boot or lack of console output on bare metal hardware without a serial console.
### Accessing `/dev/net/tun` in Kubernetes Pods ### Accessing `/dev/net/tun` in Kubernetes Pods
Talos Linux includes `runc` 1.2, which [no longer](https://github.com/opencontainers/runc/pull/3468) exposes `/dev/net/tun` devices by default in containers. Talos Linux includes `runc` 1.2, which [no longer](https://github.com/opencontainers/runc/pull/3468) exposes `/dev/net/tun` devices by default in containers.
If you require access to `/dev/net/tun` in your Kubernetes pods (such as when running Tailscale as a pod), you can use [device plugins]({{< relref "../../kubernetes-guides/configuration/device-plugins" >}}) to expose `/dev/net/tun` to the pod. If you require access to `/dev/net/tun` in your Kubernetes pods (such as when running Tailscale as a pod), you can use [device plugins]({{< relref "../../kubernetes-guides/configuration/device-plugins.md" >}}) to expose `/dev/net/tun` to the pod.
## Disk Management ## Disk Management
The disk management backend has been rewritten to support more complex configurations, but the existing configuration should continue to work as before. The disk management backend has been rewritten to support more complex configurations, but the existing configuration should continue to work as before.
The detailed information about the new disk management subsystem can be found in the [disk management guide]({{< relref "../../talos-guides/configuration/disk-management" >}}). The detailed information about the new disk management subsystem can be found in the [disk management guide]({{< relref "../../talos-guides/configuration/disk-management.md" >}}).
### `EPHEMERAL` Volume ### `EPHEMERAL` Volume
Talos Linux introduces support for configuring the `EPHEMERAL` volume (`/var`): location (disk), minimum and maximum size, etc. Talos Linux introduces support for configuring the `EPHEMERAL` volume (`/var`): location (disk), minimum and maximum size, etc.
You can find more information about the configuration in the [disk management guide]({{< relref "../../talos-guides/configuration/disk-management#machine-configuration" >}}). You can find more information about the configuration in the [disk management guide]({{< relref "../../talos-guides/configuration/disk-management.md#machine-configuration" >}}).
### Upgrades ### Upgrades
@ -159,28 +159,28 @@ Talos Linux now can optionally include well-known UEFI (Microsoft) SecureBoot ke
### Custom Trusted Roots ### Custom Trusted Roots
Talos Linux now supports adding [custom trusted roots]({{< relref "../../talos-guides/configuration/certificate-authorities" >}}) (CA certificates) via Talos Linux now supports adding [custom trusted roots]({{< relref "../../talos-guides/configuration/certificate-authorities.md" >}}) (CA certificates) via
a [`TrustedRootsConfig`]({{< relref "../../reference/configuration/security/trustedrootsconfig" >}}) configuration document. a [`TrustedRootsConfig`]({{< relref "../../reference/configuration/security/trustedrootsconfig.md" >}}) configuration document.
## Networking ## Networking
### Bridge ### Bridge
Talos Linux now support configuring [`vlan_filtering`]({{< relref "../../reference/configuration/v1alpha1/config#Config.machine.network.interfaces..bridge.vlan" >}}) for bridge interfaces. Talos Linux now support configuring [`vlan_filtering`]({{< relref "../../reference/configuration/v1alpha1/config.md#Config.machine.network.interfaces..bridge.vlan" >}}) for bridge interfaces.
### KubeSpan ### KubeSpan
Extra announced endpoints can be added using the [`KubespanEndpointsConfig` document]({{< relref "../../talos-guides/network/kubespan#configuration" >}}). Extra announced endpoints can be added using the [`KubespanEndpointsConfig` document]({{< relref "../../talos-guides/network/kubespan.md#configuration" >}}).
## Machine Configuration ## Machine Configuration
### Machine Configuration via Kernel Command Line ### Machine Configuration via Kernel Command Line
Talos Linux supports supplying zstd-compressed, base64-encoded machine configuration small documents via the [kernel command line parameter]({{< relref "../../reference/kernel" >}}) `talos.config.inline`. Talos Linux supports supplying zstd-compressed, base64-encoded machine configuration small documents via the [kernel command line parameter]({{< relref "../../reference/kernel.md" >}}) `talos.config.inline`.
### Strategic Merge Patches with `$patch: delete` ### Strategic Merge Patches with `$patch: delete`
Talos Linux now supports removing parts of the machine configuration by [patching]({{< relref "../../talos-guides/configuration/patching#strategic-merge-patches" >}}) using the `$patch: delete` syntax similar to the Kubernetes strategic merge patch. Talos Linux now supports removing parts of the machine configuration by [patching]({{< relref "../../talos-guides/configuration/patching.md#strategic-merge-patches" >}}) using the `$patch: delete` syntax similar to the Kubernetes strategic merge patch.
## Miscellaneous ## Miscellaneous
@ -197,7 +197,7 @@ This can be also explicitly enabled by setting `talos.halt_if_installed=1` in ke
### Platform Support ### Platform Support
Talos Linux now supports [Apache CloudStack platform]({{< relref "../../talos-guides/install/cloud-platforms/cloudstack" >}}). Talos Linux now supports [Apache CloudStack platform]({{< relref "../../talos-guides/install/cloud-platforms/cloudstack.md" >}}).
### ZSTD Compression ### ZSTD Compression

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

View File

@ -16,7 +16,7 @@ This guide is structured so that it can be followed step-by-step, skip sections
## Network Configuration ## Network Configuration
As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed. As Talos Linux is an API-based operating system, it is important to have networking configured so that the API can be accessed.
Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard " >}}) which is available on the machine console. Some information can be gathered from the [Interactive Dashboard]({{< relref "../talos-guides/interactive-dashboard" >}}) which is available on the machine console.
When running in the cloud the networking should be configured automatically. When running in the cloud the networking should be configured automatically.
Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}). Whereas when running on bare-metal it may need more specific configuration, see [networking `metal` configuration guide]({{< relref "../talos-guides/install/bare-metal-platforms/network-config" >}}).

View File

@ -4,7 +4,7 @@ weight: 50
description: "List of new and shiny features in Talos Linux." description: "List of new and shiny features in Talos Linux."
--- ---
See also [upgrade notes]({{< relref "../../talos-guides/upgrading-talos/">}}) for important changes. See also [upgrade notes]({{< relref "../talos-guides/upgrading-talos">}}) for important changes.
## Important Changes ## Important Changes
@ -26,7 +26,7 @@ The `systemd-udevd` might change the names of network interfaces with predictabl
## Image Cache ## Image Cache
Talos now supports providing a local [Image Cache]({{< relref "../../talos-guides/configuration/image-cache" >}}) for container images. Talos now supports providing a local [Image Cache]({{< relref "../../talos-guides/configuration/image-cache.md" >}}) for container images.
The Image Cache feature can be used to avoid downloading the required images over the network, which can be useful in air-gapped or weak connectivity environments. The Image Cache feature can be used to avoid downloading the required images over the network, which can be useful in air-gapped or weak connectivity environments.
@ -35,7 +35,7 @@ The Image Cache feature can be used to avoid downloading the required images ove
### Custom DNS Search Domains ### Custom DNS Search Domains
Talos now allows to supports specifying custom search domains for Talos nodes using Talos now allows to supports specifying custom search domains for Talos nodes using
new machine configuration field [`.machine.network.searchDomains`]({{< relref "../../reference/configuration/v1alpha1/config/#Config.machine.network" >}}). new machine configuration field [`.machine.network.searchDomains`]({{< relref "../../reference/configuration/v1alpha1/config.md#Config.machine.network" >}}).
For the host the `/etc/resolve.conf` would look like: For the host the `/etc/resolve.conf` would look like:
@ -55,7 +55,7 @@ options ndots:5
### Device Selectors ### Device Selectors
Talos now supports matching on [permanent hardware (MAC) address]({{< relref "../../reference/configuration/v1alpha1/config/#Config.machine.network.interfaces..bond.deviceSelectors." >}}) of the network interfaces. Talos now supports matching on [permanent hardware (MAC) address]({{< relref "../../reference/configuration/v1alpha1/config.md#Config.machine.network.interfaces..bond.deviceSelectors." >}}) of the network interfaces.
This is specifically useful to match bond members, as they change their hardware addresses when they become part of the bond. This is specifically useful to match bond members, as they change their hardware addresses when they become part of the bond.
### Node Address Ordering ### Node Address Ordering
@ -75,7 +75,7 @@ The new algorithm prefers more specific prefixes, which is specifically useful f
## Control Groups Analysis ## Control Groups Analysis
The `talosctl cgroups` command has been added to the `talosctl` tool. The `talosctl cgroups` command has been added to the `talosctl` tool.
This command allows you to view the [cgroup resource consumption and limits]({{< relref "../../advanced/cgroups-analysis" >}}) for a machine, e.g. This command allows you to view the [cgroup resource consumption and limits]({{< relref "../../advanced/cgroups-analysis.md" >}}) for a machine, e.g.
`talosctl cgroups --preset memory`. `talosctl cgroups --preset memory`.
## Kubernetes ## Kubernetes
@ -108,13 +108,13 @@ Current authorization config can be viewed by running: `talosctl get authorizati
### User Namespaces ### User Namespaces
Talos Linux now supports running Kubernetes pods with user namespaces enabled. Talos Linux now supports running Kubernetes pods with user namespaces enabled.
Please refer to the [documentation]({{< relref "../../kubernetes-guides/configuration/usernamespace" >}}) for more information. Please refer to the [documentation]({{< relref "../../kubernetes-guides/configuration/usernamespace.md" >}}) for more information.
## Containers ## Containers
### OCI Base Runtime Spec ### OCI Base Runtime Spec
Talos now allows to [modify the OCI base runtime spec for the container runtime]({{< relref "../../advanced/oci-base-spec" >}}). Talos now allows to [modify the OCI base runtime spec for the container runtime]({{< relref "../../advanced/oci-base-spec.md" >}}).
### Registry Mirrors ### Registry Mirrors
@ -124,7 +124,7 @@ Talos will never fall back to the default registry if endpoints are configured,
> Note: Talos Linux pulls images for the `installer`, `kubelet`, `etcd`, while all workload images are pulled by the CRI plugin. > Note: Talos Linux pulls images for the `installer`, `kubelet`, `etcd`, while all workload images are pulled by the CRI plugin.
In Talos 1.9 this was fixed, so that by default an upstream registry is used as a fallback in all cases, while new registry mirror In Talos 1.9 this was fixed, so that by default an upstream registry is used as a fallback in all cases, while new registry mirror
[configuration option]({{< relref "../../reference/configuration/v1alpha1/config/#Config.machine.registries.mirrors.-" >}}) `.skipFallback` can be used to disable this behavior both for Talos and CRI plugin. [configuration option]({{< relref "../../reference/configuration/v1alpha1/config.md#Config.machine.registries.mirrors.-" >}}) `.skipFallback` can be used to disable this behavior both for Talos and CRI plugin.
## Miscellaneous ## Miscellaneous
@ -145,7 +145,7 @@ The new command `talosctl wipe disk` allows to wipe a disk or a partition which
### Turing RK1 ### Turing RK1
Talos now supports the [Turning RK1]({{< relref "../../talos-guides/install/single-board-computers/turing_rk1" >}}) SOM. Talos now supports the [Turning RK1]({{< relref "../../talos-guides/install/single-board-computers/turing_rk1.md" >}}) SOM.
### `nocloud` ### `nocloud`

View File

@ -59,7 +59,7 @@ Monitor screen provides live view of the machine resource usage: CPU, memory, di
Interactive Dashboard Network Config Screen Interactive Dashboard Network Config Screen
{{< /imgproc >}} {{< /imgproc >}}
Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "../install/bare-metal-platforms/network-config" >}}). Network config screen provides editing capabilities for the `metal` [platform network configuration]({{< relref "install/bare-metal-platforms/network-config" >}}).
The screen is split into three sections: The screen is split into three sections:

5
website/go.mod Normal file
View File

@ -0,0 +1,5 @@
module github.com/siderolabs/website
go 1.24.1
require github.com/google/docsy v0.11.0 // indirect

4
website/go.sum Normal file
View File

@ -0,0 +1,4 @@
github.com/FortAwesome/Font-Awesome v0.0.0-20240716171331-37eff7fa00de/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
github.com/google/docsy v0.11.0 h1:QnV40cc28QwS++kP9qINtrIv4hlASruhC/K3FqkHAmM=
github.com/google/docsy v0.11.0/go.mod h1:hGGW0OjNuG5ZbH5JRtALY3yvN8ybbEP/v2iaK4bwOUI=
github.com/twbs/bootstrap v5.3.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=

View File

@ -1,10 +1,9 @@
baseURL = "/" baseURL = "/"
title = "Talos Linux" title = "TALOS LINUX"
enableRobotsTXT = true enableRobotsTXT = true
# Hugo allows theme composition (and inheritance). The precedence is from left to right. theme = ["github.com/google/docsy"]
theme = ["docsy"]
# Will give values to .Lastmod etc. # Will give values to .Lastmod etc.
enableGitInfo = true enableGitInfo = true
@ -78,7 +77,7 @@ style = "solarized-dark"
# Comment out if you don't want the "print entire section" link enabled. # Comment out if you don't want the "print entire section" link enabled.
[outputs] [outputs]
home = ["HTML", "RSS", "netlify_redirect"] home = ["HTML", "RSS", "netlify_redirect"]
section = ["HTML", "print", "RSS"] section = ["HTML", "RSS"]
[mediaTypes.'text/prs.netlify'] [mediaTypes.'text/prs.netlify']
suffixes = [""] suffixes = [""]
@ -132,7 +131,7 @@ github_branch= "main"
# gcs_engine_id = "d72aa9b2712488cc3" # gcs_engine_id = "d72aa9b2712488cc3"
# Enable Algolia DocSearch # Enable Algolia DocSearch
algolia_docsearch = false # search.algolia = true
# Enable Lunr.js offline search # Enable Lunr.js offline search
offlineSearch = false offlineSearch = false
@ -188,8 +187,8 @@ version = "v1.0"
[params.ui] [params.ui]
# Set to true to disable breadcrumb navigation. # Set to true to disable breadcrumb navigation.
breadcrumb_disable = false breadcrumb_disable = false
# Set to true to disable the About link in the site footer # Set to false to disable the About link in the site footer
footer_about_disable = false footer_about_enable = true
# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar # Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar
navbar_logo = true navbar_logo = true
# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage. # Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage.

View File

@ -3,10 +3,16 @@
<script src="/js/clipboard.js"></script> <script src="/js/clipboard.js"></script>
{{ end }} {{ end }}
{{ $currentVersion := index (split .Page.File.Dir "/" ) 0 }} {{ $currentVersion := index (split .Page.Path "/" ) 0 }}
{{ $currentVersionDir := $currentVersion | printf "/%s"}} {{ $currentVersionDir := $currentVersion | printf "/%s"}}
<script src="https://cdn.jsdelivr.net/npm/@docsearch/js@3"></script> <script src="https://cdn.jsdelivr.net/npm/@docsearch/js@3"></script>
<script>
const navEl = document.getElementsByTagName("nav")
const searchDivEl = document.createElement("div")
searchDivEl.id = "algolia-search"
navEl.item(0).children[0].appendChild(searchDivEl)
</script>
<!-- <!--
this targets the facets of algolia search to only return the version you're actively looking at this targets the facets of algolia search to only return the version you're actively looking at

851
website/package-lock.json generated Normal file
View File

@ -0,0 +1,851 @@
{
"name": "website",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"autoprefixer": "^10.4.21",
"postcss": "^8.5.3",
"postcss-cli": "^11.0.1"
}
},
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/autoprefixer": {
"version": "10.4.21",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
"integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/autoprefixer"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"browserslist": "^4.24.4",
"caniuse-lite": "^1.0.30001702",
"fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.1.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
"autoprefixer": "bin/autoprefixer"
},
"engines": {
"node": "^10 || ^12 || >=14"
},
"peerDependencies": {
"postcss": "^8.1.0"
}
},
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
"integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"license": "MIT",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/browserslist": {
"version": "4.24.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"caniuse-lite": "^1.0.30001688",
"electron-to-chromium": "^1.5.73",
"node-releases": "^2.0.19",
"update-browserslist-db": "^1.1.1"
},
"bin": {
"browserslist": "cli.js"
},
"engines": {
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001712",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz",
"integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "CC-BY-4.0"
},
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.1",
"wrap-ansi": "^7.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
},
"node_modules/dependency-graph": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz",
"integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==",
"license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.134",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.134.tgz",
"integrity": "sha512-zSwzrLg3jNP3bwsLqWHmS5z2nIOQ5ngMnfMZOWWtXnqqQkPVyOipxK98w+1beLw1TB+EImPNcG8wVP/cLVs2Og==",
"license": "ISC"
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"license": "MIT"
},
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/fraction.js": {
"version": "4.3.7",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
"integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
"license": "MIT",
"engines": {
"node": "*"
},
"funding": {
"type": "patreon",
"url": "https://github.com/sponsors/rawify"
}
},
"node_modules/fs-extra": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
"integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=14.14"
}
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"license": "ISC",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"license": "ISC"
},
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/lilconfig": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
"integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"license": "MIT",
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/antonk52"
}
},
"node_modules/nanoid": {
"version": "3.3.11",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/node-releases": {
"version": "2.0.19",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"license": "MIT"
},
"node_modules/normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"license": "MIT",
"engines": {
"node": ">=8.6"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/postcss": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.8",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postcss-cli": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz",
"integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==",
"license": "MIT",
"dependencies": {
"chokidar": "^3.3.0",
"dependency-graph": "^1.0.0",
"fs-extra": "^11.0.0",
"picocolors": "^1.0.0",
"postcss-load-config": "^5.0.0",
"postcss-reporter": "^7.0.0",
"pretty-hrtime": "^1.0.3",
"read-cache": "^1.0.0",
"slash": "^5.0.0",
"tinyglobby": "^0.2.12",
"yargs": "^17.0.0"
},
"bin": {
"postcss": "index.js"
},
"engines": {
"node": ">=18"
},
"peerDependencies": {
"postcss": "^8.0.0"
}
},
"node_modules/postcss-load-config": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz",
"integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"lilconfig": "^3.1.1",
"yaml": "^2.4.2"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"jiti": ">=1.21.0",
"postcss": ">=8.0.9",
"tsx": "^4.8.1"
},
"peerDependenciesMeta": {
"jiti": {
"optional": true
},
"postcss": {
"optional": true
},
"tsx": {
"optional": true
}
}
},
"node_modules/postcss-reporter": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz",
"integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"picocolors": "^1.0.0",
"thenby": "^1.3.4"
},
"engines": {
"node": ">=10"
},
"peerDependencies": {
"postcss": "^8.1.0"
}
},
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"license": "MIT"
},
"node_modules/pretty-hrtime": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
"integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
"license": "MIT",
"dependencies": {
"pify": "^2.3.0"
}
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
},
"engines": {
"node": ">=8.10.0"
}
},
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/slash": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
"license": "MIT",
"engines": {
"node": ">=14.16"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/thenby": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz",
"integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==",
"license": "Apache-2.0"
},
"node_modules/tinyglobby": {
"version": "0.2.12",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
"integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
"license": "MIT",
"dependencies": {
"fdir": "^6.4.3",
"picomatch": "^4.0.2"
},
"engines": {
"node": ">=12.0.0"
},
"funding": {
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.4.3",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
"integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
"license": "MIT",
"peerDependencies": {
"picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
"picomatch": {
"optional": true
}
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
"engines": {
"node": ">=8.0"
}
},
"node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/update-browserslist-db": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"escalade": "^3.2.0",
"picocolors": "^1.1.1"
},
"bin": {
"update-browserslist-db": "cli.js"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
}
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"license": "ISC",
"engines": {
"node": ">=10"
}
},
"node_modules/yaml": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz",
"integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==",
"license": "ISC",
"bin": {
"yaml": "bin.mjs"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"license": "MIT",
"dependencies": {
"cliui": "^8.0.1",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
"string-width": "^4.2.3",
"y18n": "^5.0.5",
"yargs-parser": "^21.1.1"
},
"engines": {
"node": ">=12"
}
},
"node_modules/yargs-parser": {
"version": "21.1.1",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"license": "ISC",
"engines": {
"node": ">=12"
}
}
}
}

7
website/package.json Normal file
View File

@ -0,0 +1,7 @@
{
"dependencies": {
"autoprefixer": "^10.4.21",
"postcss": "^8.5.3",
"postcss-cli": "^11.0.1"
}
}

View File

@ -1,10 +0,0 @@
# Editor configuration, see https://editorconfig.org
root = true
# All files
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@ -1,55 +0,0 @@
# These settings are synced to GitHub by https://probot.github.io/apps/settings/
# repository: # See https://developer.github.com/v3/repos/#edit for all available settings.
labels:
- name: analytics-and-seo
color: ffffff
- name: blocked
color: B60205
- name: cleanup/refactoring
color: 1ebcd8
- name: copyedit
color: fbca04
- name: design/style
description: Front-end site design / styling
color: c5def5
- name: e0-minutes
description: Effort < 60 min
color: e6ccb3
- name: e1-hours
description: Effort < 8 hrs
color: d9b38c
- name: e2-days
description: Effort < 5 days
color: cc9966
- name: e3-weeks
description: Effort < 4 weeks
color: bf8040
- name: e4-months
description: Effort 1+ months
color: 996633
- name: infrastructure
color: 696969
- name: mobile
color: da44d5
- name: needs-info
color: fef2c0
- name: p0-critical
color: B60205
- name: p1-high
color: D93F0B
- name: p2-medium
color: FBCA04
- name: p3-low
color: FEF2C0
- name: spam
color: f9e3ae
- name: upstream
color: f5a4df
- name: UX
color: 8719D2

View File

@ -1,18 +0,0 @@
node_modules/
package-lock.json
# Hugo
.hugo_build.lock
/public
resources/
# vim temporary files
*~
*.sw?
# system files
.DS_Store
# IDE files
.idea
.vscode

View File

@ -1,9 +0,0 @@
[submodule "assets/vendor/bootstrap"]
path = assets/vendor/bootstrap
url = https://github.com/twbs/bootstrap.git
shallow = true
branch = v4-dev
[submodule "assets/vendor/Font-Awesome"]
path = assets/vendor/Font-Awesome
url = https://github.com/FortAwesome/Font-Awesome.git
shallow = true

View File

@ -1 +0,0 @@
lts/*

View File

@ -1,5 +0,0 @@
{
"semi": true,
"singleQuote": true,
"tabWidth": 4
}

View File

@ -1,14 +0,0 @@
routes:
- route: "^.+\\.(js|css|svg|ttf)$"
# cache static assets for 20 years
headers:
Cache-Control: "max-age=630720000, no-transform, public"
gzip: true
- route: "^.+\\.(png|jpg)$"
headers:
Cache-Control: "max-age=630720000, no-transform, public"
gzip: true
- route: "^.+\\.(html|xml|json)$"
gzip: true

View File

@ -1,34 +0,0 @@
# How to Contribute
We'd love to accept your patches and contributions to this project. There are
just a few small guidelines you need to follow.
## Contributor License Agreement
Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution;
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.
You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.
## Code reviews
All submissions, including submissions by project members, require review. We
use GitHub pull requests for this purpose. Consult
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
information on using pull requests.
## Community Guidelines
This project follows
[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/).
## How to contribute
See the [contribution
guidelines](https://www.docsy.dev/docs/contribution-guidelines/)
in the Docsy user guide.

View File

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -1,59 +0,0 @@
# Docsy
Docsy is a [Hugo](https://gohugo.io/) theme for technical documentation sets, providing simple navigation, site structure, and more.
This is not an officially supported Google product. This project is actively being maintained.
## Prerequisites
The following are basic prerequisites for using Docsy in your site:
- Install a recent release of the Hugo "extended" version (we recommend version 0.53 or later). If you install from the
[release page](https://github.com/gohugoio/hugo/releases), make sure you download the `_extended` version
which supports SCSS.
- Install `PostCSS` so that the site build can create the final CSS assets. You can install it locally by running
the following commands from the root directory of your project:
```
sudo npm install -D --save autoprefixer
sudo npm install -D --save postcss-cli
```
## Example and usage
You can find an example project that uses Docsy in the [Docsy Example Project repo](https://github.com/google/docsy-example).The Docsy Example Project is hosted at [https://example.docsy.dev/](https://example.docsy.dev/). For real-life examples of sites that use Docsy (and their source repos), see our [Examples](https://www.docsy.dev/docs/examples/) page.
To use the Docsy theme for your own site:
- (Recommended) Use the [example project](https://github.com/google/docsy-example),
which includes the Docsy theme as a submodule, as a template to create your project.
You can customize this pre-configured basic site into your own Docsy themed site.
[Learn more...](https://github.com/google/docsy-example)
- Add Docsy to your existing Hugo site repo's `themes` directory. You can either add Docsy as a Git submodule, or
clone the Docsy theme into your project.
See the [Docsy Getting Started Guide](https://docsy.dev/docs/getting-started/) for
details about the various usage options.
## Documentation
Docsy has its own user guide (using Docsy, of course!) with lots more information about using the theme, which you can find at [https://docsy.dev/](https://docsy.dev/). Alternatively you can use Hugo to generate and serve a local copy of the guide (also useful for testing local theme changes), making sure you have installed all the prerequisites listed above:
```
git clone --recurse-submodules --depth 1 https://github.com/google/docsy.git
cd docsy/userguide/
hugo server --themesDir ../..
```
Note: you need the `themesDir` flag when running Hugo because the site files are inside the theme repo.
## Contributing ![GitHub](https://img.shields.io/github/contributors/google/docsy)
Please read [CONTRIBUTING.md](https://github.com/google/docsy/blob/master/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
See also the list of [contributors](https://github.com/google/docsy/graphs/contributors) who participated in this project.
## License ![GitHub](https://img.shields.io/github/license/google/docsy)
This project is licensed under the Apache License 2.0 - see the [LICENSE.md](https://github.com/google/docsy/blob/master/LICENSE) file for details

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,237 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">
<g>
<path style="fill:#FFFFFF;" d="M116.8525,421.9722c-5.7041,0-10.3442-4.3127-10.3442-9.6129V88.183
c0-5.3002,4.6401-9.6117,10.3442-9.6117H320.858c3.0347,0,9.3959,0.5498,11.7506,2.6302l0.3545,0.3442l58.905,63.2912
c2.3101,2.491,2.9202,8.4928,2.9202,11.3184v256.2039c0,5.3002-4.6407,9.6129-10.3436,9.6129H116.8525z"/>
<g>
<g>
<g>
<path style="fill:#767676;" d="M384.4445,423.2066H116.852c-6.3839,0-11.5786-4.8658-11.5786-10.8474V88.1831
c0-5.9804,5.1947-10.8461,11.5786-10.8461h204.0062c0.377,0,9.2786,0.0329,12.568,2.9389l0.3947,0.3833l58.9508,63.337
c3.2135,3.4652,3.2514,11.7924,3.2514,12.1593v256.2036C396.0231,418.3408,390.8284,423.2066,384.4445,423.2066z
M116.5079,411.9189c0.0848,0.0278,0.1999,0.0531,0.3441,0.0531h267.5925c0.1442,0,0.2581-0.0253,0.3441-0.0531V156.1556
c-0.0076-0.9033-0.3593-3.7347-0.7034-5.0037l-57.6527-61.9416c-1.4651-0.3176-4.4533-0.6389-5.5742-0.6389H116.852
c-0.143,0-0.2594,0.024-0.3441,0.0531V411.9189z M383.9612,150.7699L383.9612,150.7699L383.9612,150.7699z M327.0321,89.371
v0.0013V89.371z"/>
</g>
</g>
</g>
<g>
<g>
<path style="fill:#5B7FC0;" d="M189.0874,210.1754l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.328-2.2733-15.458-6.4032s-6.4032-9.6186-6.4056-15.4628
c0.0012-6.025,2.454-11.4897,6.4116-15.4473C177.5953,212.627,183.0601,210.1742,189.0874,210.1754z M197.0804,232.033
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6539c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
S197.0816,234.1722,197.0804,232.033z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,210.176c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,212.6276,183.0612,210.176,189.0898,210.176z M197.0839,232.0372c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,236.239,197.0839,234.2399,197.0839,232.0372z"/>
<g>
<defs>
<path id="SVGID_1_" d="M194.7376,237.6875c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.999,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,234.2399,196.1861,236.239,194.7376,237.6875z"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_2_);fill:#FFFFFF;" d="M190.0704,225.0237c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.663-2.8588-6.116
c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,225.7247,191.9774,225.0237,190.0704,225.0237z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_2_);fill:#020202;" d="M190.0704,225.0237
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,225.7247,191.9774,225.0237,190.0704,225.0237z"/>
</g>
<g>
<defs>
<path id="SVGID_3_" d="M189.0898,210.176c7.7763,0,15.0283,4.1826,18.926,10.9151c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,212.6276,183.0612,210.176,189.0898,210.176z M197.0839,232.0372
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,236.239,197.0839,234.2399,197.0839,232.0372z"/>
</defs>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_3_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_4_);fill:#5B7FC0;" d="M172.6595,215.6045c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8612c12.0547,0.0024,21.8636-9.797,21.8613-21.8612
c0.0024-3.8475-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,209.1953,176.6171,211.647,172.6595,215.6045z"/>
</g>
</g>
<rect x="198.8952" y="225.1043" style="fill:#5B7FC0;" width="122.6266" height="13.8671"/>
</g>
<g>
<path style="fill:#D95140;" d="M189.0874,155.7611l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032
c-5.8394,0-11.328-2.2733-15.458-6.4032s-6.4032-9.6186-6.4056-15.4628c0.0012-6.0249,2.454-11.4897,6.4116-15.4473
C177.5953,158.2128,183.0601,155.7599,189.0874,155.7611z M197.0804,177.6188c0.0012-1.4042-0.3687-2.7868-1.063-3.9887
c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993c0,2.1356,0.832,4.1431,2.3427,5.6539
c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
C196.2508,181.7667,197.0816,179.758,197.0804,177.6188z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,155.7617c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,158.2134,183.0612,155.7617,189.0898,155.7617z M197.0839,177.623c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,181.8248,197.0839,179.8256,197.0839,177.623z"/>
<g>
<defs>
<path id="SVGID_5_" d="M194.7376,183.2733c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.9989,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,179.8256,196.1861,181.8248,194.7376,183.2733z"/>
</defs>
<clipPath id="SVGID_6_">
<use xlink:href="#SVGID_5_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_6_);fill:#FFFFFF;" d="M190.0704,170.6095c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942
c2.3802-0.0001,4.616,1.0833,6.1218,2.8788C193.7885,171.3104,191.9774,170.6095,190.0704,170.6095z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_6_);fill:#020202;" d="M190.0704,170.6095
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,171.3104,191.9774,170.6095,190.0704,170.6095z"/>
</g>
<g>
<defs>
<path id="SVGID_7_" d="M189.0898,155.7617c7.7763,0,15.0283,4.1826,18.926,10.9151c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,158.2134,183.0612,155.7617,189.0898,155.7617z M197.0839,177.623
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,181.8248,197.0839,179.8256,197.0839,177.623z"/>
</defs>
<clipPath id="SVGID_8_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_8_);fill:#D95140;" d="M172.6595,161.1903c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8613c12.0547,0.0024,21.8636-9.797,21.8613-21.8613
c0.0024-3.8474-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,154.7811,176.6171,157.2327,172.6595,161.1903z"/>
</g>
<rect x="198.8952" y="170.69" style="fill:#D95140;" width="122.6266" height="13.8671"/>
</g>
<g>
<g>
<path style="fill:#56A55C;" d="M189.5379,264.6147l0.0012-0.0012c7.7751,0.0012,15.0294,4.1862,18.932,10.9235
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.3281-2.2733-15.458-6.4032c-4.13-4.13-6.4032-9.6186-6.4056-15.4628
c0.0012-6.0249,2.454-11.4897,6.4116-15.4472C178.0458,267.0663,183.5105,264.6135,189.5379,264.6147z M197.5309,286.4723
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6538c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
C196.7013,290.6202,197.5321,288.6115,197.5309,286.4723z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.5403,264.6153c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8613c0-6.0285,2.4516-11.492,6.4116-15.452
C178.0482,267.0669,183.5117,264.6153,189.5403,264.6153z M197.5344,286.4765c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.6366,290.6783,197.5344,288.6792,197.5344,286.4765z"/>
<g>
<defs>
<path id="SVGID_9_" d="M195.1881,292.1268c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.9989,7.9942-7.9941c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.5344,288.6792,196.6366,290.6783,195.1881,292.1268z"/>
</defs>
<clipPath id="SVGID_10_">
<use xlink:href="#SVGID_9_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_10_);fill:#FFFFFF;" d="M190.5209,279.463c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354c-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161
c0.0024-4.4125,3.5936-7.999,7.9942-7.9941c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C194.239,280.164,192.4279,279.463,190.5209,279.463z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_10_);fill:#020202;" d="M190.5209,279.463
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354
c-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161c0.0024-4.4125,3.5936-7.999,7.9942-7.9941
c2.3802-0.0001,4.616,1.0833,6.1218,2.8788C194.239,280.164,192.4279,279.463,190.5209,279.463z"/>
</g>
<g>
<defs>
<path id="SVGID_11_" d="M189.5403,264.6153c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8613c0-6.0285,2.4516-11.492,6.4116-15.452
C178.0482,267.0669,183.5117,264.6153,189.5403,264.6153z M197.5344,286.4765c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.6366,290.6783,197.5344,288.6792,197.5344,286.4765z"/>
</defs>
<clipPath id="SVGID_12_">
<use xlink:href="#SVGID_11_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_12_);fill:#56A55C;" d="M173.11,270.0439c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8613c12.0547,0.0024,21.8636-9.797,21.8613-21.8613
c0.0024-3.8474-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7325-11.1497-10.9151-18.926-10.9151
C182.5311,263.6346,177.0676,266.0863,173.11,270.0439z"/>
</g>
</g>
<rect x="199.3456" y="279.5436" style="fill:#56A55C;" width="122.6266" height="13.8671"/>
</g>
<g>
<g>
<path style="fill:#F1BC42;" d="M189.0874,318.7208l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3305-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.328-2.2733-15.458-6.4032c-4.13-4.1299-6.4032-9.6186-6.4056-15.4628
c0.0012-6.025,2.454-11.4897,6.4116-15.4472C177.5953,321.1724,183.0601,318.7196,189.0874,318.7208z M197.0804,340.5784
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6539c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
S197.0816,342.7176,197.0804,340.5784z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,318.7214c7.7763,0,15.0283,4.1826,18.926,10.915
c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8612
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8612c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,321.173,183.0612,318.7214,189.0898,318.7214z M197.0839,340.5826c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,344.7844,197.0839,342.7853,197.0839,340.5826z"/>
<g>
<defs>
<path id="SVGID_13_" d="M194.7376,346.2329c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.999,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,342.7853,196.1861,344.7844,194.7376,346.2329z"/>
</defs>
<clipPath id="SVGID_14_">
<use xlink:href="#SVGID_13_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_14_);fill:#FFFFFF;" d="M190.0704,333.5691c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161
c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0834,6.1218,2.8788
C193.7885,334.2701,191.9774,333.5691,190.0704,333.5691z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_14_);fill:#020202;" d="M190.0704,333.5691
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161c0.0024-4.4125,3.5936-7.999,7.9942-7.9942
c2.3802-0.0001,4.616,1.0834,6.1218,2.8788C193.7885,334.2701,191.9774,333.5691,190.0704,333.5691z"/>
</g>
<g>
<defs>
<path id="SVGID_15_" d="M189.0898,318.7214c7.7763,0,15.0283,4.1826,18.926,10.915c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8612c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8612
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,321.173,183.0612,318.7214,189.0898,318.7214z M197.0839,340.5826
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,344.7844,197.0839,342.7853,197.0839,340.5826z"/>
</defs>
<clipPath id="SVGID_16_">
<use xlink:href="#SVGID_15_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_16_);fill:#F1BC42;" d="M172.6595,324.15c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8612c12.0547,0.0024,21.8636-9.797,21.8613-21.8612
c0.0024-3.8474-1.0151-7.6327-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,317.7407,176.6171,320.1924,172.6595,324.15z"/>
</g>
</g>
<rect x="198.8952" y="333.6497" style="fill:#F1BC42;" width="122.6266" height="13.8671"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,49 +0,0 @@
/*
* Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function ($) {
'use strict';
// Headers' anchor link that shows on hover
$(function () {
// append anchor links to headings in markdown.
var article = document.getElementsByTagName('main')[0];
if (!article) {
return;
}
var headings = article.querySelectorAll('h1, h2, h3, h4, h5, h6');
headings.forEach(function (heading) {
if (heading.id) {
var a = document.createElement('a');
// set visibility: hidden, not display: none to avoid layout change
a.style.visibility = 'hidden';
// [a11y] hide this from screen readers, etc..
a.setAttribute('aria-hidden', 'true');
// material insert_link icon in svg format
a.innerHTML = ' <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>';
a.href = '#' + heading.id;
heading.insertAdjacentElement('beforeend', a);
heading.addEventListener('mouseenter', function () {
a.style.visibility = 'initial';
});
heading.addEventListener('mouseleave', function () {
a.style.visibility = 'hidden';
});
}
});
});
}(jQuery));

View File

@ -1,65 +0,0 @@
/*
* Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function($) {
'use strict';
$(function() {
$('[data-toggle="tooltip"]').tooltip();
$('[data-toggle="popover"]').popover();
$('.popover-dismiss').popover({
trigger: 'focus'
})
});
function bottomPos(element) {
return element.offset().top + element.outerHeight();
}
// Bootstrap Fixed Header
$(function() {
var promo = $(".js-td-cover");
if (!promo.length) {
return
}
var promoOffset = bottomPos(promo);
var navbarOffset = $('.js-navbar-scroll').offset().top;
var threshold = Math.ceil($('.js-navbar-scroll').outerHeight());
if ((promoOffset - navbarOffset) < threshold) {
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
}
$(window).on('scroll', function() {
var navtop = $('.js-navbar-scroll').offset().top - $(window).scrollTop();
var promoOffset = bottomPos($('.js-td-cover'));
var navbarOffset = $('.js-navbar-scroll').offset().top;
if ((promoOffset - navbarOffset) < threshold) {
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
} else {
$('.js-navbar-scroll').removeClass('navbar-bg-onscroll');
$('.js-navbar-scroll').addClass('navbar-bg-onscroll--fade');
}
});
});
}(jQuery));

View File

@ -1,106 +0,0 @@
{{with .Site.Params.drawio}}
{{if .enable }}
(function () {
var shade;
var iframe;
var insertFrame = function () {
shade = document.createElement('div');
shade.classList.add('drawioframe');
iframe = document.createElement('iframe');
shade.appendChild(iframe);
document.body.appendChild(shade);
}
var closeFrame = function () {
if (shade) {
document.body.removeChild(shade);
shade = undefined;
iframe = undefined;
}
}
var imghandler = function (img, imgdata) {
var url = {{ .drawio_server | default "https://embed.diagrams.net/" | jsonify }};
url += '?embed=1&ui=atlas&spin=1&modified=unsavedChanges&proto=json&saveAndEdit=1&noSaveBtn=1';
var wrapper = document.createElement('div');
wrapper.classList.add('drawio');
img.parentNode.insertBefore(wrapper, img);
wrapper.appendChild(img);
var btn = document.createElement('button');
btn.classList.add('drawiobtn');
btn.insertAdjacentHTML('beforeend', '<i class="fas fa-edit"></i>');
wrapper.appendChild(btn);
btn.addEventListener('click', function (evt) {
if (iframe) return;
insertFrame();
var handler = function (evt) {
var wind = iframe.contentWindow;
if (evt.data.length > 0 && evt.source == wind) {
var msg = JSON.parse(evt.data);
if (msg.event == 'init') {
wind.postMessage(JSON.stringify({action: 'load', xml: imgdata}), '*');
} else if (msg.event == 'save') {
var fmt = imgdata.indexOf('data:image/png') == 0 ? 'xmlpng' : 'xmlsvg';
wind.postMessage(JSON.stringify({action: 'export', format: fmt}), '*');
} else if (msg.event == 'export') {
const fn = img.src.replace(/^.*?([^/]+)$/, '$1');
const dl = document.createElement('a');
dl.setAttribute('href', msg.data);
dl.setAttribute('download', fn);
document.body.appendChild(dl);
dl.click();
dl.parentNode.removeChild(dl);
}
if (msg.event == 'exit' || msg.event == 'export') {
window.removeEventListener('message', handler);
closeFrame();
}
}
};
window.addEventListener('message', handler);
iframe.setAttribute('src', url);
});
};
document.addEventListener('DOMContentLoaded', function () {
// find all the png and svg images that may have embedded xml diagrams
for (const el of document.getElementsByTagName('img')) {
const img = el;
const src = img.getAttribute('src');
if (!src.endsWith('.svg') && !src.endsWith('.png')) {
continue;
}
const xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.open("GET", src);
xhr.addEventListener("load", function () {
const fr = new FileReader();
fr.addEventListener('load', function () {
if (fr.result.indexOf('mxfile') != -1) {
const fr = new FileReader();
fr.addEventListener('load', function () {
const imgdata = fr.result;
imghandler(img, imgdata);
});
fr.readAsDataURL(xhr.response);
}
});
fr.readAsBinaryString(xhr.response);
});
xhr.send();
};
});
}());
{{end}}
{{end}}

View File

@ -1,19 +0,0 @@
{{ with .Site.Params.markmap }}
{{ if .enable }}
(function($) {
var needMarkmap = false;
$('.language-markmap').parent().replaceWith(function() {
needMarkmap = true;
return $('<div class="markmap">').text($(this).text());
});
const { markmap } = window;
if(needMarkmap) {
markmap.autoLoader.renderAll();
}
})(jQuery);
{{ end }}
{{ end }}

View File

@ -1,38 +0,0 @@
{{ with .Site.Params.mermaid }}
{{ if .enable }}
(function($) {
var needMermaid = false;
$('.language-mermaid').parent().replaceWith(function() {
needMermaid = true;
return $('<pre class="mermaid">').text($(this).text());
});
if (!needMermaid) {
mermaid.initialize({startOnLoad: false});
return;
}
var params = {{ . | jsonify | safeJS }};
// site params are stored with lowercase keys; lookup correct casing
// from Mermaid default config.
var norm = function(defaultConfig, params) {
var result = {};
for (const key in defaultConfig) {
const keyLower = key.toLowerCase();
if (defaultConfig.hasOwnProperty(key) && params.hasOwnProperty(keyLower)) {
if (typeof defaultConfig[key] === "object") {
result[key] = norm(defaultConfig[key], params[keyLower]);
} else {
result[key] = params[keyLower];
}
}
}
return result;
};
var settings = norm(mermaid.mermaidAPI.defaultConfig, params);
settings.startOnLoad = true;
mermaid.initialize(settings);
})(jQuery);
{{ end }}
{{ end }}

View File

@ -1,201 +0,0 @@
// Adapted from code by Matt Walters https://www.mattwalters.net/posts/hugo-and-lunr/
(function ($) {
'use strict';
$(document).ready(function () {
const $searchInput = $('.td-search-input');
//
// Options for popover
//
$searchInput.data('html', true);
$searchInput.data('placement', 'bottom');
$searchInput.data(
'template',
'<div class="popover offline-search-result" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
);
//
// Register handler
//
$searchInput.on('change', (event) => {
render($(event.target));
// Hide keyboard on mobile browser
$searchInput.blur();
});
// Prevent reloading page by enter key on sidebar search.
$searchInput.closest('form').on('submit', () => {
return false;
});
//
// Lunr
//
let idx = null; // Lunr index
const resultDetails = new Map(); // Will hold the data for the search results (titles and summaries)
// Set up for an Ajax call to request the JSON data file that is created by Hugo's build process
$.ajax($searchInput.data('offline-search-index-json-src')).then(
(data) => {
idx = lunr(function () {
this.ref('ref');
// If you added more searchable fields to the search index, list them here.
// Here you can specify searchable fields to the search index - e.g. individual toxonomies for you project
// With "boost" you can add weighting for specific (default weighting without boost: 1)
this.field('title', { boost: 5 });
this.field('categories', { boost: 3 });
this.field('tags', { boost: 3 });
// this.field('projects', { boost: 3 }); // example for an individual toxonomy called projects
this.field('description', { boost: 2 });
this.field('body');
data.forEach((doc) => {
this.add(doc);
resultDetails.set(doc.ref, {
title: doc.title,
excerpt: doc.excerpt,
});
});
});
$searchInput.trigger('change');
}
);
const render = ($targetSearchInput) => {
// Dispose the previous result
$targetSearchInput.popover('dispose');
//
// Search
//
if (idx === null) {
return;
}
const searchQuery = $targetSearchInput.val();
if (searchQuery === '') {
return;
}
const results = idx
.query((q) => {
const tokens = lunr.tokenizer(searchQuery.toLowerCase());
tokens.forEach((token) => {
const queryString = token.toString();
q.term(queryString, {
boost: 100,
});
q.term(queryString, {
wildcard:
lunr.Query.wildcard.LEADING |
lunr.Query.wildcard.TRAILING,
boost: 10,
});
q.term(queryString, {
editDistance: 2,
});
});
})
.slice(
0,
$targetSearchInput.data('offline-search-max-results')
);
//
// Make result html
//
const $html = $('<div>');
$html.append(
$('<div>')
.css({
display: 'flex',
justifyContent: 'space-between',
marginBottom: '1em',
})
.append(
$('<span>')
.text('Search results')
.css({ fontWeight: 'bold' })
)
.append(
$('<i>')
.addClass('fas fa-times search-result-close-button')
.css({
cursor: 'pointer',
})
)
);
const $searchResultBody = $('<div>').css({
maxHeight: `calc(100vh - ${
$targetSearchInput.offset().top -
$(window).scrollTop() +
180
}px)`,
overflowY: 'auto',
});
$html.append($searchResultBody);
if (results.length === 0) {
$searchResultBody.append(
$('<p>').text(`No results found for query "${searchQuery}"`)
);
} else {
results.forEach((r) => {
const doc = resultDetails.get(r.ref);
const href =
$searchInput.data('offline-search-base-href') +
r.ref.replace(/^\//, '');
const $entry = $('<div>').addClass('mt-4');
$entry.append(
$('<small>').addClass('d-block text-muted').text(r.ref)
);
$entry.append(
$('<a>')
.addClass('d-block')
.css({
fontSize: '1.2rem',
})
.attr('href', href)
.text(doc.title)
);
$entry.append($('<p>').text(doc.excerpt));
$searchResultBody.append($entry);
});
}
$targetSearchInput.on('shown.bs.popover', () => {
$('.search-result-close-button').on('click', () => {
$targetSearchInput.val('');
$targetSearchInput.trigger('change');
});
});
// Enable inline styles in popover.
const whiteList = $.fn.tooltip.Constructor.Default.whiteList;
whiteList['*'].push('style');
$targetSearchInput
.data('content', $html[0].outerHTML)
.popover({ whiteList: whiteList })
.popover('show');
};
});
})(jQuery);

View File

@ -1,62 +0,0 @@
{{ with .Site.Params.plantuml }}
{{ if .enable }}
(function($) {
function encode64(data) {
r = "";
for (i = 0; i < data.length; i += 3) {
if (i + 2 == data.length) {
r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1), 0);
} else if (i + 1 == data.length) {
r += append3bytes(data.charCodeAt(i), 0, 0);
} else {
r += append3bytes(data.charCodeAt(i), data.charCodeAt(i + 1),
data.charCodeAt(i + 2));
}
}
return r;
}
function append3bytes(b1, b2, b3) {
c1 = b1 >> 2;
c2 = ((b1 & 0x3) << 4) | (b2 >> 4);
c3 = ((b2 & 0xF) << 2) | (b3 >> 6);
c4 = b3 & 0x3F;
r = "";
r += encode6bit(c1 & 0x3F);
r += encode6bit(c2 & 0x3F);
r += encode6bit(c3 & 0x3F);
r += encode6bit(c4 & 0x3F);
return r;
}
function encode6bit(b) {
if (b < 10) {
return String.fromCharCode(48 + b);
}
b -= 10;
if (b < 26) {
return String.fromCharCode(65 + b);
}
b -= 26;
if (b < 26) {
return String.fromCharCode(97 + b);
}
b -= 26;
if (b == 0) {
return '-';
}
if (b == 1) {
return '_';
}
return '?';
}
var needPlantuml = false;
$('.language-plantuml').parent().replaceWith(function() {
let s = unescape(encodeURIComponent($(this).text()));
return $('<img src="{{.svg_image_url | default "http://www.plantuml.com/plantuml/svg/"}}' + encode64(deflate(s, 9)) + '">')
});
})(jQuery);
{{ end }}
{{ end }}

View File

@ -1,43 +0,0 @@
/*
Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function($) {
'use strict';
var Search = {
init: function() {
$(document).ready(function() {
$(document).on('keypress', '.td-search-input', function(e) {
if (e.keyCode !== 13) {
return
}
var query = $(this).val();
var searchPage = "{{ "search/" | absURL }}?q=" + query;
document.location = searchPage;
return false;
});
});
},
};
Search.init();
}(jQuery));

View File

@ -1,18 +0,0 @@
{{- $.Scratch.Add "offline-search-index" slice -}}
{{- range where .Site.AllPages ".Params.exclude_search" "!=" true -}}
{{- /* We have to apply `htmlUnescape` again after `truncate` because `truncate` applies `html.EscapeString` if the argument is not HTML. */ -}}
{{- /* Indvidual taxonomies can be added in the next line by add '"taxonomy-name" (.Params.taxonomy-name | default "")' to the dict (as seen for categories and tags). */ -}}
{{- $.Scratch.Add
"offline-search-index"
(dict
"ref" .RelPermalink
"title" .Title
"categories" (.Params.categories | default "")
"tags" (.Params.tags | default "")
"description" (.Description | default "")
"body" (.Plain | htmlUnescape)
"excerpt" ((.Description | default .Plain) | htmlUnescape | truncate (.Site.Params.offlineSearchSummaryLength | default 70) | htmlUnescape)
)
-}}
{{- end -}}
{{- $.Scratch.Get "offline-search-index" | jsonify -}}

View File

@ -1,20 +0,0 @@
// Style alert boxes.
.alert {
font-weight: $font-weight-medium;
background: $white;
color: inherit;
border-radius: 0;
@each $color, $value in $theme-colors {
&-#{$color} {
& .alert-heading {
color: $value;
}
border-style: solid;
border-color: $value;
border-width: 0 0 0 4px;
}
}
}

View File

@ -1,10 +0,0 @@
// Blog related styles.
.td-blog {
.td-rss-button {
position: absolute;
top: 5.5rem;
right: 1rem;
z-index: 22;
}
}

View File

@ -1,127 +0,0 @@
// Boxes on the home page and similar.
.td-box {}
// box-variant creates the main style for a colored section used on the site.
@mixin box-variant($parent, $color-name, $color-value) {
$text-color: color-yiq($color-value);
$link-color: mix($blue, $text-color, lightness($color-value));
$link-hover-color: rgba($link-color, 0.5) !default;
#{$parent} {
&--#{$color-name} {
color: $text-color;
background-color: #{$color-value};
.td-arrow-down {
&::before {
left: 50%;
margin-left: -30px;
bottom: -25px;
border: {
style: solid;
width: 25px 30px 0 30px;
color: #{$color-value} transparent transparent transparent;
};
z-index: 3;
position: absolute;
content: "";
}
}
}
}
// Improve contrast for the links in paragraphs.
@include link-variant("#{$parent}--#{$color-name} p > a", $link-color, $link-hover-color, false);
@if $enable-gradients {
@include bg-gradient-variant("#{$parent}--1#{$color-name}#{$parent}--gradient", $color-value,true);
}
}
// Common min-height modifiers used for boxes.
@mixin td-box-height-modifiers($parent) {
#{$parent} {
&--height-auto {}
&--height-min {
min-height: 300px;
}
&--height-med {
min-height: 400px;
}
&--height-max {
min-height: 500px;
}
&--height-full {
min-height: 100vh;
}
@include media-breakpoint-up(md) {
&--height-min {
min-height: 450px;
}
&--height-med {
min-height: 500px;
}
&--height-max {
min-height: 650px;
}
}
}
}
@include td-box-height-modifiers(".td-box");
// Styling for section boxes
.td-box {
.row.section {
padding-left: 5vw;
padding-right: 5vw;
flex-direction: column;
> table {
@extend .table-striped;
@extend .table-responsive;
@extend .table;
}
}
.row {
padding-left: 5vw;
padding-right: 5vw;
flex-direction: row;
}
}
// Styling for community page link boxes
.td-box.linkbox {
padding: 5vh 5vw;
}
// This allows "painting by numbers"
@for $i from 1 through length($td-box-colors) {
$c: nth($td-box-colors, $i);
$name: $i - 1;
@include box-variant(".td-box", $name, $c);
}
// Same as above with all the theme color names.
@each $color, $value in $colors {
@include box-variant(".td-box", $color, $value);
}
@each $color, $value in $theme-colors {
@include box-variant(".td-box", $color, $value);
}
@each $color, $value in $grays {
@include box-variant(".td-box", $color, $value);
}

View File

@ -1,11 +0,0 @@
// Breadcrumb
.td-breadcrumbs {
@media print {display: none !important; }
.breadcrumb {
background: inherit;
padding-left: 0;
padding-top: 0;
}
}

View File

@ -1,15 +0,0 @@
// Buttons
@if $enable-rounded {
.btn {
border-radius: 1rem;
&-lg {
border-radius: 2rem;
}
&-sm {
border-radius: 1rem;
}
}
}

View File

@ -1,55 +0,0 @@
// Code formatting.
.td-content {
// Highlighted code.
.highlight {
@extend .card;
margin: 2rem 0;
padding: 0;
pre {
margin: 0;
padding: 1rem;
}
}
// Inline code
p code, li > code, table code {
color: inherit;
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
word-break: normal;
background-color: rgba($black, 0.05);
border-radius: $border-radius;
br {
display: none;
}
}
// Code blocks
pre {
word-wrap: normal;
background-color: $gray-100;
padding: $spacer;
> code {
background-color: inherit !important;
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
border: 0;
}
}
pre.mermaid {
background-color: inherit;
font-size: 0;
}
}

View File

@ -1,41 +0,0 @@
// Add some local palette classes so you can do -bg-warning -text-warning etc. Even -bg-1 if you want to paint by numbers.
@mixin palette-variant($color-name, $color-value) {
$text-color: color-yiq($color-value);
$link-color: mix($blue, $text-color, lightness($color-value));
$link-hover-color: rgba($link-color, .5) !default;
.-bg-#{$color-name} {
color: $text-color;
background-color: $color-value;
}
// Make links in paragraphs stand out more.
@include link-variant(".-bg-#{$color-name} p > a", $link-color, $link-hover-color, false);
.-text-#{$color-name} {
color: $color-value;
}
}
@each $color, $value in $colors {
@include palette-variant($color, $value);
}
@each $color, $value in $theme-colors {
@include palette-variant($color, $value);
}
@each $color, $value in $grays {
@include palette-variant($color, $value);
}
// This allows "painting by numbers", i.e. picking colors by a shortcode Ordinal.
@for $i from 1 through length($td-box-colors) {
$value: nth($td-box-colors, $i);
$name: $i - 1;
$text-color: color-yiq($value);
@include palette-variant($name, $value);
}

View File

@ -1,82 +0,0 @@
//
// Style Markdown content
//
.td-content {
order: 1;
p, li, td {
font-weight: $font-weight-body-text;
}
> h1 {
font-weight: $font-weight-bold;
margin-bottom: 1rem;
}
> h2 {
margin-bottom: 1rem;
}
> h2:not(:first-child) {
margin-top: 3rem;
}
> h2 + h3 {
margin-top: 1rem;
}
> h3, > h4, > h5, > h6 {
margin-bottom: 1rem;
margin-top: 2rem;
}
img {
@extend .img-fluid;
}
> table {
@extend .table-striped;
@extend .table-responsive;
@extend .table;
}
> blockquote {
padding: 0 0 0 1rem;
margin-bottom: $spacer;
color: $gray-600;
border-left: 6px solid $secondary;
}
> ul li, > ol li {
margin-bottom: .25rem;
}
strong {
font-weight: $font-weight-bold;
}
> pre, > .highlight, > .lead, > h1, > h2, > ul, > ol, > p, > blockquote, > dl dd, .footnotes, > .alert {
@extend .td-max-width-on-larger-screens;
}
.alert:not(:first-child) {
margin-top: 2 * $spacer;
margin-bottom: 2 * $spacer;
}
.lead {
margin-bottom: 1.5rem;
}
}
.td-title {
margin-top: 1rem;
margin-bottom: .5rem;
@include media-breakpoint-up(sm) {
font-size: 3rem;
}
}

View File

@ -1,40 +0,0 @@
div.drawio {
display: inline-block;
position: relative;
button {
position: absolute;
font-size: 0.8em;
bottom: 5px;
right: 5px;
background-color: rgba($secondary, .8);
color: $primary-light;
padding: 0.4em 0.5em;
display: none;
}
&:hover button {
display: inline;
}
}
div.drawioframe {
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0px;
z-index: 1000;
background: #000b;
border: 0;
iframe {
position: absolute;
height: 90%;
width: 90%;
top: 5%;
left: 5%;
z-index: 1010;
}
}

View File

@ -1,34 +0,0 @@
// The outer page container i.e. common styles for any page.
.td-outer {
display: flex;
flex-direction: column;
height: 100vh;
}
// The outer page container for the default base template.
.td-default {
main {
> section:first-of-type {
@include media-breakpoint-up(md) {
padding-top: 8rem;
}
}
section {
@extend .td-block-padding;
}
}
}
.td-main {
flex-grow: 1;
main {
@include media-breakpoint-up(md) {
padding-top: 5.5rem;
}
padding-bottom: 2rem;
}
}

View File

@ -1,218 +0,0 @@
//
// Main navbar
//
.td-navbar-cover {
background: $primary;
@include media-breakpoint-up(md) {
background: transparent !important;
.nav-link {
text-shadow: 1px 1px 2px $dark;
}
}
&.navbar-bg-onscroll .nav-link {
text-shadow: none;
}
}
.navbar-bg-onscroll {
background: $primary !important;
opacity: inherit;
}
.td-navbar {
background: $primary;
min-height: 4rem;
margin: 0;
z-index: 32;
@include media-breakpoint-up(md) {
position: fixed;
top: 0;
width: 100%;
}
.navbar-brand {
text-transform: none;
text-align: middle;
.nav-link {
display: inline-block;
margin-right: -30px;
}
svg {
display: inline-block;
margin: 0 10px;
height: 30px;
}
}
.nav-link {
text-transform: none;
font-weight: $font-weight-bold;
}
.td-search-input {
border: none;
color: $navbar-dark-color;
@include placeholder {
color: $navbar-dark-color;
}
}
.dropdown {
min-width: 100px;
}
@include media-breakpoint-down(md) {
padding-right: .5rem;
padding-left: .75rem;
.td-navbar-nav-scroll {
max-width: 100%;
height: 2.5rem;
margin-top: .25rem;
overflow: hidden;
font-size: .875rem;
.nav-link {
padding-right: .25rem;
padding-left: 0;
}
.navbar-nav {
padding-bottom: 2rem;
overflow-x: auto;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
}
}
}
}
// Icons
#main_navbar {
li i {
padding-right: 0.5em;
&:before {
display: inline-block;
text-align: center;
min-width: 1em;
}
}
.alert {
background-color: inherit;
padding:0;
color: $secondary;
border: 0;
font-weight: inherit;
&:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f0d9";
padding-left: 0.5em;
padding-right: 0.5em;
}
}
}
// Foldable sidebar menu
nav.foldable-nav {
&#td-section-nav {
position: relative;
}
&#td-section-nav label {
margin-bottom: 0;
width: 100%;
}
.td-sidebar-nav__section, .with-child ul {
list-style: none;
padding: 0;
margin: 0;
}
.ul-1 > li {
padding-left: 1.5em;
}
ul.foldable {
max-height: 0;
overflow: hidden;
transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
}
input:checked ~ ul.foldable {
max-height: 100000vmax;
transition: max-height 1s ease-in-out;
}
input[type=checkbox] { display: none; }
.with-child, .without-child {
position: relative;
padding-left: 1.5em;
}
.ul-1 .with-child > label:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f0da";
position: absolute;
left: 0.1em;
padding-left: 0.4em;
padding-right: 0.4em;
font-size: 1em;
color: $gray-900;
transition: all 0.5s;
&:hover{
transform: rotate(90deg);
}
}
.ul-1 .with-child > input:checked ~ label:before {
color: $primary;
transform: rotate(90deg);
transition: transform 0.5s;
}
.with-child ul { margin-top: 0.1em; }
}
@media (hover: hover) and (pointer: fine) {
nav.foldable-nav {
.ul-1 .with-child > label:hover:before {
color: $primary;
transform: rotate(30deg);
transition: transform 0.5s;
}
.ul-1 .with-child > input:checked ~ label:hover:before {
color: $primary;
transform: rotate(60deg) !important;
transition: transform 0.5s;
}
}
}

View File

@ -1,18 +0,0 @@
.pageinfo {
font-weight: $font-weight-medium;
background: $gray-100;
color: inherit;
border-radius: 0;
margin: 2rem;
padding: 1.5rem;
padding-bottom: 0.5rem;
@each $color, $value in $theme-colors {
&-#{$color} {
border-style: solid;
border-color: $value;
}
}
}

View File

@ -1,31 +0,0 @@
// Search
.td-search-input {
background: transparent;
max-width: 90%;
&.form-control:focus {
border-color: lighten($primary, 60%);
box-shadow: 0 0 0 2px lighten($primary, 30%);
color: inherit;
}
@if $enable-rounded {
border-radius: 1rem;
}
font-family: "Font Awesome 5 Free", $font-family-base;
}
.popover.offline-search-result {
// Override bootstrap default style (max-width: $popover-max-width;)
max-width: 90%;
.card {
margin-bottom: $spacer * .5;
.card-header {
font-weight: bold;
}
}
}

View File

@ -1,62 +0,0 @@
//
// Right side toc
//
.td-sidebar-toc {
border-left: 1px solid $border-color;
@supports (position: sticky) {
position: sticky;
top: 4rem;
height: calc(100vh - 10rem);
overflow-y: auto;
}
order: 2;
padding-top: 0.75rem;
padding-bottom: 1.5rem;
vertical-align: top;
}
.td-page-meta {
a {
display: block;
font-weight: $font-weight-medium;
}
}
.td-toc {
a {
display: block;
font-weight: $font-weight-light;
padding-bottom: .25rem;
}
li {
list-style: none;
display: block;
}
li li {
margin-left: 0.5rem;
}
#TableOfContents {
// Hugo's ToC is a mouthful, this can be used to style the top level h2 entries.
> ul > li > ul > li > a {}
a {
color: $gray-600;
&:hover {
color: $blue;
text-decoration: none;
}
}
}
ul {
padding-left: 0;
}
}

View File

@ -1,162 +0,0 @@
//
// Left side navigation
//
.td-sidebar-nav {
padding-right: 0.5rem;
margin-right: -15px;
margin-left: -15px;
@include media-breakpoint-up(md) {
@supports (position: sticky) {
max-height: calc(100vh - 10rem);
overflow-y: auto;
}
}
@include media-breakpoint-up(md) {
display: block !important;
}
&__section {
li {
list-style: none;
}
ul {
padding: 0;
margin: 0;
}
@include media-breakpoint-up(md) {
& .ul-1 ul {
padding-left: 1.5em;
}
}
padding-left: 0;
}
&__section-title {
display: block;
font-weight: $font-weight-medium;
.active {
font-weight: $font-weight-bold;
}
a {
color: $gray-900;
}
}
.td-sidebar-link {
display: block;
padding-bottom: 0.375rem;
&__page {
color: $gray-700;
font-weight: $font-weight-light;
}
}
a {
&:hover {
color: $blue;
text-decoration: none;
}
&.active {
font-weight: $font-weight-bold;
}
}
.dropdown {
a {
color: $gray-700;
}
.nav-link {
padding: 0 0 1rem;
}
}
& > .td-sidebar-nav__section {
padding-top: .5rem;
padding-left: 1.5rem;
}
li i { // Layout of icons
padding-right: 0.5em;
&:before{
display: inline-block;
text-align: center;
min-width: 1em;
}
}
.td-sidebar-link.tree-root{
font-weight: $font-weight-bold;
color: $td-sidebar-tree-root-color;
border-bottom: 1px $td-sidebar-tree-root-color solid;
margin-bottom: 1rem;
}
}
.td-sidebar {
@include media-breakpoint-up(md) {
padding-top: 4rem;
background-color: $td-sidebar-bg-color;
padding-right: 1rem;
border-right: 1px solid $td-sidebar-border-color;
}
padding-bottom: 1rem;
&__toggle {
line-height: 1;
color: $gray-900;
margin: 1rem;
}
&__search {
padding: 1rem 15px;
margin-right: -15px;
margin-left: -15px;
}
&__inner {
order: 0;
@include media-breakpoint-up(md) {
@supports (position: sticky) {
position: sticky;
top: 4rem;
z-index: 10;
height: calc(100vh - 6rem);
}
}
@include media-breakpoint-up(xl) {
flex: 0 1 320px;
}
.td-search-box {
width: 100%;
}
}
#content-desktop {display: block;}
#content-mobile {display: none;}
@include media-breakpoint-down(md) {
#content-desktop {display: none;}
#content-mobile {display: block;}
}
}

View File

@ -1,7 +0,0 @@
/*
Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to:
assets/scss/_styles_project.scss
*/

View File

@ -1,332 +0,0 @@
// Taxonomies - e.g. Tags, Categories, ...
.taxonomy-terms-article {
width: 100%;
clear: both;
font-size: 0.8rem;
.taxonomy-title {
display: inline;
font-size: 1.25em;
height: 1em;
line-height: 1em;
margin-right: 0.5em;
padding: 0;
}
}
.taxonomy-terms-cloud {
width: 100%;
clear: both;
font-size: 0.8rem;
.taxonomy-title {
display: inline-block;
width: 100%;
font-size: 1rem;
font-weight: 700;
color: $primary;
border-bottom: 1px $primary solid;
margin-bottom: 1em;
padding-bottom: 0.375rem;
margin-top: 1em;
}
}
.taxonomy-terms-page {
max-width: 800px;
margin: auto;
h1 {
margin-bottom: 1em;
}
.taxonomy-terms-cloud {
font-size: 1em;
li {
display: block;
}
}
.taxo-text-tags {
li + li::before {
content: none;
}
}
.taxo-fruits {
.taxonomy-count,
.taxonomy-label {
display: inherit;
font-size: 1rem;
margin: 0;
padding: 0;
padding-right: 0.5em;
}
.taxonomy-count::before {
content: "(";
}
.taxonomy-count::after {
content: ")";
}
}
}
.taxonomy-terms {
list-style: none;
margin: 0;
overflow: hidden;
padding: 0;
display: inline;
li {
// https://stackoverflow.com/questions/3247358/how-do-i-wrap-text-with-no-whitespace-inside-a-td
display: inline;
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
}
.taxonomy-count {
font-size: 0.8em;
line-height: 1.25em;
display: inline-block;
padding-left: 0.6em;
padding-right: 0.6em;
margin-left: 0.6em;
text-align: center;
border-radius: 1em;
background-color: $white;
}
.taxonomy-term {
background: $gray-200;
border-width: 0;
border-radius: 0 3px 3px 0;
color: $gray-600;
display: inline-block;
font-size: 1em;
line-height: 1.5em;
min-height: 1.5em;
max-width: 100%;
padding: 0 0.5em 0 1em;
position: relative;
margin: 0 0.5em 0.2em 0;
text-decoration: none;
-webkit-transition: color 0.2s;
-webkit-clip-path: polygon(100% 0,100% 100%,0.8em 100%,0 50%,0.8em 0);
clip-path: polygon(100% 0,100% 100%,0.8em 100%,0 50%,0.8em 0);
&:hover {
background-color: $primary;
color: $white;
.taxonomy-count{
color: $dark!important;
}
}
&:hover::before {
background: $primary;
}
}
// Example for simple tags layout
.taxo-text-tags {
.taxonomy-term {
background: none;
border-width: 0;
border-radius: 0;
color: $gray-600;
font-size: 1em;
line-height: 1.5em;
min-height: 1.5em;
max-width: 100%;
padding: 0;
position: relative;
margin: 0;
text-decoration: none;
-webkit-clip-path: none;
clip-path: none;
&:hover {
background: none;
color: $link-color;
.taxonomy-count{
color: $dark!important;
}
}
&:hover::before {
background: none;
}
}
li + li::before {
content: "|";
color: $gray-600;
margin-right: 0.2em;
}
.taxonomy-count {
font-size: 1em;
line-height: 1.25em;
display: inline-block;
padding: 0;
margin: 0;
text-align: center;
border-radius: 0;
background: none;
vertical-align: super;
font-size: 0.75em;
}
.taxonomy-term:hover .taxonomy-count {
color: $link-color !important;
}
}
// Example for icon tags
.taxo-fruits {
.taxonomy-term[data-taxonomy-term]::before {
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
// font-weight: 900;
padding-right: 0.5em;
font-size: 2em;
min-width: 1.5em;
display: inline-block;
}
.taxonomy-term[data-taxonomy-term="apple"]::before {
content: "\f5d1";
color: red;
}
.taxonomy-term[data-taxonomy-term="carrot"]::before {
content: "\f787";
color: orange;
}
.taxonomy-term[data-taxonomy-term="lemon"]::before {
content: "\f094";
color: limegreen;
}
.taxonomy-term[data-taxonomy-term="pepper"]::before {
content: "\f816";
color: darkred;
}
.taxonomy-term {
background: none;
border-width: 0;
border-radius: 0;
color: $gray-600;
font-size: 1em;
line-height: 2.5em;
max-width: 100%;
padding: 0;
position: relative;
margin: 0;
text-decoration: none;
-webkit-clip-path: none;
clip-path: none;
&:hover {
background: none;
color: $link-color;
.taxonomy-count{
color: $dark!important;
}
}
&:hover::before {
background: none;
text-shadow: 0 0 3px $gray-900;
}
}
.taxonomy-count,
.taxonomy-label {
display: none;
}
&.taxonomy-terms-article {
margin-bottom: 1rem;
.taxonomy-title {
display: none;
}
}
}
.taxonomy-taxonomy-page {
max-width: 800px;
margin: auto;
h1 {
margin-bottom: 1em;
}
}
.article-meta {
margin-bottom: 1.5rem;
}
.article-teaser.article-type-docs h3 a:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
content: "\f02d";
padding-right: 0.5em;
}
.article-teaser.article-type-blog h3 a:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
content: "\f781";
padding-right: 0.5em;
}
.all-taxonomy-terms {
font-weight: 500;
line-height: 1.2;
font-size: 1.5rem;
&:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Free";
content: "\f122";
padding-right: 0.5em;
}
}

View File

@ -1,132 +0,0 @@
/*
Bootstrap variables overrides for theme.
See https://github.com/twbs/bootstrap/pull/23260
*/
@fa-font-path : "../webfonts";
// Bootstrap flags. For more, see https://getbootstrap.com/docs/4.0/getting-started/theming/
$enable-gradients: true !default;
$enable-rounded: true !default;
$enable-shadows: true !default;
// Theme flags.
$td-enable-google-fonts: true !default;
// Theme colors
$primary: #30638E !default;
$primary-light: lighten($primary, 75%) !default;
$secondary: #FFA630 !default;
$success: #3772FF !default;
$info: #C0E0DE !default;
$warning: #ED6A5A !default;
$danger: #ED6A5A !default;
$white: #fff !default;
$light: #D3F3EE !default;
$dark: #403F4C !default;
$blue: #72A1E5 !default;
$orange: #BA5A31 !default;
$gray-100: #f8f9fa !default;
$gray-200: #eee !default;
$gray-300: #dee2e6 !default;
$gray-400: #ccc !default;
$gray-500: #adb5bd !default;
$gray-600: #797676 !default;
$gray-700: #495057 !default;
$gray-800: #333 !default;
$gray-900: #222 !default;
$black: #000 !default;
$code-color: darken($secondary, 20%) !default;
// UI element colors
$border-color: $gray-300 !default;
$td-sidebar-tree-root-color: $primary !default;
$td-sidebar-bg-color: rgba($primary, 0.03) !default;
$td-sidebar-border-color: $border-color !default;
// Background colors for the sections on home page etc. It is a paint by number system, starting at 0, where the number is taken from the shortcode's ordinal
// if not provided by the user.
// These colors are all part of the theme palette, but the mix is fairly random to create variation. This can be overridden by the project if needed.
$td-box-colors: $dark, $primary, $secondary, $info, $primary-light, $gray-600, $success, $warning, $dark, $danger, $primary, $secondary, $primary-light, $info !default;
$link-color: darken($blue, 15%) !default;
$link-decoration: none !default;
$link-hover-color: darken($link-color, 15%) !default;
$link-hover-decoration: none !default;
// Fonts
$google_font_name: "Fira Sans" !default;
$google_font_family: "Fira+Sans:300,300i,400,400i,700,700i" !default;
$web-font-path: "https://fonts.googleapis.com/css?family=#{$google_font_family}&display=swap";
$td-fonts-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@if $td-enable-google-fonts {
$td-fonts-serif: prepend($td-fonts-serif, "#{$google_font_name}");
}
$font-family-sans-serif: $td-fonts-serif !default;
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
$font-family-base: $font-family-sans-serif !default;
$font-size-base: 1rem !default;
// Font weights
$font-weight-light: 300 !default;
$font-weight-normal: 400 !default;
$font-weight-medium: 500 !default;
$font-weight-bold: 700 !default;
$font-weight-body-text: $font-weight-normal !default;
$headings-font-weight: $font-weight-medium !default;
// Heading sizes
$h1-font-size: $font-size-base * 2.25 !default;
$h2-font-size: $font-size-base * 2 !default;
$h3-font-size: $font-size-base * 1.5 !default;
$h4-font-size: $font-size-base * 1.35 !default;
$h5-font-size: $font-size-base * 1.15 !default;
$h6-font-size: $font-size-base !default;
// Display styles
$display1-weight: $font-weight-bold !default;
$display2-weight: $font-weight-bold !default;
$display3-weight: $font-weight-bold !default;
$display4-weight: $font-weight-bold !default;
$display1-size: 3rem !default;
$display2-size: 2.5rem !default;
$display3-size: 2rem !default;
$display4-size: 1.75rem !default;
// Space
$spacer: 1rem;
$td-block-space-top-base: 4 * $spacer !default;
$td-block-space-bottom-base: 4 * $spacer !default;
// Pagination
$pagination-color: $gray-600 !default;
$pagination-border-color: rgba($black, 0.1) !default;
$pagination-active-border-color: darken($primary, 5%) !default;
$pagination-disabled-color: $gray-300 !default;
// Navbar
$navbar-dark-color: rgba($white, 0.75) !default;
$navbar-dark-hover-color: rgba($white, 0.5) !default;
$navbar-dark-active-color: $white !default;
$navbar-dark-disabled-color: rgba($white, 0.25) !default;
// The yiq lightness value that determines when the lightness of color changes from "dark" to "light".
$yiq-contrasted-threshold: 200 !default;

View File

@ -1,7 +0,0 @@
/*
Nothing defined here. The Hugo project that uses this theme can override theme variables by adding a file to:
assets/scss/_variables_project.scss
*/

View File

@ -1,7 +0,0 @@
@import "cover";
.td-bg-arrow {
&-wrapper {
position: relative;
}
}

View File

@ -1,24 +0,0 @@
// A cover block is a full size cover with a fixed background for smaller screens.
@include td-box-height-modifiers(".td-cover-block");
.td-cover-logo {
margin-right: 0.5em;
}
.td-cover-block {
position: relative;
padding-top: 5rem;
padding-bottom: 5rem;
background: {
repeat: no-repeat;
position: 50% 0;
size: cover;
};
& > .byline {
position: absolute;
bottom: 2px;
right: 4px;
}
}

View File

@ -1,68 +0,0 @@
@import "support/functions";
@import "variables_project";
@import "variables";
@import "support/mixins";
@import "../vendor/bootstrap/scss/bootstrap";
@import "../vendor/Font-Awesome/scss/fontawesome.scss";
@import "../vendor/Font-Awesome/scss/solid.scss";
@import "../vendor/Font-Awesome/scss/brands.scss";
@import "support/utilities";
@import "colors";
@import "boxes";
@import "blog";
@import "code";
@import "nav";
@import "sidebar-tree";
@import "sidebar-toc";
@import "buttons";
@import "breadcrumb";
@import "alerts";
@import "content";
@import "search";
@import "main-container";
@import "blocks/blocks";
@import "section-index";
@import "pageinfo";
@import "taxonomy";
@import "drawio";
@if $td-enable-google-fonts {
@import url($web-font-path);
}
footer {
min-height: 150px;
@include media-breakpoint-down(md) {
min-height: 200px;
}
}
// Adjust anchors vs the fixed menu.
@include media-breakpoint-up(md) {
.td-offset-anchor:target {
display: block;
position: relative;
top: -4rem;
visibility: hidden;
}
h2[id]:before,
h3[id]:before,
h4[id]:before,
h5[id]:before {
display: block;
content: " ";
margin-top: -5rem;
height: 5rem;
visibility: hidden;
}
}
@import "rtl/main";
@import "styles_project";

View File

@ -1,46 +0,0 @@
body:lang(fa),
body:lang(ar),
body:lang(az),
body:lang(dv),
body:lang(he),
body:lang(ku),
body:lang(ur) {
@import 'spacing';
direction: rtl;
text-align: right;
.dropdown-menu {
text-align: right;
}
.text-right {
text-align: left !important;
}
pre {
text-align: left;
direction: ltr;
}
.td-rss-button {
left: 1rem !important;
right: auto !important;
}
}
body:lang(fa) {
@import url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v27.0.1/dist/font-face.css');
font-family: 'Vazir', "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
body:lang(he) {
@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap');
font-family: 'Rubik', "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
body:lang(ar) {
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700&display=swap');
font-family: 'Tajawal', "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

View File

@ -1,91 +0,0 @@
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@each $prop,
$abbrev in (margin: m, padding: p) {
@each $size,
$length in $spacers {
.#{$abbrev}#{$infix}-#{$size} {
#{$prop}: $length !important;
}
.#{$abbrev}t#{$infix}-#{$size},
.#{$abbrev}y#{$infix}-#{$size} {
#{$prop}-top: $length !important;
}
.#{$abbrev}r#{$infix}-#{$size},
.#{$abbrev}x#{$infix}-#{$size} {
#{$prop}-inline-end: $length !important;
}
.#{$abbrev}b#{$infix}-#{$size},
.#{$abbrev}y#{$infix}-#{$size} {
#{$prop}-bottom: $length !important;
}
.#{$abbrev}l#{$infix}-#{$size},
.#{$abbrev}x#{$infix}-#{$size} {
#{$prop}-inline-start: $length !important;
}
}
}
// Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
@each $size,
$length in $spacers {
@if $size !=0 {
.m#{$infix}-n#{$size} {
margin: -$length !important;
}
.mt#{$infix}-n#{$size},
.my#{$infix}-n#{$size} {
margin-top: -$length !important;
}
.mr#{$infix}-n#{$size},
.mx#{$infix}-n#{$size} {
margin-right: -$length !important;
}
.mb#{$infix}-n#{$size},
.my#{$infix}-n#{$size} {
margin-bottom: -$length !important;
}
.ml#{$infix}-n#{$size},
.mx#{$infix}-n#{$size} {
margin-left: -$length !important;
}
}
}
// Some special margin utils
.m#{$infix}-auto {
margin: auto !important;
}
.mt#{$infix}-auto,
.my#{$infix}-auto {
margin-top: auto !important;
}
.mr#{$infix}-auto,
.mx#{$infix}-auto {
margin-right: auto !important;
}
.mb#{$infix}-auto,
.my#{$infix}-auto {
margin-bottom: auto !important;
}
.ml#{$infix}-auto,
.mx#{$infix}-auto {
margin-left: auto !important;
}
}
}

View File

@ -1,18 +0,0 @@
.section-index {
.entry {
padding: .75rem;
}
h5 {
margin-bottom: 0;
a {
font-weight: 700;
}
}
p {
margin-top: 0;
}
}

View File

@ -1,21 +0,0 @@
// Common functions.
@function prepend($list, $value) {
@return join($value, $list);
}
// See https://www.sitepoint.com/using-sass-build-color-palettes/
@function color-diff($a, $b) {
$sat: saturation($a) - saturation($b);
$lig: lightness($a) - lightness($b);
$fn-sat: if($sat > 0, 'desaturate', 'saturate');
$fn-lig: if($lig > 0, 'darken', 'lighten');
@return (
adjust-hue: -(hue($a) - hue($b)),
#{$fn-sat}: abs($sat),
#{$fn-lig}: abs($lig)
);
}

View File

@ -1,49 +0,0 @@
// Some simple mixins.
@mixin bg-gradient-variant($parent, $color,$ignore-warning: false) {
#{$parent} {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
}
}
@mixin link-variant($parent, $color, $hover-color, $underline: false) {
#{$parent} {
color: $color;
&:hover {
color: $hover-color;
}
@if $underline {
text-decoration: underline;
}
}
}
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
// placeholder allows styling of the placeholder used in search input etc.
@mixin placeholder {
@include optional-at-root("::-webkit-input-placeholder") {
@content;
}
@include optional-at-root(":-moz-placeholder") {
@content;
}
@include optional-at-root("::-moz-placeholder") {
@content;
}
@include optional-at-root(":-ms-input-placeholder") {
@content;
}
}

View File

@ -1,82 +0,0 @@
// Mixins
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
@mixin placeholder {
@include optional-at-root("::-webkit-input-placeholder") {
@content;
}
@include optional-at-root(":-moz-placeholder") {
@content;
}
@include optional-at-root("::-moz-placeholder") {
@content;
}
@include optional-at-root(":-ms-input-placeholder") {
@content;
}
}
// Common util classes.
.td-border-top {
border: none;
border-top: 1px solid #eee;
}
.td-border-none {
border: none;
}
.td-block-padding {
padding-top: $td-block-space-top-base ;
padding-bottom: $td-block-space-bottom-base;
@include media-breakpoint-up(md) {
padding-top: $td-block-space-top-base * 1.25;
padding-bottom: $td-block-space-bottom-base * 1.25;
}
}
.td-overlay {
position: relative;
&::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
&--dark::after {
background-color: rgba($dark, 0.3);
}
&--light::after {
background-color: rgba($light, 0.3);
}
&__inner {
position: relative;
z-index: 1;
}
}
.td-max-width-on-larger-screens {
@include media-breakpoint-up(lg) {
max-width: 80%;
}
}

View File

@ -1,16 +0,0 @@
---
title: "Long Page Title"
linkTitle: "Short Nav Title"
weight: 100
description: >-
Page description for heading and indexes.
---
## Heading
Edit this template to create your new page.
* Give it a good name, ending in `.md` - e.g. `getting-started.md`
* Edit the "front matter" section at the top of the page (weight controls how its ordered amongst other pages in the same directory; lowest number first).
* Add a good commit message at the bottom of the page (<80 characters; use the extended description field for more detail).
* Create a new branch so you can preview your new file and request a review via Pull Request.

View File

@ -1,36 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
What happened? What are you seeing? How did you arrive here?
**To Reproduce**
Insert a URL to your test case - use codepen.io, jsfiddle.net, jsbin.com, codesandbox.io, or whatever.
Describe any details about the test case that we need to know like "whatever you do, don't click the red button."
**Expected behavior**
How would you like this to work instead?
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Version and implementation**
Version: <!--- Give us the version number here -->
Browser and version: <!--- If applicable give us the browser specs -->
- [ ] SVG with JS
- [ ] Web Fonts with CSS
- [ ] SVG Sprites
- [ ] On the Desktop
**Bug report checklist**
- [ ] I have filled out as much of the above information as I can
- [ ] I have included a test case because my odds go _way_ up that the team can fix this when I do
- [ ] I have [searched for existing issues](https://github.com/FortAwesome/Font-Awesome/issues) and to the best of my knowledge this is not a duplicate

View File

@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
**Feature request checklist**
- [ ] This is a single feature (i.e. not a re-write of all of Font Awesome)
- [ ] The title starts with "Feature request: " and is followed by a clear feature name (Ex: `Feature request: moar cowbell`)
- [ ] I have [searched for existing issues](https://github.com/FortAwesome/Font-Awesome-Pro/issues) and to the best of my knowledge this is not a duplicate

View File

@ -1,21 +0,0 @@
---
name: Icon request
about: Suggest an icon to be included in Font Awesome
title: ''
labels: ''
assignees: ''
---
**What can it be used for?**
Describe how this could be used / the use case for this icon.
**Example image (optional)**
Insert the example image here if necessary.
**Icon request checklist**
- [ ] This is a single icon or matched pair (Ex: `lock` / `unlock`)
- [ ] The title starts with "Icon request: " and is followed by the requested icon name (Ex: `Icon request: magical-unicorn`)
- [ ] I have [searched for existing issues](https://github.com/FortAwesome/Font-Awesome/issues) and to the best of my knowledge this is not a duplicate
- [ ] I have included at least one example image if it could be helpful (optional)
- [ ] The request is for a concrete object (it's harder to make an icon to represent happiness, it's easier to make a smiley face. ☺)

View File

@ -1,6 +0,0 @@
<!--- WARNING Pull Requests made to this repository cannot be merged -->
I understand that:
- [ ] I'm submitting this PR for reference only. It shows an example of what I'd like to see changed but
I understand that it will not be merged and I will not be listed as a contributor on this project.

File diff suppressed because it is too large Load Diff

View File

@ -1,74 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <hello@fontawesome.com>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [https://contributor-covenant.org/version/1/4][version]
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/

View File

@ -1,25 +0,0 @@
# Contributing to Font Awesome
Looking to contribute something to Font Awesome? **Here's how you can help.**
## Quick start
We only accept issues that are icon requests, bug reports, or feature requests.
Bugs must be isolated and reproducible problems that we can fix within the Font
Awesome core.
* [Request a new icon](https://github.com/FortAwesome/Font-Awesome/issues/new?title=Icon%20request:%20icon-name&template=icon-request.md)
* [Request a new feature](https://github.com/FortAwesome/Font-Awesome/issues/new??title=Feature%20request:feature-name&template=feature-request.md)
* [Submit a bug report](https://github.com/FortAwesome/Font-Awesome/issues/new?template=bug-report.md)
## Key branches
- `master` is the latest, deployed version
## Pull requests
- At the moment we are not accepting pull requests containing icons
- Pull requests that do not solve an existing issue are essentially un-prioritizeddon't expect these to be addressed quickly
- The files in this repository are generated elsewhere and we do not merge PR's directly into master
- Try not to pollute your pull request with unintended changeskeep them simple and small
- Try to share which browsers your code has been tested in before submitting a pull request

View File

@ -1,34 +0,0 @@
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**

View File

@ -1,138 +0,0 @@
<h1><img src="https://img.fortawesome.com/349cfdf6/logo-fa-free.svg" alt="Font Awesome 5 Free" width="50%"></h1>
> Version 5 the iconic SVG, font, and CSS framework
The internet's most popular icon toolkit has been redesigned and built from
scratch. On top of this, features like icon font ligatures, an SVG framework,
official NPM packages for popular frontend libraries like React, and access to
a new CDN.
Not familiar with Font Awesome 5? [Learn
more](https://www.kickstarter.com/projects/232193852/font-awesome-5) about our
successful Kickstarter and plan. You can also **[order Font Awesome
Pro](https://fontawesome.com/pro)** which includes tons more icons directly
from [fontawesome.com](https://fontawesome.com).
## Documentation
Learn how to get started with Font Awesome and then dive deeper into other and advanced topics:
### Using Font Awesome on the Web
* [With SVG with JavaScript](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=svg-with-js)
* [With web fonts with CSS](https://fontawesome.com/how-to-use/on-the-web/setup/getting-started?using=web-fonts-with-css)
* [Upgrading from version 4](https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4)
* [Installing Font Awesome with a package manager](https://fontawesome.com/how-to-use/on-the-web/setup/using-package-managers)
* [Downloading + hosting Font Awesome yourself](https://fontawesome.com/how-to-use/on-the-web/setup/hosting-font-awesome-yourself)
* [Performance and security](https://fontawesome.com/how-to-use/performance-and-security)
* [Accessibility](https://fontawesome.com/how-to-use/on-the-web/other-topics/accessibility)
* [Troubleshooting](https://fontawesome.com/how-to-use/on-the-web/other-topics/troubleshooting)
#### Advanced Options & Techniques
* [Using CSS pseudo-elements](https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements)
* [SVG sprites](https://fontawesome.com/how-to-use/svg-sprites)
* [The Font Awesome API](https://fontawesome.com/how-to-use/font-awesome-api)
* [SVG symbols](https://fontawesome.com/how-to-use/on-the-web/advanced/svg-symbols)
* [SVG JavaScript Core](https://fontawesome.com/how-to-use/on-the-web/advanced/svg-javascript-core)
* [Server side rendering](https://fontawesome.com/how-to-use/server-side-rendering)
### Using Font Awesome on the Desktop
* [Getting started](https://fontawesome.com/how-to-use/on-the-desktop/setup/getting-started)
* [Upgrading from version 4](https://fontawesome.com/how-to-use/on-the-desktop/setup/upgrading-from-version-4)
* [Using ligatures](https://fontawesome.com/how-to-use/on-the-desktop/referencing-icons/using-ligatures)
* [Using glyphs](https://fontawesome.com/how-to-use/on-the-desktop/referencing-icons/using-glyphs)
* [Troubleshooting](https://fontawesome.com/how-to-use/on-the-desktop/other-topics/troubleshooting)
### Where did Font Awesome 4 (or 3) go?
Now that Font Awesome 5 has been released we are marking version 4 as
end-of-life. We don't plan on releasing any further versions of the 4.x or 3.x.
Documentation is still available but it's moved to
[https://fontawesome.com/v4.7.0](https://fontawesome.com/v4.7.0) and
[https://fontawesome.com/v3.2.1](https://fontawesome.com/v3.2.1).
The Git repository for
[v4.7.0](https://github.com/FortAwesome/Font-Awesome/releases/tag/v4.7.0) and
[v3.2.1](https://github.com/FortAwesome/Font-Awesome/releases/tag/v3.2.1) can
be found in our GitHub releases.
## Change log
We'll keep track of each release in the [CHANGELOG.md](./CHANGELOG.md)
Looking for older versions of Font Awesome? Check the [releases](https://github.com/FortAwesome/Font-Awesome/releases).
## Upgrading
From time-to-time we'll have special upgrading instructions from one version to the next.
Check out the [UPGRADING.md](./UPGRADING.md) guide when you upgrade your dependencies.
## Code of conduct
We will behave ourselves if you behave yourselves. For more details see our
[CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
## Contributing
Please read through our [contributing guidelines](./CONTRIBUTING.md). Included
are directions for opening issues.
## Versioning
Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered
with the following format:
`<major>.<minor>.<patch>`
For more information on SemVer, please visit http://semver.org.
**The major version "5" is part of an umbrella release. It includes many different types of files and technologies. Therefore
we deviate from normal SemVer in the following ways:**
* Any release may update the design, look-and-feel, or branding of an existing
icon
* We will never intentionally release a `patch` version update that breaks
backward compatibility
* A `minor` release **may include backward-incompatible changes** but we will
write clear upgrading instructions in UPGRADING.md
* A `minor` or `patch` release will never remove icons
* Bug fixes will be addressed as `patch` releases unless they include backward
incompatibility then they will be `minor` releases
## License
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
- Icons — CC BY 4.0 License
- In the Font Awesome Free download, the CC BY 4.0 license applies to all icons packaged as .svg and .js files types.
- Fonts — SIL OFL 1.1 License
- In the Font Awesome Free download, the SIL OLF license applies to all icons packaged as web and desktop font files.
- Code — MIT License
- In the Font Awesome Free download, the MIT license applies to all non-font and non-icon files.
Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
## Team
* [Dave Gandy](https://github.com/davegandy)
* [Travis Chase](https://github.com/supercodepoet)
* [Rob Madole](https://github.com/robmadole)
* [Brian Talbot](https://github.com/talbs)
* [Jory Raphael](https://github.com/sensibleworld)
* [Mike Wilkerson](https://github.com/mlwilkerson)
* [Trevor Chase](https://github.com/trevorchase)
* [Jason Lundien](https://github.com/jasonlundien)
* [Jason Otero](https://github.com/deathnfudge)
* [Edward Emanuel](https://github.com/ej2)
* [Geremia Taglialatela](https://github.com/tagliala)

View File

@ -1,625 +0,0 @@
# Upgrading Guide
See the [CHANGELOG.md](./CHANGELOG.md) for detailed information about what has changed between versions.
This guide is useful to figure out what you need to do between breaking changes.
As always, [submit issues](https://github.com/FortAwesome/Font-Awesome/issues/new) that you run into with this guide or with these upgrades to us.
---
## 5.15.3 to 5.15.4
The tripadvisor brand icon has been removed by legal request of Tripadvisor.
---
## 5.15.2 to 5.15.3
There are no breaking changes in this version upgrade.
---
## 5.15.1 to 5.15.2
There are no breaking changes in this version upgrade.
---
## 5.15.0 to 5.15.1
There are no breaking changes in this version upgrade.
---
## 5.14.0 to 5.15.0
The adobe icon has been removed by legal request of Adobe.
Font Awesome is no longer able to provide any logos or marks for the Adobe
brand or their products.
---
## 5.12.x/5.13.x to 5.14.0
In version 5.12.0 and 5.13.0 some of the icons were assigned unicode values
that were outside the Private Unicode Area (PUA). This caused problems with
some desktop software and caused the icons to show up as Chinese, Japanese, or
Korean (CJK) ideographs.
The unicode values have been re-assigned to values within the PUA range.
If you were using any of the following icons with pseudo-elements you will need
to change the CSS `content` value to the new unicode value.
| Icon name | Old | New |
| ---------------------- | ---- | ---- |
| bacteria | f959 | e059 |
| bacterium | f95a | e05a |
| box-tissue | f95b | e05b |
| caravan-alt | f900 | e000 |
| cat-space | f901 | e001 |
| coffee-pot | f902 | e002 |
| coffin-cross | f951 | e051 |
| comet | f903 | e003 |
| dailymotion | f952 | e052 |
| deezer | f977 | e077 |
| edge-legacy | f978 | e078 |
| fan-table | f904 | e004 |
| faucet | f905 | e005 |
| faucet-drip | f906 | e006 |
| firefox-browser | f907 | e007 |
| folder-download | f953 | e053 |
| folder-upload | f954 | e054 |
| galaxy | f908 | e008 |
| garage | f909 | e009 |
| garage-car | f90a | e00a |
| garage-open | f90b | e00b |
| google-pay | f979 | e079 |
| hand-holding-medical | f95c | e05c |
| hand-sparkles | f95d | e05d |
| hands-wash | f95e | e05e |
| handshake-alt-slash | f95f | e05f |
| handshake-slash | f960 | e060 |
| head-side-cough | f961 | e061 |
| head-side-cough-slash | f962 | e062 |
| head-side-mask | f963 | e063 |
| head-side-virus | f964 | e064 |
| heat | f90c | e00c |
| house | f90d | e00d |
| house-day | f90e | e00e |
| house-leave | f90f | e00f |
| house-night | f910 | e010 |
| house-return | f911 | e011 |
| house-signal | f912 | e012 |
| house-user | f965 | e065 |
| ideal | f913 | e013 |
| instagram-square | f955 | e055 |
| lamp-desk | f914 | e014 |
| lamp-floor | f915 | e015 |
| laptop-house | f966 | e066 |
| light-ceiling | f916 | e016 |
| light-switch | f917 | e017 |
| light-switch-off | f918 | e018 |
| light-switch-on | f919 | e019 |
| lungs-virus | f967 | e067 |
| microblog | f91a | e01a |
| microwave | f91b | e01b |
| mixer | f956 | e056 |
| outlet | f91c | e01c |
| oven | f91d | e01d |
| people-arrows | f968 | e068 |
| pied-piper-square | f91e | e01e |
| plane-slash | f969 | e069 |
| planet-moon | f91f | e01f |
| planet-ringed | f920 | e020 |
| police-box | f921 | e021 |
| portal-enter | f922 | e022 |
| portal-exit | f923 | e023 |
| pump-medical | f96a | e06a |
| pump-soap | f96b | e06b |
| radar | f924 | e024 |
| raygun | f925 | e025 |
| refrigerator | f926 | e026 |
| rocket-launch | f927 | e027 |
| rust | f97a | e07a |
| sensor | f928 | e028 |
| sensor-alert | f929 | e029 |
| sensor-fire | f92a | e02a |
| sensor-on | f92b | e02b |
| sensor-smoke | f92c | e02c |
| shield-virus | f96c | e06c |
| shopify | f957 | e057 |
| sink | f96d | e06d |
| siren | f92d | e02d |
| siren-on | f92e | e02e |
| soap | f96e | e06e |
| solar-system | f92f | e02f |
| sort-circle | f930 | e030 |
| sort-circle-down | f931 | e031 |
| sort-circle-up | f932 | e032 |
| space-station-moon | f933 | e033 |
| space-station-moon-alt | f934 | e034 |
| sprinkler | f935 | e035 |
| star-shooting | f936 | e036 |
| starfighter | f937 | e037 |
| starfighter-alt | f938 | e038 |
| starship | f939 | e039 |
| starship-freighter | f93a | e03a |
| stopwatch-20 | f96f | e06f |
| store-alt-slash | f970 | e070 |
| store-slash | f971 | e071 |
| sword-laser | f93b | e03b |
| sword-laser-alt | f93c | e03c |
| swords-laser | f93d | e03d |
| telescope | f93e | e03e |
| temperature-down | f93f | e03f |
| temperature-up | f940 | e040 |
| tiktok | f97b | e07b |
| toilet-paper-slash | f972 | e072 |
| trailer | f941 | e041 |
| transporter | f942 | e042 |
| transporter-1 | f943 | e043 |
| transporter-2 | f944 | e044 |
| transporter-3 | f945 | e045 |
| transporter-empty | f946 | e046 |
| ufo | f947 | e047 |
| ufo-beam | f948 | e048 |
| unity | f949 | e049 |
| unsplash | f97c | e07c |
| user-alien | f94a | e04a |
| user-robot | f94b | e04b |
| user-unlock | f958 | e058 |
| user-visor | f94c | e04c |
| users-slash | f973 | e073 |
| vacuum | f94d | e04d |
| vacuum-robot | f94e | e04e |
| virus | f974 | e074 |
| virus-slash | f975 | e075 |
| viruses | f976 | e076 |
| window-frame | f94f | e04f |
| window-frame-open | f950 | e050 |
---
## 5.13.0 to 5.13.1
There are no breaking changes in this version upgrade.
---
## 5.12.1 to 5.13.0
There are no breaking changes in this version upgrade.
---
## 5.12.0 to 5.12.1
There are no breaking changes in this version upgrade.
---
## 5.11.2 to 5.12.0
The 9-pointed icon named "haykal" was renamed to "bahai" to better match the
symbol. If you were previously using the misnamed icon rename to "bahai" when
upgrading.
---
## 5.11.1 to 5.11.2
The scanner-image icon was previously using the same unicode value as the scanner icon.
This has now been fixed and the scanner-image icon has a unique unicode value.
The film-canister icon was misspelled as "film-cannister". This has been fixed.
---
## 5.11.0 to 5.11.1
There are no breaking changes in this version upgrade.
---
## 5.10.2 to 5.11.0
There are no breaking changes in this version upgrade.
---
## 5.10.1 to 5.10.2
There are no breaking changes in this version upgrade.
---
## 5.10.0 to 5.10.1
The Sass function `fa-content-secondary` which was part of the `duotone.scss`
file has been removed due to its inconsistent behavior in different versions of
Sass pre-processors. Specifically [`node-sass`](https://github.com/sass/node-sass) and
[`sass`](https://github.com/sass/dart-sass) didn't produce the same output.
---
## 5.9.0 to 5.10.0
The following icon shims have been changed to better match the original version 4 icon:
* sort-alpha-desc
* sort-amount-desc
* sort-numeric-desc
---
## 5.8.2 to 5.9.0
The nintendo-switch icon has been removed by legal request of Nintendo of America Inc.
Font Awesome is no longer able to provide icons related to Nintendo, their
gaming consoles, accessories, or games.
---
## 5.8.1 to 5.8.2
There are no breaking changes in this version upgrade.
---
## 5.8.0 to 5.8.1
There are no breaking changes in this version upgrade.
---
## 5.7.x to 5.8.0
### Removing title elements from SVG sprites
Since the initial release of version 5, all the way back to 5.0.0 actually,
we've included `<title>` elements in the SVG sprites.
In https://github.com/FortAwesome/Font-Awesome/issues/14595 a discussion
outlines that this practice actually prevents normal efforts to make these
sprites accessible according to web accessibility standards.
If you are using sprites please refer to [our documentation on accessibility with Font Awesome](https://fontawesome.com/how-to-use/on-the-web/other-topics/accessibility).
### Removing vertical-align from the .fa-icon Sass mixin
Font Awesome has supported Sass and Less CSS pre-processors for a long time.
The version 5 `.fa-icon` mixin which is present in `scss/_mixins.scss`
previously included `vertical-align` which was incorrectly shifting icons.
If you have used this mixin in your own Sass files you will need to check the
alignment of those icons after upgrading to 5.8.0.
---
## 5.7.1 to 5.7.2
There are no breaking changes in this version upgrade.
---
## 5.7.0 to 5.7.1
The cheeseburger icon incorrectly placed the cheese _under_ the patty. This is unacceptable and we've fixed it.
---
## 5.6.x to 5.7.0
### OTF and TTF files
The PostScript name has been changed from `FontAwesome5ProSolid` to `FontAwesome5Pro-Solid`. This was done to be more compatible with tooling such as XCode.
We've also update the `Version` specifier. Font files only support a MAJOR and MINOR version number so we have modifed our schema. For example, version 5.7.0 of Font Awesome is reflected as 329.472 in the individual font files.
### Icon changes
The calendar-alt icon has been reverted back to the previous design in versions <= 5.6.0.
---
## 5.6.x to 5.6.3
The fire icon has been reverted back to the previous design in versions <= 5.5.0.
We have moved the redesigned icon to fire-alt.
---
## 5.6.0 to 5.6.1
There are no breaking changes in this version upgrade.
---
## 5.5.0 to 5.6.0
In this release we've taken time to re-organize the directory structure to
prevent redundancy and improve findability.
### Directory structure changes
| Old path | New path |
|-----------------------------------|-------------|
| advanced-options/metadata | metadata |
| advanced-options/raw-svg | svgs |
| advanced-options/svg-sprites | sprites |
| advanced-options/use-with-node-js | js-packages |
| svg-with-js/js | js |
| svg-with-js/css | css |
| use-on-desktop | otfs |
| web-fonts-with-css/css | css |
| web-fonts-with-css/less | less |
| web-fonts-with-css/scss | scss |
| web-fonts-with-css/webfonts | webfonts |
---
## 5.4.x to 5.5.0
There are no breaking changes in this version upgrade.
---
## 5.4.0 to 5.4.1
Categories were renamed from:
* Holiday to Halloween
* Seasonal to Autumn
The "wand" icon in version 5.4.0 matched the "wand-magic" icon. The magical
sparkles have been removed for "wand". If you were relying on this decoration
in your design switch to "wand-magic" to bring the magic back.
---
## 5.3.x to 5.4.0
There are no breaking changes in this version upgrade.
---
## 5.3.0 to 5.3.1
The following Pro-only icons were removed from Font Awesome Free as of 5.3.1:
* abacus
* calculator-alt
* empty-set
* function
* integral
* intersection
* lambda
* omega
* pi
* sigma
* signal-alt
* signal-alt-slash
* signal-slash
* square-root
* tally
* theta
* tilde
* union
* value-absolute
* volume
* volume-down
* volume-slash
* wifi-slash
These icons were unintentionally included in 5.3.0.
---
## 5.x.x to 5.3.0
Sass mixin syntax has been updated to address a bug.
Use `@extend %fa-icon` to correctly maintain CSS order in output files.
~~Old way:~~
```
.twitter {
@include fa-icon; /* incorrect */
@extend .fab;
&:before {
content: fa-content($fa-var-twitter);
}
}
```
New way:
```
.twitter {
@extend %fa-icon; /* correct */
@extend .fab;
&:before {
content: fa-content($fa-var-twitter);
}
}
```
---
## 5.1.x to 5.2.x
There are no breaking changes in this version upgrade.
---
## 5.1.0 to 5.1.1
Less and Sass files incorrectly contained the "fa-" prefix for style files.
These files have been renamed to be consistent with other files in the
packages.
If you are using the Less or Sass file styles individually you will need to
correct the names in your builds.
| Old filename | New filename |
| --------------------------- | ------------------------ |
| less/fa-solid.less | less/solid.less |
| less/fa-regular.less | less/regular.less |
| less/fa-light.less | less/light.less |
| less/fa-brands.less | less/brands.less |
| scss/fa-solid.scss | scss/solid.scss |
| scss/fa-regular.scss | scss/regular.scss |
| scss/fa-light.scss | scss/light.scss |
| scss/fa-brands.scss | scss/brands.scss |
---
## 5.0.x to 5.1.0
### New packages available for browser-only integration
**If you were previously using @fortawesome/fontawesome you need to switch to one of the new packages.**
Our Free and Pro CDN provide access to JS, CSS, sprites, and separate SVG files.
We've now made these files conveniently available through NPM.
* [@fortawesome/fontawesome-free](https://www.npmjs.com/package/@fortawesome/fontawesome-free)
* @fortawesome/fontawesome-pro (private package, requires Pro subscription)
If you are familiar with the paths and options available with the CDN these
packages should be familiar.
Information about [Font Awesome Pro subscriptions](https://fontawesome.com/pro)
can be found in your [Font Awesome awesome
account](https://fontawesome.com/account/services).
### Renamed packages
The following packages have been renamed as part of 5.1.0 of Font Awesome.
_All packages are in the [@fortawesome NPM scope](https://www.npmjs.com/search?q=scope:fortawesome&ranking=optimal)_
| Old package(1) | New package |
|---------------------------|------------------------|
| fontawesome-free-webfonts | fontawesome-free |
| fontawesome-pro-webfonts | fontawesome-pro |
| fontawesome-free-solid   | free-solid-svg-icons |
| fontawesome-free-regular | free-regular-svg-icons |
| fontawesome-free-brands   | free-brands-svg-icons |
| fontawesome-pro-solid   | pro-solid-svg-icons |
| fontawesome-pro-regular   | pro-regular-svg-icons |
| fontawesome-pro-light   | pro-light-svg-icons |
(1) Old packages have now been deprecated. They are still available but will only receive high priority patch release fixes.
**You'll need to update your package.json file with the renamed packages and new versions.**
### No more default imports
Recently we spent a good deal of time supporting TypeScript to enable us to
create the Angular Font Awesome component. During that adventure we
[were](https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html)
[convinced](https://blog.neufund.org/why-we-have-banned-default-exports-and-you-should-do-the-same-d51fdc2cf2ad)
that we were going to remove default exports from all of our components,
libraries, and packages. This is complete with the umbrella release of `5.1.0` of Font Awesome.
What does that mean?
~~Old way:~~
```javascript
import fontawesome from '@fortawesome/fontawesome'
import solid from '@fortawesome/fontawesome-free-solid'
import faTwitter from '@fortawesome/fontawesome-free-brands/faTwitter'
import FontAwesomeIcon from '@fortawesome/vue-fontawesome'
library.add(solid, faTwitter)
```
New way:
```javascript
import { library, dom } from '@fortawesome/fontawesome-svg-core'
import { fas } from '@fortawesome/free-solid-svg-icons'
import { faTwitter } from '@fortawesome/free-brands-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
library.add(fas, faTwitter)
// Kicks off the process of finding <i> tags and replacing with <svg>
dom.watch()
```
This is also a valid way to import icons that works if your tool does not support tree shaking:
```javascript
import { faTwitter } from '@fortawesome/free-brands-svg-icons/faTwitter'
```
### Improved support for tree shaking
Tree shaking is now functional by default and no additional configuration is required to make it work.
The `shakable.es.js` module has been removed and is no longer needed.
If you've previously configured tree shaking by modifying your webpack or rollup you can safely remove these.
**We recommend that you check your bundle size after upgrading an ensure that file sizes are as you would expect.**
```javascript
module.exports = {
// ...
resolve: {
alias: {
'@fortawesome/fontawesome-free-solid$': '@fortawesome/fontawesome-free-solid/shakable.es.js'
}
}
}
```
```javascript
const alias = require('rollup-plugin-alias')
rollup({
// ...
plugins: [
alias({
'@fortawesome/fontawesome-free-solid': 'node_modules/@fortawesome/fontawesome-free-solid/shakable.es.js'
})
]
})
```
---
## 5.0.11 to 5.0.12
Due to a collision with the "r" glyph the R Project brand icon has been renamed to `r-project`.
---
## 5.0.x to 5.0.6
### SVG Attribute was changed from data-fa-processed to data-fa-i2svg
As part of a bug fix for the release of 5.0.6 we renamed an attribute that was found on `<svg>` elements from
`data-fa-processed` to `data-fa-i2svg`. We feel this more accurately reflects the intent and purpose.
This attribute is added to any icon that has been generated using `fontawesome.dom.i2svg()`.
Be aware that `data-fa-i2svg` (or `data-fa-processed`) will no longer be present on icons that are created using
`fontawesome.icon()`.
If you've written and DOM queries that rely on `data-fa-processed` you should get things working again by doing a
simple find and replace.

View File

@ -1,47 +0,0 @@
{
"name": "fortawesome/font-awesome",
"description": "The iconic font, CSS, and SVG framework",
"keywords": ["font", "awesome", "fontawesome", "icon", "svg", "font", "bootstrap"],
"homepage": "https://fontawesome.com",
"authors": [
{
"name": "Travis Chase",
"homepage": "http://twitter.com/supercodepoet"
},
{
"name": "Dave Gandy",
"homepage": "http://twitter.com/davegandy"
},
{
"name": "Rob Madole",
"homepage": "http://twitter.com/robmadole"
},
{
"name": "Jory Raphael",
"homepage": "http://twitter.com/sensibleworld"
},
{
"name": "Geremia Taglialatela",
"homepage": "http://twitter.com/gtagliala"
},
{
"name": "Brian Talbot",
"homepage": "http://twitter.com/talbs"
},
{
"name": "Mike Wilkerson",
"homepage": "http://twitter.com/mw77"
}
],
"support": {
"email": "hello@fontawesome.com",
"issues": "https://github.com/FortAwesome/Font-Awesome/issues",
"source": "https://github.com/FortAwesome/Font-Awesome",
"docs": "http://fontawesome.com/how-to-use"
},
"license": [
"CC-BY-4.0",
"OFL-1.1",
"MIT"
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
/*!
* Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: 400;
font-display: block;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
.fab {
font-family: 'Font Awesome 5 Brands';
font-weight: 400; }

Some files were not shown because too many files have changed in this diff Show More