etcd-io / website

etcd.io
https://etcd.io
Other
145 stars 293 forks source link

Fix remaining broken external links #245

Open nate-double-u opened 3 years ago

nate-double-u commented 3 years ago

Follow up issue to https://github.com/etcd-io/website/issues/203, there are a handful of broken links which need attention -- there isn't an obvious place to link to, so the copy may need to be reworked.

docs/v3.4/learning/why/index.html

docs/v3.3/learning/why/index.html

docs/v3.1/libraries-and-tools/index.html

docs/v3.1/op-guide/monitoring/index.html

docs/next/learning/why/index.html

Originally posted by @nate-double-u in https://github.com/etcd-io/website/issues/203#issuecomment-823642654

nate-double-u commented 3 years ago

Edit: (@chalin) - the command and output are outdated. See below for the updated command, and run it to see up-to-date output 😄 .

make check-all-links output:

htmltest started at 11:40:08 on public
========================================================================
index.html
  Non-OK status: 404 --- index.html --> https://etcd.io/_redirects
blog/2020/jepsen-343-results/index.html
  Non-OK status: 416 --- blog/2020/jepsen-343-results/index.html --> https://fauna.com/blog/demystifying-database-systems-part-4-isolation-levels-vs-consistency-levels
docs/v3.4/learning/why/index.html
  Non-OK status: 404 --- docs/v3.4/learning/why/index.html --> https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/commands/lock
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/api-docs#consistency
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/api/kv#txn
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/watches
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/docs/security/acl
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/api-docs#formatted-json-output
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://learn.hashicorp.com/tutorials/consul/add-remove-servers?in=consul/day-2-operations
  Non-OK status: 416 --- docs/v3.4/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/sessions
docs/v3.3/learning/why/index.html
  Non-OK status: 404 --- docs/v3.3/learning/why/index.html --> https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/commands/lock
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/api-docs#consistency
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/api/kv#txn
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/watches
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/docs/security/acl
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/api-docs#formatted-json-output
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://learn.hashicorp.com/tutorials/consul/add-remove-servers?in=consul/day-2-operations
  Non-OK status: 416 --- docs/v3.3/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/sessions
docs/v3.1/libraries-and-tools/index.html
  Non-OK status: 404 --- docs/v3.1/libraries-and-tools/index.html --> https://github.com/scrz/scrz
docs/v3.1/op-guide/monitoring/index.html
  request exceeded our ExternalTimeout --- docs/v3.1/op-guide/monitoring/index.html --> http://dash.etcd.io/dashboard/db/test-etcd
docs/next/learning/why/index.html
  Non-OK status: 404 --- docs/next/learning/why/index.html --> https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3lock/v3lockpb
  Non-OK status: 404 --- docs/next/learning/why/index.html --> https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3election/v3electionpb
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/commands/lock
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/api-docs#consistency
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/api/kv#txn
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/watches
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/docs/security/acl
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/api-docs#formatted-json-output
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://learn.hashicorp.com/tutorials/consul/add-remove-servers?in=consul/day-2-operations
  Non-OK status: 416 --- docs/next/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/sessions
  Non-OK status: 404 --- docs/next/learning/why/index.html --> https://godoc.org/github.com/etcd-io/etcd/server/etcdserver/api/v3lock/v3lockpb
docs/v3.2/learning/why/index.html
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/commands/lock
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/api-docs#consistency
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/api/kv#txn
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/watches
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/docs/security/acl
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/api-docs#formatted-json-output
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://learn.hashicorp.com/tutorials/consul/add-remove-servers?in=consul/day-2-operations
  Non-OK status: 416 --- docs/v3.2/learning/why/index.html --> https://www.consul.io/docs/dynamic-app-config/sessions
========================================================================
✘✘✘ failed in 11m0.064428339s
41 errors in 401 documents

Note: the 416 status errors aren't broken links. Some investigation likely needs to be done to sort them out too, but the links do work.

[edit] updating results after merging in the docsy branch changes.

chalin commented 3 years ago

We'll need a special strategy for checking external links, because using htmltest won't work -- most external sites will refuse connections from it.

afzal442 commented 3 years ago

hi there, well I had a look around this issue, what I found is that 404 status error should be refactored with correct links. thanks

// @nate-double-u

chalin commented 3 years ago

We'll need a special strategy for checking external links, because using htmltest won't work ...

I take that back. I think that I've found a viable solution using htmltest. I'll iron out the details early this week once I'm at the office.

Note the command to check all links (internal and external) is now: npm run check-links:all

nate-double-u commented 3 years ago

hi there, well I had a look around this issue, what I found is that 404 status error should be refactored with correct links. thanks

// @nate-double-u

I'm not sure I follow, which links are incorrect on the 404 page? https://etcd.io/404-check

chalin commented 3 years ago

Kind of related: #195

chalin commented 3 years ago

@kapunahelewong, here is what I propose for now: add links that you've manually verified to .htmltest.yml something like this:

IgnoreURLs:
  - ^http://play.etcd.io.*
  # Manually verified external links below this point
  - ^https://etcd.cn
  - ...

Note: each regex pattern should start with ^, and you don't need quotes around the pattern (contrary to how the first regex is encoded in the file atm).

I'm working on a better solution, but this is a good step in the right direction.

For links that appear in docs <v3.4 and have just plain gone away, use a similar approach: add them to .htmltest.yml, under a section # Links in archived pages we can't find anymore (or some similar comment). Keep the links in the text (I know it isn't ideal to do so, but we can find a better solution later -- and it will be easier to do so if we don't remove the links from the ext).

chalin commented 3 years ago

Also, please work through the pages starting with v3.5 pages first and submit that as a separate PR. Then v3.4. The other pages are much less important (and we might just skip such broken external links by adding them to the IgnoreURLs, unless we know what the fix is. Thanks!