OpenZeppelin / docs.openzeppelin.com

Source for the OpenZeppelin documentation site
https://docs.openzeppelin.com
45 stars 87 forks source link

Broken xref internal links are rendered as anchors to current page #142

Open spalladino opened 4 years ago

spalladino commented 4 years ago

An incorrect internal xref link, such as xref:upgrades::writing-contracts.adoc instead of xref:upgrades::writing-upgradeable.adoc (see https://github.com/OpenZeppelin/openzeppelin-sdk/commit/1b21b2946b889ae85651d8e7318ff2e8118a725c) is rendered as a link to https://docs.openzeppelin.com/cli/2.6/dependencies#upgrades::writing-contracts.adoc#use-upgradeable-packages.

This makes it impossible to detect broken links with a wget spider. We should either scan for these links in the generated html, or configure the asciidoc processor so that it fails if the xref target is not found.

frangio commented 4 years ago

Some discussion here: https://gitlab.com/antora/antora/issues/403

frangio commented 4 years ago

We can collect all of the links and find those that end in .adoc as a way to find the broken ones.

frangio commented 4 years ago

I compiled a list of pages and broken xrefs they contain using the procedure I described in the previous comment.

sdk/first
learn::deploy-and-interact.adoc

starter-kits/gsnkit
network-js:index.adoc

starter-kits/index
sdk::index.adoc
learn::on-daps.adoc

learn/building-a-dapp
network.js::api.adoc

learn/upgrading-smart-contracts
mainnet.adoc
mainnet.adoc

gsn-provider/0.1/gsn-faq
contracts:api:gsn.adoc
contracts:api:gsn.adoc
contracts:api:gsn.adoc
contracts:api:gsn.adoc
contracts:api:gsn.adoc
contracts:api:gsn.adoc

gsn-provider/0.1/interacting-with-relayhub
learn::sending-gassless-transactions.adoc

upgrades/2.7/creating-upgradeable-from-solidity
learn::deploy-and-interact.adoc

upgrades/2.6/creating-upgradeable-from-solidity
learn::deploy-and-interact.adoc

upgrades/2.8/creating-upgradeable-from-solidity
learn::deploy-and-interact.adoc

starter-kits/2.3/index
sdk::index.adoc
learn::on-daps.adoc

contracts/3.x-rc/releases-stability
api:drafts.adoc

contracts/3.x-rc/utilities
api:drafts.adoc
721.adoc

contracts/2.x/utilities
721.adoc

contracts/2.x/crowdsales
api:Crowdsale.adoc

cli/2.6/configuration
pattern.adoc
architecture.adoc

cli/2.6/faq
architecture.adoc

cli/2.6/publishing-ethereum-package
learn::public-staging.adoc
learn::on-upgrades.adoc
learn::on-upgrades.adoc
learn::public-staging.adoc

cli/2.6/deploying-with-create2
learn::deploy-and-interact.adoc

cli/2.6/getting-started
learn::deploy-and-interact.adoc

cli/2.7/configuration
pattern.adoc
architecture.adoc

cli/2.6/dependencies
upgrades::writing-contracts.adoc
learn::deploy-and-interact.adoc
learn::mainnet.adoc
writing-contracts.adoc

cli/2.7/faq
architecture.adoc

cli/2.7/publishing-ethereum-package
learn::public-staging.adoc
learn::on-upgrades.adoc
learn::on-upgrades.adoc
learn::public-staging.adoc

cli/2.6/index
using-dependencies.adoc

cli/2.7/dependencies
learn::deploy-and-interact.adoc
learn::mainnet.adoc

cli/2.7/getting-started
learn::deploy-and-interact.adoc

cli/2.7/deploying-with-create2
learn::deploy-and-interact.adoc

cli/2.8/configuration
pattern.adoc
architecture.adoc

cli/2.8/deploying-with-create2
learn::deploy-and-interact.adoc

cli/2.8/dependencies
learn::deploy-and-interact.adoc
learn::mainnet.adoc

cli/2.8/faq
architecture.adoc

cli/2.8/getting-started
learn::deploy-and-interact.adoc

cli/2.8/index
using-dependencies.adoc

cli/2.8/publishing-ethereum-package
learn::public-staging.adoc
learn::on-upgrades.adoc
learn::on-upgrades.adoc
learn::public-staging.adoc

contracts/2.x/api/drafts
ROOT:api-stability.adoc

cli/2.7/index
using-dependencies.adoc