nodejs / nodejs.org

The Node.js® Website
https://nodejs.org
MIT License
6.13k stars 6.21k forks source link

404 links and how to handle them in the future #2424

Closed XhmikosR closed 1 year ago

XhmikosR commented 5 years ago
404 Not found   
https://github.com/nodejs/community-committee/blob/master/GOVERNANCE.md
Linked from: https://nodejs.org/en/about/community/

404 Not found   
https://github.com/nodejs/nodejs-ro
Linked from: https://nodejs.org/en/about/working-groups/

404 Not found   
http://events.linuxfoundation.org/events/node-interactive
Linked from: https://nodejs.org/en/get-involved/code-and-learn/

Scanning https://nodejs.org/docs/latest-v6.x/api/async_hooks.html
  [404] https://nodejs.org/en/404.md/

Scanning https://nodejs.org/download/chakracore-nightly/v10.5.0-nightly20180630422c132e6e/docs/api/all.html
  [404] https://nodejs.org/download/chakracore-nightly/v10.5.0-nightly20180630422c132e6e/docs/api/worker.html

Scanning https://nodejs.org/download/chakracore-nightly/v11.0.0-nightly2018061364643e6292/docs/api/all.html
  [404] https://nodejs.org/download/chakracore-nightly/v11.0.0-nightly2018061364643e6292/docs/api/worker.html

Scanning https://nodejs.org/docs/latest-v0.10.x/api/vm.html
  [404] https://nodejs.org/docs/latest-v6.x/api/async_hooks.html

For the future we could use linkinator, although we'd need to tweak it to handle the internal docs links that are missing from this repo.

XhmikosR commented 5 years ago

We really need this added. I'm gonna spend some time later to have a patch, I'm just not sure how to speed it up.

XhmikosR commented 5 years ago

If anyone wants to help, let me know. I'm not sure how to proceed with linkinator and I'm not aware of another package that works equally good.

The problems I hit so far with linkinator:

  1. I can't do linkinator build/ since the build folder doesn't have any html file
  2. If I exclude any non-local links we don't get to see the full picture. But scanning the whole site takes a lot of time and currently Travis reaches the job time limit. Example: https://travis-ci.org/XhmikosR/nodejs.org/builds/580696878
  3. We could try making all local links relative to server root. For example, https://nodejs.org/en/foo/ -> /en/foo/. This isn't a simple search and replace, though, because currently, we leverage Markdown's auto linking feature in many places

I'm unsure how to proceed with this at the moment. I know for sure we need such a check, even if it's just for the local files.

I'd like to hear what others think; maybe someone else has a better solution.

Trott commented 5 years ago

Exclude external links for now and figure out how to handle those later? That will at least prevent an issue like the slash-replace thing that broke a bunch of links on the site.

XhmikosR commented 5 years ago

Alright, I'll wrap my branch up and make a PR later. Note that for the canonical issue, it wouldn't have been caught since it's not an internal link.

XhmikosR commented 5 years ago

Although, there's still the first issue I have.

I made an upstream issue - https://github.com/JustinBeckwith/linkinator/issues/82

XhmikosR commented 4 years ago

Here's the updated list with the 404s I have PRs that fix them removed:

[404] https://foundation.nodejs.org/board
[410] https://vote.linuxfoundation.org/
[0] https://certified.nodesource.com/
[404] https://nodesource.com/blog/announcing-nodesource-certified-modules-for-node-js
[404] http://events.linuxfoundation.org/events/node-interactive
[0] https://liftsecurity.io/
[404] http://eventloop.noders.com/
[404] https://nodejs.org/docs/v4.6.2/api/
[0] https://2016.nodeconf.com.ar/
[404] https://www.openssl.org/news/openssl-1.0.1-notes.html
[0] https://sweet32.info/
[404] http://events.linuxfoundation.org/events/node-interactive-europe
[404] http://events.linuxfoundation.org/events/node-interactive-europe/attend/diversity-scholarship
[0] http://nodeup.com/onehundredtwo
[0] http://ctt.marketwire.com/?release=11G082331-001&id=8448115&type=0&url=https%3a%2f%2fnodejs.org%2fen%2ffoundation%2f
[0] http://nodeup.com/onehundred
[404] https://www.npmjs.com/settings/tokens
[0] http://sphinx.sg/
[0] https://ssrg.nicta.com.au/projects/TS/cachebleed/
[404] https://www.openssl.org/news/cl101.txt
[404] http://jona.io/blog/board-application/
[404] http://contra.io/node_board.txt
[404] http://bnb.im/blog/Individual-Membership-on-the-Board-of-Directors-for-Node-js.html
[410] https://medium.com/@evan.cowden/the-world-s-worst-resume-e0adf234baa0
[0] http://nodeup.com/ninetyseven
[0] https://www.bithound.io/
[404] https://www.joyent.com/innovation
[0] https://marketing.nodesource.com/acton/fs/blocks/showLandingPage/a/15680/p/p-001f/t/page/fm/4
[0] https://synchro.io/launch
[0] http://nodeup.com/ninetysix
[404] http://blog.bithound.io/why-we-stopped-vendoring-our-npm-dependencies/
[0] http://nodeup.com/ninetyfive
[404] https://foundation.nodejs.org/tsc/
[404] https://nodejs.org/download/release/latest-v4.x/node-v4.2.2-linux-armv6l.tar.gz
[0] http://nodeup.com/ninetythree
[0] http://nodeup.com/ninetyfour
[0] https://codek.tv/2095
[0] http://nodeup.com/ninetytwo
[404] http://ditrospecta.com/javascript/plugin/hubot/2015/10/03/hubot-plugin-choose-place-to-drink-coffee.html
[0] https://playnode.io/
[0] http://nodeup.com/ninetyone
[404] http://interactive.nodejs.org/
[404] http://events.linuxfoundation.org/events/node-interactive/program/cfp
[999] https://www.linkedin.com/in/danesecooper
[999] https://www.linkedin.com/pub/scott-hammond/1/a4b/92a
[999] https://www.linkedin.com/in/brianmccallister
[999] https://www.linkedin.com/pub/todd-moore/2b/540/798
[999] https://www.linkedin.com/in/stevenewcomb
[999] https://www.linkedin.com/in/gianugo
[999] https://www.linkedin.com/in/charlierobbins
[999] https://www.linkedin.com/pub/imad-sousou/6/b49/2b8
[999] https://www.linkedin.com/in/rvagg
[999] https://www.linkedin.com/pub/bill-fine/2/497/916
[999] https://www.linkedin.com/in/mikealrogers
[404] https://twitter.com/aminekabab
[404] https://twitter.com/bananaoomarang
[404] https://nodesource.com/products/nsupport
[403] https://apigee.com/
[404] http://www.linuxfoundation.org/news-media/announcements/2015/06/nodejs-foundation-advances-community-collaboration-announces-new
[404] https://strongloop.com/strongblog/deploying-multiple-node-js-apps-with-strong-pm-io/
[0] http://dailyjs.com/2015/06/19/not-really-single-page-apps/
[404] https://strongloop.com/strongblog/containerizing-node-js-apps-with-docker-and-strongloop/
[403] http://builtinnode.com/
[0] https://paulb.gd/comparing-nodejs-ides/
[0] https://unpm.nodesource.com/
[0] http://blog.modulus.io/top-10-reasons-to-use-node
[404] http://developer.leankit.com/painless-sql-server-with-nodejs-and-seriate/
[0] http://blog.upwardsmotion.com/golden-rules-for-js-introduction-to-your-ee-project/
[0] http://blog.modulus.io/modulus-and-progress-software-join-nodejs-foundation
[0] https://blog.famous.org/famous-industries-joins-the-node-foundation/
[404] https://strongloop.com/strongblog/announcing-the-node-js-foundation/
[404] https://strongloop.com/strongblog/should-i-use-node-js-or-io-js-and-which-version/
[404] https://twitter.com/edatrero/status/605040698992164864
[404] https://strongloop.com/strongblog/new-io-js-features-you-may-not-be-using/
[404] https://soundcloud.com/node-foundation/tsc-meeting-2015-05-27
[0] http://blog.modulus.io/promise-errors-in-iojs
[404] https://www.linux.com/news/featured-blogs/205-mike-dolan/763051-five-key-features-of-a-project-designed-for-open-collaboration
[0] http://nodeadvisoryboard.com/
[404] https://chromium.googlesource.com/v8/v8/+/refs/heads/4.2.77/ChangeLog
[0] http://blog.modulus.io/upcoming-updates-for-nodejs-applications
[0] http://jsconf.uy/
[404] https://iojs.org/dist/v1.7.0/
[404] https://vimeo.com/121707989
[0] http://nodeup.com/eightyfour
[0] http://descriptive.audio/
[0] http://descriptive.audio/episodes/12
[403] http://dockeri.co/
[404] https://strongloop.com/strongblog/are-node-and-io-js-affected-by-the-freak-attack-openssl-vulnerability/
[0] http://blog.technical.io/post/112787427217/tessel-2-new-hardware-for-the-tessel-ecosystem
[0] http://blog.technical.io/post/112888410737/moving-faster-with-io-js
[409] http://hueniverse.com/2015/03/02/the-node-version-dilemma/
[0] http://blog.iojs.jp/
[0] http://cn.iojs.org/
[0] https://semaphoreapp.com/blog/2015/02/17/platform-update-on-february-24th.html?utm_source=twitter&utm_medium=social&utm_content=platform_update_launch&utm_campaign=platformupdate
[0] http://nodegovernance.io/
[0] http://www.actionherojs.com/
[404] https://www.totaljs.com/
[404] https://soundcloud.com/iojs/iojs-build-wg-meeting-2015-02-19
[404] https://soundcloud.com/iojs/iojs-tc-meeting-meeting-2015-02-18
[404] https://soundcloud.com/iojs/iojs-website-wg-meeting-2015-02-16
[0] http://blog.technical.io/post/110115579867/upcoming-hardware-from-technical-machine
[404] https://nodejs.org/en/about/advisory-board/
[404] https://nodejs.org/en/404.md/
[404] https://nodejs.org/en/about/organization
[501] https://t.me/nodejsarmenia
[999] https://www.linkedin.com/in/ioannis-nikolaou/
[999] https://www.linkedin.com/in/ayush-rawal
[0] https://slack.js.la/
[404] https://nodejs.org/en/about/organization/
[404] http://www.joyent.com/noderoad/cities/minneapolis-6-17-2014
[404] http://www.joyent.com/noderoad/cities/cincinnati-6-19-2014
[404] http://www.joyent.com/noderoad/cities/suggest
[0] https://scalenpm.org/
[503] https://www.nodejitsu.com/company/press/2013/05/22/iriscouch/
[404] http://wiki.apache.org/couchdb/Compaction
[404] https://nodejs.org/benchmarks-v0.10-vs-v0.8/
[0] http://jenkins.nodejs.org/
[404] http://strongloop.com/products
[0] http://thenodefirm.com/
[0] http://thenodefirm.com/nodejs-consulting-subscriptions
[0] https://www.irisnpm.com/
[403] http://www.iriscouch.com/
[404] https://dl.dropbox.com/u/3685/presentations/streams2/streams2-ko.pdf
[404] http://substack.net/posts/16a9d8/multi-server-continuous-deployment-with-fleet
[404] http://substack.net/posts/7a1c42
[404] http://substack.net/posts/5bd18d
[404] https://cs.brown.edu/people/dapachec/helloworld.svg
[404] http://json.org/java/
[404] http://www.flickr.com/photos/luc_viatour/4247957432/
[404] https://npmjs.com/doc/semver.html
[404] https://npmjs.com/doc/shrinkwrap.html
[404] https://npmjs.com/doc/outdated.html
[404] http://www.mikealrogers.com/posts/nodemodules-in-git.html
[404] http://corp.klout.com/blog/2011/10/the-tech-behind-klout-com/
[404] http://www.engineyard.com/blog/2009/ldap-directories-the-forgotten-nosql/
[404] https://nodejs.org/meetup/
[0] https://www.cloudkick.com/
[0] http://marakana.com/forums/java/general/278.html

Some are FP like most of the linkedin links. Let me know how to proceed.

XhmikosR commented 4 years ago

I've pushed the branch which checks all links here https://github.com/nodejs/nodejs.org/runs/257523435

It's too much running this on each commit, so for now, I think just doing this manually from time to time is better.

Remember there are still some false positives, but most of those are really broken links.

XhmikosR commented 4 years ago

I really think we should decide about these and not have a new issue/PR for each on of them :/

Anyway, in some cases, we might need to add redirects in build.

Trott commented 4 years ago

Are most of the ones in the GitHub Actions results in old blog posts/news items? I'd be OK with any of these to solve those:

Trott commented 4 years ago

https://github.com/nodejs/community-committee/blob/master/GOVERNANCE.md should probably be https://github.com/nodejs/community-committee/tree/master/governance

https://github.com/nodejs/nodejs-ro should probably be removed along with all the other individual repos listed in that list. That is way too much information for a brief working group summary. Each of those repos is going away, slowly. Translation work happens elsewhere now. Link to CrowdIn maybe if it's not already there. But if you want to keep the change set small and hopefully uncontroversial, just remove https://github.com/nodejs/nodejs-ro and leave everything else for now.

For http://events.linuxfoundation.org/events/node-interactive, the link can be removed. The text can just be plain text with no link.

ovflowd commented 1 year ago

This shouldn't be relevant anymore. Inexistent links might exist, but for now there no feasible actions here, not to mention afaik we already fixed (within the website) all broken links.