From 5fc58271c1ce1f4d351895ad8b480d25788a2437 Mon Sep 17 00:00:00 2001 From: Pete Lumbis Date: Fri, 10 Feb 2023 15:11:29 -0500 Subject: [PATCH] Fix broken links and enable Github action link checker (#344) Resolves https://github.com/crossplane/docs/issues/333 Resolves https://github.com/crossplane/docs/issues/340 --- .github/workflows/link-checker.yml | 32 +++++++++++++++++++ content/contribute/contribute.md | 2 +- content/contribute/features.md | 6 ++-- content/knowledge-base/guides/multi-tenant.md | 2 +- content/master/concepts/managed-resources.md | 16 +++------- content/master/concepts/packages.md | 3 +- content/master/concepts/providers.md | 5 ++- .../master/getting-started/introduction.md | 8 ++--- content/v1.10/concepts/packages.md | 3 +- content/v1.10/contributing/docs.md | 2 +- content/v1.10/contributing/release-process.md | 9 ++++-- .../getting-started/create-configuration.md | 4 +-- content/v1.10/guides/multi-tenant.md | 2 +- content/v1.11/concepts/managed-resources.md | 16 +++------- content/v1.11/concepts/packages.md | 3 +- content/v1.11/concepts/providers.md | 3 +- content/v1.11/getting-started/introduction.md | 8 ++--- content/v1.9/contributing/release-process.md | 9 ++++-- .../getting-started/create-configuration.md | 4 +-- content/v1.9/guides/multi-tenant.md | 2 +- .../layouts/partials/feature-state-alert.html | 2 +- .../partials/sidebar/contributing-guide.html | 2 +- .../partials/sidebar/knowledge-base.html | 2 +- .../layouts/partials/sidebar/user-docs.html | 2 +- .../layouts/partials/stylesheet-cached.html | 2 +- utils/htmltest/.htmltest.yml | 7 ++++ 26 files changed, 94 insertions(+), 62 deletions(-) create mode 100644 .github/workflows/link-checker.yml create mode 100644 utils/htmltest/.htmltest.yml diff --git a/.github/workflows/link-checker.yml b/.github/workflows/link-checker.yml new file mode 100644 index 00000000..7967e6ad --- /dev/null +++ b/.github/workflows/link-checker.yml @@ -0,0 +1,32 @@ +name: Run htmltest and validate links + +on: + pull_request: + paths: + - 'content/**' + - 'themes/**' + + # Allows manual workflow run (must in default branch to work) + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the docs repo + uses: actions/checkout@v3 + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.109.0' + extended: true + + - name: Build + # Set to env=dev so SCSS isn't required. + run: hugo --environment development + + - name: Run htmltest + uses: wjdp/htmltest-action@master + with: + config: ./utils/htmltest/.htmltest.yml diff --git a/content/contribute/contribute.md b/content/contribute/contribute.md index 74d794db..c765a6cd 100644 --- a/content/contribute/contribute.md +++ b/content/contribute/contribute.md @@ -31,7 +31,7 @@ the Crossplane docs CSS. Extract and run Hugo with `hugo server`. Hugo builds the website and launch a local web server on -[http://localhost:1313](http://localhost:1313). +http://localhost:1313. Any changes made are instantly reflected on the local web server. You don't need to restart Hugo. diff --git a/content/contribute/features.md b/content/contribute/features.md index af19d22f..bf11eda6 100644 --- a/content/contribute/features.md +++ b/content/contribute/features.md @@ -28,9 +28,9 @@ Commonmark and `GFM` are extensions to the The docs support standard Markdown for images, links and tables, Crossplane recommend using the custom shortcodes to provide a better experience for readers. -* [Images]({{< ref "#Images">}}) -* [Links]({{< ref "#Links">}}) -* [Tables]({{< ref "#Tables" >}}) +* [Images]({{< ref "#images">}}) +* [Links]({{< ref "#links">}}) +* [Tables]({{< ref "#tables" >}}) ## Hide long outputs Some outputs may be verbose or only relevant for diff --git a/content/knowledge-base/guides/multi-tenant.md b/content/knowledge-base/guides/multi-tenant.md index 98d2b200..a4d27484 100644 --- a/content/knowledge-base/guides/multi-tenant.md +++ b/content/knowledge-base/guides/multi-tenant.md @@ -331,7 +331,7 @@ This way even a tight integration of Crossplane in to [Cloudfoundry] is possible [OCI images]: https://github.com/opencontainers/image-spec [EKS Cluster]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws/latest/resources/eks.aws.crossplane.io/Cluster/v1beta1 [provider-aws]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws -[provider-helm]: https://marketplace.upbound.io/providerscrossplane-contrib/provider-helm +[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm/ [Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker [Crossplane Service Broker]: https://github.com/vshn/crossplane-service-broker [Cloudfoundry]: https://www.cloudfoundry.org/ diff --git a/content/master/concepts/managed-resources.md b/content/master/concepts/managed-resources.md index 1f12451c..cd581f27 100644 --- a/content/master/concepts/managed-resources.md +++ b/content/master/concepts/managed-resources.md @@ -5,20 +5,19 @@ weight: 102 A Managed Resource (MR) is Crossplane's representation of a resource in an external system - most commonly a cloud provider. Managed Resources are -opinionated, Crossplane Resource Model ([XRM][term-xrm]) compliant Kubernetes -Custom Resources that are installed by a Crossplane [provider]. +opinionated, Crossplane Resource Model ([XRM]({{}})) compliant Kubernetes +Custom Resources that are installed by a Crossplane [provider]({{}}). For example, `RDSInstance` in the AWS Provider corresponds to an actual RDS Instance in AWS. There is a one-to-one relationship and the changes on managed resources are reflected directly on the corresponding resource in the provider. Similarly, the `Database` types in the SQL provider represent a PostgreSQL or -MySQL database. You can browse [API Reference][api-reference] to discover all -available managed resources. +MySQL database. Managed Resources are the building blocks of Crossplane. They're designed to be _composed_ into higher level, opinionated Custom Resources that Crossplane calls Composite Resources or XRs - not used directly. See the -[Composition][composition] documentation for more information. +[Composition]({{}}) documentation for more information. ## Syntax @@ -448,8 +447,7 @@ the values that are fetched from the provider. Note that if a resource has required fields, you must fill those fields or the creation of the managed resource will be rejected. So, in those cases, you will -need to enter the name of the resource as well as the required fields as -indicated in the [API Reference][api-reference] documentation. +need to enter the name of the resource as well as the required fields. ## Backup and Restore @@ -464,14 +462,10 @@ fields are there and those are enough to import a resource. The tool you're using needs to store `annotations` and `spec` fields, which most tools do including Velero. -[term-xrm]: "terminology" [rds]: https://aws.amazon.com/rds/ [cloudsql]: https://cloud.google.com/sql -[composition]: "composition" [api-versioning]: https://kubernetes.io/docs/reference/using-api/#api-versioning#api-versioning [velero]: https://velero.io/ -[api-reference]: "../api-docs" -[provider]: "providers" [issue-727]: https://github.com/crossplane/crossplane/issues/727 [issue-1143]: https://github.com/crossplane/crossplane/issues/1143 [managed-api-patterns]: https://github.com/crossplane/crossplane/blob/release-1.10/design/one-pager-managed-resource-api-design.md diff --git a/content/master/concepts/packages.md b/content/master/concepts/packages.md index 659577b2..ce085812 100644 --- a/content/master/concepts/packages.md +++ b/content/master/concepts/packages.md @@ -177,7 +177,7 @@ provided constraints. > Dependency resolution is a `beta` feature and depends on the `v1beta1` > [`Lock` API][lock-api]. -For an example Configuration package, see [getting-started-with-gcp]. +For an example Configuration package, see [getting-started-with-gcp](https://github.com/crossplane/docs/tree/master/content/v1.10/snippets/package/gcp). To build a Configuration package, navigate to the package root directory and execute the following command: @@ -493,7 +493,6 @@ by [pre-pulling images] onto nodes in the cluster. [provider-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Provider/v1 [configuration-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Configuration/v1 [lock-api]: https://doc.crds.dev/github.com/crossplane/crossplane/pkg.crossplane.io/Lock/v1beta1 -[getting-started-with-gcp]: https://github.com/crossplane/crossplane/tree/master/docs/snippets/package/gcp [specification]: https://github.com/Masterminds/semver#basic-comparisons [composition]: {{}} [IAM Roles for Service Accounts]: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html diff --git a/content/master/concepts/providers.md b/content/master/concepts/providers.md index ed3aeefb..0b9745f0 100644 --- a/content/master/concepts/providers.md +++ b/content/master/concepts/providers.md @@ -65,8 +65,7 @@ spec: You can see that there is a reference to a key in a specific `Secret`. The value of that key should contain the credentials that the controller will use. The documentation of each provider should give you an idea of how that credentials -blob should look like. See [Getting Started][getting-started] guide for more -details. +blob should look like. The following is an example usage of AWS `ProviderConfig`, referenced by a `RDSInstance`: @@ -90,7 +89,7 @@ will attempt to use a `ProviderConfig` named `default`. -[getting-started]: "../getting-started/install-configure" + [Google Cloud Platform (GCP) Service Account]: "../cloud-providers/gcp/gcp-provider" [Microsoft Azure Service Principal]: "../cloud-providers/azure/azure-provider" [Amazon Web Services (AWS) IAM User]: "../cloud-providers/aws/aws-provider" diff --git a/content/master/getting-started/introduction.md b/content/master/getting-started/introduction.md index 96ae58d6..22f62c7b 100644 --- a/content/master/getting-started/introduction.md +++ b/content/master/getting-started/introduction.md @@ -37,10 +37,10 @@ This table provides a summary of Crossplane components and their roles. {{< table "table table-hover table-sm">}} | Component | Abbreviation | Scope | Summary | | --- | --- | --- | ---- | -| [Provider]({{}}) | | cluster | Creates new Kubernetes Custom Resource Definitions for an external service. | -| [ProviderConfig]({{}}) | `PC` | cluster | Applies settings for a _Provider_. | -| [Managed Resource]({{}}) | `MR` | cluster | A provider resource created and managed by Crossplane inside the Kubernetes cluster. | -| [Composition]({{}}) | | cluster | A template for creating multiple _managed resources_ at once. | +| [Provider]({{}}) | | cluster | Creates new Kubernetes Custom Resource Definitions for an external service. | +| [ProviderConfig]({{}}) | `PC` | cluster | Applies settings for a _Provider_. | +| [Managed Resource]({{}}) | `MR` | cluster | A provider resource created and managed by Crossplane inside the Kubernetes cluster. | +| [Composition]({{}}) | | cluster | A template for creating multiple _managed resources_ at once. | | [Composite Resources]({{}}) | `XR` | cluster | Uses a _Composition_ template to create multiple _managed resources_ as a single Kubernetes object. | | [Composite Resource Definitions]({{}}) | `XRD` | cluster | Defines the API schema for _Composite Resources_ and _Claims_ | | [Claims]({{}}) | `XC` | namespace | Like a _Composite Resource_, but namespace scoped. | diff --git a/content/v1.10/concepts/packages.md b/content/v1.10/concepts/packages.md index e6e4e331..bb39059c 100644 --- a/content/v1.10/concepts/packages.md +++ b/content/v1.10/concepts/packages.md @@ -177,7 +177,7 @@ provided constraints. > Dependency resolution is a `beta` feature and depends on the `v1beta1` > [`Lock` API][lock-api]. -For an example Configuration package, see [getting-started-with-gcp]. +For an example Configuration package, see [getting-started-with-gcp](https://github.com/crossplane/docs/tree/master/content/v1.10/snippets/package/gcp). To build a Configuration package, navigate to the package root directory and execute the following command: @@ -491,7 +491,6 @@ by [pre-pulling images] onto nodes in the cluster. [provider-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Provider/v1 [configuration-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Configuration/v1 [lock-api]: https://doc.crds.dev/github.com/crossplane/crossplane/pkg.crossplane.io/Lock/v1beta1 -[getting-started-with-gcp]: https://github.com/crossplane/crossplane/tree/master/docs/snippets/package/gcp [specification]: https://github.com/Masterminds/semver#basic-comparisons [composition]: {{}} [IAM Roles for Service Accounts]: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html diff --git a/content/v1.10/contributing/docs.md b/content/v1.10/contributing/docs.md index b7b08ded..9917528a 100644 --- a/content/v1.10/contributing/docs.md +++ b/content/v1.10/contributing/docs.md @@ -87,7 +87,7 @@ hugo server ``` Hugo builds the website and launch a local web server on -[http://localhost:1313](http://localhost:1313). +http://localhost:1313. Any changes made are instantly reflected on the local web server. You don't need to restart Hugo. diff --git a/content/v1.10/contributing/release-process.md b/content/v1.10/contributing/release-process.md index fe7ba543..33242ec5 100644 --- a/content/v1.10/contributing/release-process.md +++ b/content/v1.10/contributing/release-process.md @@ -71,8 +71,13 @@ the convention of `release-[minor-semver]`. If this is the first ever release branch being created in a repo (uncommon), you should also set up branch protection rules for the `release-*` pattern. You can -find existing examples in the [Crossplane repo -settings](https://github.com/crossplane/crossplane/settings/branches). +find existing examples in the +Crossplane repo +settings. + +{{}} +Only maintainers can view the repo settings. +{{< /hint >}} At this point, the `HEAD` commit in the release branch will be our release candidate. The build pipeline will automatically be started due to the create diff --git a/content/v1.10/getting-started/create-configuration.md b/content/v1.10/getting-started/create-configuration.md index da7053b0..c8b9902f 100644 --- a/content/v1.10/getting-started/create-configuration.md +++ b/content/v1.10/getting-started/create-configuration.md @@ -388,7 +388,7 @@ spec: ``` ```console -curl -OL https://raw.githubusercontent.com/crossplane/crossplane/release-1.10/docs/snippets/package/gcp/composition.yaml +curl -OL https://raw.githubusercontent.com/crossplane/docs/master/content/v1.10/snippets/package/gcp/composition.yaml ``` {{< /tab >}} @@ -589,7 +589,7 @@ spec: ``` ```console -curl -OL https://raw.githubusercontent.com/crossplane/crossplane/release-1.10/docs/snippets/package/gcp/crossplane.yaml +curl -OL https://raw.githubusercontent.com/crossplane/docs/master/content/v1.10/snippets/package/gcp/crossplane.yaml kubectl crossplane build configuration ``` diff --git a/content/v1.10/guides/multi-tenant.md b/content/v1.10/guides/multi-tenant.md index 507e8043..01ab0c90 100644 --- a/content/v1.10/guides/multi-tenant.md +++ b/content/v1.10/guides/multi-tenant.md @@ -331,7 +331,7 @@ This way even a tight integration of Crossplane in to [Cloudfoundry] is possible [OCI images]: https://github.com/opencontainers/image-spec [EKS Cluster]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws/latest/resources/eks.aws.crossplane.io/Cluster/v1beta1 [provider-aws]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws -[provider-helm]: https://marketplace.upbound.io/providerscrossplane-contrib/provider-helm +[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm/ [Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker [Crossplane Service Broker]: https://github.com/vshn/crossplane-service-broker [Cloudfoundry]: https://www.cloudfoundry.org/ diff --git a/content/v1.11/concepts/managed-resources.md b/content/v1.11/concepts/managed-resources.md index 22bf7600..cd581f27 100644 --- a/content/v1.11/concepts/managed-resources.md +++ b/content/v1.11/concepts/managed-resources.md @@ -5,20 +5,19 @@ weight: 102 A Managed Resource (MR) is Crossplane's representation of a resource in an external system - most commonly a cloud provider. Managed Resources are -opinionated, Crossplane Resource Model ([XRM][term-xrm]) compliant Kubernetes -Custom Resources that are installed by a Crossplane [provider]. +opinionated, Crossplane Resource Model ([XRM]({{}})) compliant Kubernetes +Custom Resources that are installed by a Crossplane [provider]({{}}). For example, `RDSInstance` in the AWS Provider corresponds to an actual RDS Instance in AWS. There is a one-to-one relationship and the changes on managed resources are reflected directly on the corresponding resource in the provider. Similarly, the `Database` types in the SQL provider represent a PostgreSQL or -MySQL database. You can browse [API Reference][api-reference] to discover all -available managed resources. +MySQL database. Managed Resources are the building blocks of Crossplane. They're designed to be _composed_ into higher level, opinionated Custom Resources that Crossplane calls Composite Resources or XRs - not used directly. See the -[Composition][composition] documentation for more information. +[Composition]({{}}) documentation for more information. ## Syntax @@ -448,8 +447,7 @@ the values that are fetched from the provider. Note that if a resource has required fields, you must fill those fields or the creation of the managed resource will be rejected. So, in those cases, you will -need to enter the name of the resource as well as the required fields as -indicated in the [API Reference][api-reference] documentation. +need to enter the name of the resource as well as the required fields. ## Backup and Restore @@ -464,14 +462,10 @@ fields are there and those are enough to import a resource. The tool you're using needs to store `annotations` and `spec` fields, which most tools do including Velero. -[term-xrm]: {{}} [rds]: https://aws.amazon.com/rds/ [cloudsql]: https://cloud.google.com/sql -[composition]: {{}} [api-versioning]: https://kubernetes.io/docs/reference/using-api/#api-versioning#api-versioning [velero]: https://velero.io/ -[api-reference]: https://doc.crds.dev/github.com/crossplane/crossplane -[provider]: {{}} [issue-727]: https://github.com/crossplane/crossplane/issues/727 [issue-1143]: https://github.com/crossplane/crossplane/issues/1143 [managed-api-patterns]: https://github.com/crossplane/crossplane/blob/release-1.10/design/one-pager-managed-resource-api-design.md diff --git a/content/v1.11/concepts/packages.md b/content/v1.11/concepts/packages.md index 659577b2..ce085812 100644 --- a/content/v1.11/concepts/packages.md +++ b/content/v1.11/concepts/packages.md @@ -177,7 +177,7 @@ provided constraints. > Dependency resolution is a `beta` feature and depends on the `v1beta1` > [`Lock` API][lock-api]. -For an example Configuration package, see [getting-started-with-gcp]. +For an example Configuration package, see [getting-started-with-gcp](https://github.com/crossplane/docs/tree/master/content/v1.10/snippets/package/gcp). To build a Configuration package, navigate to the package root directory and execute the following command: @@ -493,7 +493,6 @@ by [pre-pulling images] onto nodes in the cluster. [provider-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Provider/v1 [configuration-docs]: https://doc.crds.dev/github.com/crossplane/crossplane/meta.pkg.crossplane.io/Configuration/v1 [lock-api]: https://doc.crds.dev/github.com/crossplane/crossplane/pkg.crossplane.io/Lock/v1beta1 -[getting-started-with-gcp]: https://github.com/crossplane/crossplane/tree/master/docs/snippets/package/gcp [specification]: https://github.com/Masterminds/semver#basic-comparisons [composition]: {{}} [IAM Roles for Service Accounts]: https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html diff --git a/content/v1.11/concepts/providers.md b/content/v1.11/concepts/providers.md index bee7b2ac..af1dd9d1 100644 --- a/content/v1.11/concepts/providers.md +++ b/content/v1.11/concepts/providers.md @@ -65,8 +65,7 @@ spec: You can see that there is a reference to a key in a specific `Secret`. The value of that key should contain the credentials that the controller will use. The documentation of each provider should give you an idea of how that credentials -blob should look like. See [Getting Started][getting-started] guide for more -details. +blob should look like. The following is an example usage of AWS `ProviderConfig`, referenced by a `RDSInstance`: diff --git a/content/v1.11/getting-started/introduction.md b/content/v1.11/getting-started/introduction.md index 432c19a7..1ede4f91 100644 --- a/content/v1.11/getting-started/introduction.md +++ b/content/v1.11/getting-started/introduction.md @@ -37,10 +37,10 @@ This table provides a summary of Crossplane components and their roles. {{< table "table table-hover table-sm">}} | Component | Abbreviation | Scope | Summary | | --- | --- | --- | ---- | -| [Provider]({{}}) | | cluster | Creates new Kubernetes Custom Resource Definitions for an external service. | -| [ProviderConfig]({{}}) | `PC` | cluster | Applies settings for a _Provider_. | -| [Managed Resource]({{}}) | `MR` | cluster | A provider resource created and managed by Crossplane inside the Kubernetes cluster. | -| [Composition]({{}}) | | cluster | A template for creating multiple _managed resources_ at once. | +| [Provider]({{}}) | | cluster | Creates new Kubernetes Custom Resource Definitions for an external service. | +| [ProviderConfig]({{}}) | `PC` | cluster | Applies settings for a _Provider_. | +| [Managed Resource]({{}}) | `MR` | cluster | A provider resource created and managed by Crossplane inside the Kubernetes cluster. | +| [Composition]({{}}) | | cluster | A template for creating multiple _managed resources_ at once. | | [Composite Resources]({{}}) | `XR` | cluster | Uses a _Composition_ template to create multiple _managed resources_ as a single Kubernetes object. | | [Composite Resource Definitions]({{}}) | `XRD` | cluster | Defines the API schema for _Composite Resources_ and _Claims_ | | [Claims]({{}}) | `XRC` | namespace | Like a _Composite Resource_, but namespace scoped. | diff --git a/content/v1.9/contributing/release-process.md b/content/v1.9/contributing/release-process.md index c12f37c2..4f2bd390 100644 --- a/content/v1.9/contributing/release-process.md +++ b/content/v1.9/contributing/release-process.md @@ -72,8 +72,13 @@ the convention of `release-[minor-semver]`. If this is the first ever release branch being created in a repo (uncommon), you should also set up branch protection rules for the `release-*` pattern. You can -find existing examples in the [Crossplane repo -settings](https://github.com/crossplane/crossplane/settings/branches). +find existing examples in the +Crossplane repo +settings. + +{{}} +Only maintainers can view the repo settings. +{{< /hint >}} At this point, the `HEAD` commit in the release branch will be our release candidate. The build pipeline will automatically be started due to the create diff --git a/content/v1.9/getting-started/create-configuration.md b/content/v1.9/getting-started/create-configuration.md index 6fe1fc34..9df72051 100644 --- a/content/v1.9/getting-started/create-configuration.md +++ b/content/v1.9/getting-started/create-configuration.md @@ -388,7 +388,7 @@ spec: ``` ```console -curl -OL https://raw.githubusercontent.com/crossplane/crossplane/release-1.9/docs/snippets/package/gcp/composition.yaml +curl -OL https://raw.githubusercontent.com/crossplane/docs/master/content/v1.9/snippets/package/gcp/composition.yaml ``` {{< /tab >}} @@ -589,7 +589,7 @@ spec: ``` ```console -curl -OL https://raw.githubusercontent.com/crossplane/crossplane/release-1.9/docs/snippets/package/gcp/crossplane.yaml +curl -OL https://raw.githubusercontent.com/crossplane/docs/master/content/v1.9/snippets/package/gcp/crossplane.yaml kubectl crossplane build configuration ``` diff --git a/content/v1.9/guides/multi-tenant.md b/content/v1.9/guides/multi-tenant.md index c61aba49..945dfcc2 100644 --- a/content/v1.9/guides/multi-tenant.md +++ b/content/v1.9/guides/multi-tenant.md @@ -332,7 +332,7 @@ This way even a tight integration of Crossplane in to [Cloudfoundry] is possible [OCI images]: https://github.com/opencontainers/image-spec [EKS Cluster]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws/latest/resources/eks.aws.crossplane.io/Cluster/v1beta1 [provider-aws]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-aws -[provider-helm]: https://marketplace.upbound.io/providerscrossplane-contrib/provider-helm +[provider-helm]: https://marketplace.upbound.io/providers/crossplane-contrib/provider-helm/ [Open Service Broker API]: https://github.com/openservicebrokerapi/servicebroker [Crossplane Service Broker]: https://github.com/vshn/crossplane-service-broker [Cloudfoundry]: https://www.cloudfoundry.org/ diff --git a/themes/geekboot/layouts/partials/feature-state-alert.html b/themes/geekboot/layouts/partials/feature-state-alert.html index 3cea90cc..b1bf2318 100644 --- a/themes/geekboot/layouts/partials/feature-state-alert.html +++ b/themes/geekboot/layouts/partials/feature-state-alert.html @@ -15,7 +15,7 @@

Crossplane may change or drop this feature at any time.
- For more information read the Crossplane feature lifecycle. + For more information read the }}'>Crossplane feature lifecycle.

diff --git a/themes/geekboot/layouts/partials/sidebar/contributing-guide.html b/themes/geekboot/layouts/partials/sidebar/contributing-guide.html index 00412364..680a4633 100644 --- a/themes/geekboot/layouts/partials/sidebar/contributing-guide.html +++ b/themes/geekboot/layouts/partials/sidebar/contributing-guide.html @@ -1,6 +1,6 @@
diff --git a/themes/geekboot/layouts/partials/sidebar/knowledge-base.html b/themes/geekboot/layouts/partials/sidebar/knowledge-base.html index e3923e0b..237b253a 100644 --- a/themes/geekboot/layouts/partials/sidebar/knowledge-base.html +++ b/themes/geekboot/layouts/partials/sidebar/knowledge-base.html @@ -1,6 +1,6 @@
diff --git a/themes/geekboot/layouts/partials/sidebar/user-docs.html b/themes/geekboot/layouts/partials/sidebar/user-docs.html index 0337f716..4d00d310 100644 --- a/themes/geekboot/layouts/partials/sidebar/user-docs.html +++ b/themes/geekboot/layouts/partials/sidebar/user-docs.html @@ -1,6 +1,6 @@
diff --git a/themes/geekboot/layouts/partials/stylesheet-cached.html b/themes/geekboot/layouts/partials/stylesheet-cached.html index e30e253b..0e903ed7 100644 --- a/themes/geekboot/layouts/partials/stylesheet-cached.html +++ b/themes/geekboot/layouts/partials/stylesheet-cached.html @@ -11,5 +11,5 @@ - + diff --git a/utils/htmltest/.htmltest.yml b/utils/htmltest/.htmltest.yml new file mode 100644 index 00000000..0732e868 --- /dev/null +++ b/utils/htmltest/.htmltest.yml @@ -0,0 +1,7 @@ +DirectoryPath: "public" +# The version drop down has an empty hash. +# This doesn't cause errors +IgnoreInternalEmptyHash: true +CheckExternal: false +IgnoreURLs: + - "github.com/crossplane/docs/tree/master/content/(.*).md" # Ignore the links to "view this source" \ No newline at end of file