From 9fa03d27f6ff4374a72fc0f97dcdc62769626c16 Mon Sep 17 00:00:00 2001 From: Jeff Escalante Date: Mon, 10 Feb 2020 13:56:55 -0500 Subject: [PATCH] add link checker, fix a redirect, remove unused component --- website/_redirects | 58 ++-- .../before-after-diagram/img/alert-icon.svg | 1 - .../img/alert-triangle.svg | 1 - .../img/check-circle-blue.svg | 1 - .../before-after-diagram/img/check-circle.svg | 1 - .../before-after-diagram/img/check-icon.svg | 1 - .../components/before-after-diagram/index.jsx | 108 ------ .../components/before-after-diagram/style.css | 307 ------------------ website/package-lock.json | 6 + website/package.json | 4 +- 10 files changed, 39 insertions(+), 449 deletions(-) delete mode 100644 website/components/before-after-diagram/img/alert-icon.svg delete mode 100644 website/components/before-after-diagram/img/alert-triangle.svg delete mode 100644 website/components/before-after-diagram/img/check-circle-blue.svg delete mode 100644 website/components/before-after-diagram/img/check-circle.svg delete mode 100644 website/components/before-after-diagram/img/check-icon.svg delete mode 100644 website/components/before-after-diagram/index.jsx delete mode 100644 website/components/before-after-diagram/style.css diff --git a/website/_redirects b/website/_redirects index 1715a03a9..f4469df5f 100644 --- a/website/_redirects +++ b/website/_redirects @@ -274,34 +274,36 @@ # Guides # Reorganized Guides by Persona -/guides/autopilot.html /guides/operations/autopilot -/guides/autopilot /guides/operations/autopilot -/guides/cluster/automatic.html /guides/operations/cluster/automatic -/guides/cluster/automatic /guides/operations/cluster/automatic -/guides/cluster/bootstrapping.html /guides/operations/cluster/bootstrapping -/guides/cluster/bootstrapping /guides/operations/cluster/bootstrapping -/guides/cluster/manual.html /guides/operations/cluster/manual -/guides/cluster/manual /guides/operations/cluster/manual -/guides/cluster/federation /guides/operations/federation -/guides/cluster/requirements /guides/operations/requirements -/guides/nomad-metrics.html /guides/operations/monitoring/nomad-metrics -/guides/nomad-metrics /guides/operations/monitoring/nomad-metrics -/guides/node-draining.html /guides/operations/node-draining -/guides/node-draining /guides/operations/node-draining -/guides/outage.html /guides/operations/outage -/guides/outage /guides/operations/outage -/guides/acl.html /guides/security/acl -/guides/acl /guides/security/acl -/guides/namespaces.html https://learn.hashicorp.com/nomad/governance-and-policy/namespaces -/guides/namespaces https://learn.hashicorp.com/nomad/governance-and-policy/namespaces -/guides/quotas.html https://learn.hashicorp.com/nomad/governance-and-policy/quotas -/guides/quotas https://learn.hashicorp.com/nomad/governance-and-policy/quotas -/guides/securing-nomad.html /guides/security/securing-nomad -/guides/securing-nomad /guides/security/securing-nomad -/guides/sentinel-policy.html https://learn.hashicorp.com/nomad/governance-and-policy/sentinel -/guides/sentinel-policy https://learn.hashicorp.com/nomad/governance-and-policy/sentinel -/guides/sentinel/job.html https://learn.hashicorp.com/nomad/governance-and-policy/sentinel -/guides/sentinel/job https://learn.hashicorp.com/nomad/governance-and-policy/sentinel +/guides/autopilot.html /guides/operations/autopilot +/guides/autopilot /guides/operations/autopilot +/guides/cluster/automatic.html /guides/operations/cluster/automatic +/guides/cluster/automatic /guides/operations/cluster/automatic +/guides/cluster/bootstrapping.html /guides/operations/cluster +/guides/cluster/bootstrapping /guides/operations/cluster +/guides/operations/cluster/bootstrapping.html /guides/operations/cluster +/guides/operations/cluster/bootstrapping /guides/operations/cluster +/guides/cluster/manual.html /guides/operations/cluster/manual +/guides/cluster/manual /guides/operations/cluster/manual +/guides/cluster/federation /guides/operations/federation +/guides/cluster/requirements /guides/operations/requirements +/guides/nomad-metrics.html /guides/operations/monitoring/nomad-metrics +/guides/nomad-metrics /guides/operations/monitoring/nomad-metrics +/guides/node-draining.html /guides/operations/node-draining +/guides/node-draining /guides/operations/node-draining +/guides/outage.html /guides/operations/outage +/guides/outage /guides/operations/outage +/guides/acl.html /guides/security/acl +/guides/acl /guides/security/acl +/guides/namespaces.html https://learn.hashicorp.com/nomad/governance-and-policy/namespaces +/guides/namespaces https://learn.hashicorp.com/nomad/governance-and-policy/namespaces +/guides/quotas.html https://learn.hashicorp.com/nomad/governance-and-policy/quotas +/guides/quotas https://learn.hashicorp.com/nomad/governance-and-policy/quotas +/guides/securing-nomad.html /guides/security/securing-nomad +/guides/securing-nomad /guides/security/securing-nomad +/guides/sentinel-policy.html https://learn.hashicorp.com/nomad/governance-and-policy/sentinel +/guides/sentinel-policy https://learn.hashicorp.com/nomad/governance-and-policy/sentinel +/guides/sentinel/job.html https://learn.hashicorp.com/nomad/governance-and-policy/sentinel +/guides/sentinel/job https://learn.hashicorp.com/nomad/governance-and-policy/sentinel /guides/analytical-workloads/spark/spark.html /guides/analytical-workloads/spark /guides/analytical-workloads/spark/spark /guides/analytical-workloads/spark diff --git a/website/components/before-after-diagram/img/alert-icon.svg b/website/components/before-after-diagram/img/alert-icon.svg deleted file mode 100644 index 072e687cd..000000000 --- a/website/components/before-after-diagram/img/alert-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/components/before-after-diagram/img/alert-triangle.svg b/website/components/before-after-diagram/img/alert-triangle.svg deleted file mode 100644 index c3e948346..000000000 --- a/website/components/before-after-diagram/img/alert-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/components/before-after-diagram/img/check-circle-blue.svg b/website/components/before-after-diagram/img/check-circle-blue.svg deleted file mode 100644 index d29658955..000000000 --- a/website/components/before-after-diagram/img/check-circle-blue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/components/before-after-diagram/img/check-circle.svg b/website/components/before-after-diagram/img/check-circle.svg deleted file mode 100644 index e029eaacc..000000000 --- a/website/components/before-after-diagram/img/check-circle.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/website/components/before-after-diagram/img/check-icon.svg b/website/components/before-after-diagram/img/check-icon.svg deleted file mode 100644 index 98e39a99d..000000000 --- a/website/components/before-after-diagram/img/check-icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/website/components/before-after-diagram/index.jsx b/website/components/before-after-diagram/index.jsx deleted file mode 100644 index ccbe50f20..000000000 --- a/website/components/before-after-diagram/index.jsx +++ /dev/null @@ -1,108 +0,0 @@ -import marked from 'marked' -import Image from '@hashicorp/react-image' -import alertIcon from './img/alert-icon.svg?include' -import checkIcon from './img/check-icon.svg?include' - -function BeforeAfterDiagram(props) { - const markedOptions = generateMarkedOptions() - const { - theme, - beforeHeadline, - beforeContent, - beforeImage, - afterHeadline, - afterContent, - afterImage - } = props - return ( -
-
-
-
- -
-
-
- - -
- - -
- {beforeHeadline && ( -

- )} - {beforeContent && ( -
- )} -
-

-
-
-
-
- -
-
-
-
-
-
-
- {afterHeadline && ( -

- )} - {afterContent && ( -
- )} -
-

-
-
- ) -} - -export default BeforeAfterDiagram - -function generateMarkedOptions() { - const markedRenderer = new marked.Renderer() - - markedRenderer.heading = function(text, level) { - return `${text}` - } - markedRenderer.paragraph = function(text) { - return `

${text}

` - } - markedRenderer.list = function(text) { - return `
    ${text}
` - } - - return { renderer: markedRenderer } -} diff --git a/website/components/before-after-diagram/style.css b/website/components/before-after-diagram/style.css deleted file mode 100644 index 385f97629..000000000 --- a/website/components/before-after-diagram/style.css +++ /dev/null @@ -1,307 +0,0 @@ -.g-before-after-diagrams { - display: flex; - flex-wrap: wrap; - margin: 0 -16px; - position: relative; - - @media (max-width: 1023px) { - margin-left: -12px; - margin-right: -12px; - } - - @media (max-width: 767px) { - flex-direction: column; - margin-left: 40px; - margin-right: 0; - } - - & > div { - display: flex; - flex-direction: column; - margin: 0 16px; - position: relative; - width: calc(50% - 32px); - - @media (max-width: 1023px) { - margin: 0 12px; - width: calc(50% - 24px); - } - - @media (max-width: 767px) { - margin: 0; - width: 100%; - } - } - - & .before { - @media (max-width: 767px) { - margin-bottom: 62px; - } - - & li:before { - background: url('/img/icons/alert-triangle.svg'); - height: 20px; - margin-top: 3px; - width: 20px; - } - } - - & .after li:before { - background: url('/img/icons/check-circle.svg'); - height: 18px; - margin-top: 4px; - width: 18px; - } - - & .image { - align-items: center; - display: flex; - height: 320px; - justify-content: center; - margin-bottom: 96px; - - @media (max-width: 767px) { - margin-bottom: 40px; - } - - @media (max-width: 640px) { - height: 284px; - } - - @media (max-width: 540px) { - height: 238px; - } - - @media (max-width: 480px) { - height: 211px; - } - - @media (max-width: 375px) { - height: 163px; - } - - & div { - height: 100%; - text-align: center; - width: 100%; - } - - & img, - & svg { - max-height: 100%; - max-width: 100%; - } - } - - & .content { - border: 1px solid var(--DEPRECATED-gray-9); - padding: 24px 32px 20px; - position: relative; - flex-grow: 1; - - @media (max-width: 1023px) { - padding-left: 24px; - padding-right: 24px; - } - - @media (max-width: 767px) { - padding-left: 20px; - padding-right: 20px; - } - - &:before, - &:after { - bottom: 100%; - border: solid transparent; - content: ''; - height: 0; - left: 50%; - width: 0; - position: absolute; - pointer-events: none; - } - - &:before { - border-color: rgba(229, 230, 235, 0); - border-bottom-color: var(--DEPRECATED-gray-9); - border-width: 18px; - margin-left: -18px; - } - - &:after { - border-color: rgba(255, 255, 255, 0); - border-bottom-color: var(--white); - border-width: 17px; - margin-left: -17px; - } - - & > div { - height: 100%; - - &.line { - height: auto; - } - - & > div { - @media (min-width: 768px) { - max-width: 480px; - margin: 0 auto; - } - } - } - } - - & h3 { - border-bottom: 1px solid var(--DEPRECATED-gray-9); - color: var(--black); - margin: 0 0 24px; - padding-bottom: 24px; - text-align: center; - } - - & h4 { - display: block; - margin: 24px 0 26px; - text-transform: uppercase; - } - - & ul { - list-style: none; - padding-left: 32px; - position: relative; - } - - & li { - margin: 8px 0; - - &:before { - background-repeat: no-repeat; - content: ''; - left: 0; - position: absolute; - } - } - - & .line { - padding: 0; - position: absolute; - right: 0; - top: -75px; - width: 100%; - - @media (max-width: 767px) { - left: -28px; - height: 100%; - right: auto; - top: 28px; - width: auto; - } - - & span { - display: block; - height: 1px; - position: absolute; - top: 12px; - width: calc(100% - 14px); - - @media (max-width: 767px) { - width: 1px; - } - - &:first-child { - background-image: linear-gradient( - 90deg, - rgba(210, 212, 219, 0) 0%, - var(--DEPRECATED-gray-8) 100% - ); - right: calc(50% + 20px); - width: calc(50% + 140px); - - @media (max-width: 767px) { - background-image: linear-gradient( - 180deg, - rgba(210, 212, 219, 0) 0%, - var(--DEPRECATED-gray-8) 100% - ); - height: 245px; - right: auto; - top: -253px; - width: 1px; - } - } - - &:last-child { - background-image: linear-gradient( - 90deg, - var(--DEPRECATED-gray-8) 0%, - var(--black) 100% - ); - left: calc(50% + 20px); - - @media (max-width: 767px) { - background-image: linear-gradient( - 180deg, - var(--DEPRECATED-gray-8) 0%, - var(--black) 100% - ); - height: calc(100% + 375px); - left: auto; - top: 32px; - } - - @media (max-width: 640px) { - height: calc(100% + 339px); - } - - @media (max-width: 540px) { - height: calc(100% + 293px); - } - - @media (max-width: 480px) { - height: calc(100% + 266px); - } - - @media (max-width: 375px) { - height: calc(100% + 218px); - } - - &:after { - border-color: transparent transparent transparent #000000; - border-style: solid; - border-width: 5.5px 0 5.5px 8px; - content: ''; - height: 0; - position: absolute; - right: -8px; - top: -5px; - width: 0; - - @media (max-width: 767px) { - transform: rotate(90deg); - top: auto; - bottom: -8px; - right: -4px; - } - } - } - } - - & svg { - position: absolute; - left: 50%; - margin: 0 0 0 -11px; - } - } - - /* - * VAULT THEME - */ - &.vault { - & .after { - & li:before { - background: url('/img/icons/check-circle-blue.svg'); - height: 19px; - } - } - } -} diff --git a/website/package-lock.json b/website/package-lock.json index 14e09e7b4..3a1f50d54 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -6591,6 +6591,12 @@ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" }, + "dart-linkcheck": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/dart-linkcheck/-/dart-linkcheck-2.0.12.tgz", + "integrity": "sha512-ReLhme4n6r1v47QcZgkz0yxrJ8qkSRMaHwichzK96OdwOMZ9DY4hHfHAnsLh2vU1rnYCwaVfo1LwwdnAM+nrzw==", + "dev": true + }, "date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", diff --git a/website/package.json b/website/package.json index ce40c3f03..0a1d4ea97 100644 --- a/website/package.json +++ b/website/package.json @@ -40,6 +40,7 @@ "stringify-object": "^3.3.0" }, "devDependencies": { + "dart-linkcheck": "^2.0.12", "glob": "^7.1.6", "husky": "^4.2.1", "inquirer": "^7.0.4", @@ -59,6 +60,7 @@ "generate:component": "next-hashicorp generate component", "lint": "next-hashicorp lint", "start": "rm -rf .next/cache/next-babel-loader/ && next dev", - "static": "npm run build && npm run export && cp _redirects out/." + "static": "npm run build && npm run export && cp _redirects out/.", + "linkcheck": "linkcheck https://www.nomadproject.io" } }