From d240f63a379c5fc3a685d37b743ab984f15aa42f Mon Sep 17 00:00:00 2001 From: nprt Date: Fri, 3 Jan 2025 13:13:43 +0100 Subject: [PATCH 1/5] add new redirects --- .netlify/_redirects | 195 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) diff --git a/.netlify/_redirects b/.netlify/_redirects index f3d2a9214..5b00db817 100644 --- a/.netlify/_redirects +++ b/.netlify/_redirects @@ -1,5 +1,200 @@ # Redirects from what the browser requests to what we serve +# Redirect rule priority: https://docs.netlify.com/routing/redirects/#rule-processing-order +# Netlify rules are processed in a top-to-bottom manner. The first match will +# be processed first. This, efectivelly, ignores repeating rules. This is why +# the new redirects will take presedence over the old ones. + +# substrate.io -> polkadot.com migration +/build/application-development/ https://docs.polkadot.com/develop/development-pathways/#client-side-development 301! +/build/build-a-deterministic-runtime/ https://docs.polkadot.com/develop/parachains/deployment/build-deterministic-runtime/ 301! +/build/build-process/ https://docs.polkadot.com/develop/parachains/deployment/build-deterministic-runtime/ 301! +/build/chain-spec/ https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/ 301! +/build/custom-pallets/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/build/events-and-errors/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-events 301! +/build/genesis-configuration/ https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/#genesis-configuration-customization 301! +/build/libraries/ https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ 301! +/build/pallet-coupling/ https://docs.polkadot.com/ 301! +/build/randomness/ https://docs.polkadot.com/polkadot-protocol/basics/randomness/ 301! +/build/remote-procedure-calls/ https://docs.polkadot.com/ 301! +/build/runtime-storage/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-storage 301! +/build/smart-contracts-strategy/ https://docs.polkadot.com/develop/smart-contracts/ 301! +/build/troubleshoot-your-code/ https://docs.polkadot.com/develop/parachains/customize-parachain 301! +/build/tx-weights-fees/ https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ 301! +/build/origins/ https://docs.polkadot.com/ 301! +/build/ https://docs.polkadot.com/develop/ 301! +/community/article-bounties/ https://docs.polkadot.com/ 301! +/community/contributor-guidelines/ https://docs.polkadot.com/ 301! +/community/content-style-guide/ https://docs.polkadot.com/ 301! +/community/template-how-to-guide/ https://docs.polkadot.com/ 301! +/community/ https://docs.polkadot.com/ 301! +/deploy/deploy-on-a-test-network/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ 301! +/deploy/deployment-options/ https://docs.polkadot.com/infrastructure/ 301! +/deploy/keys-and-network-operations/ https://docs.polkadot.com/ 301! +/deploy/prepare-to-deploy/ https://docs.polkadot.com/infrastructure/ 301! +/deploy/ https://docs.polkadot.com/develop/parachains/deployment/ 301! +/design/decide-what-to-build/ https://docs.polkadot.com/develop/development-pathways/ 301! +/design/substrate-empowers-builders/ https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ 301! +/design/ https://docs.polkadot.com/develop/parachains/get-started 301! +/install/developer-tools/ https://docs.polkadot.com/develop/toolkit/ 301! +/install/linux/ https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#linux 301! +/install/macos/ https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#macos 301! +/install/rust-toolchain/ https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/ 301! +/install/troubleshoot-rust-issues/ https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#verifying-installation 301! +/install/windows/ https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#windows-wsl 301! +/install/ https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/ 301! +/learn/accounts-addresses-keys/ https://docs.polkadot.com/polkadot-protocol/basics/accounts/ 301! +/learn/architecture/ https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ 301! +/learn/blockchain-basics/ https://docs.polkadot.com/polkadot-protocol/basics 301! +/learn/consensus/ https://docs.polkadot.com/polkadot-protocol/architecture/polkadot-chain/pos-consensus/ 301! +/learn/cryptography/ https://docs.polkadot.com/polkadot-protocol/basics/cryptography/ 301! +/learn/light-clients-in-substrate-connect/ https://docs.polkadot.com/develop/toolkit 301! +/learn/offchain-operations/ https://docs.polkadot.com/ 301! +/learn/networks-and-nodes/ https://docs.polkadot.com/infrastructure/ 301! +/learn/rust-basics/ https://docs.polkadot.com/develop/parachains/get-started 301! +/learn/state-transitions-and-storage/ https://docs.polkadot.com/ 301! +/learn/transaction-lifecycle/ https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/transactions/#lifecycle-of-a-transaction 301! +/learn/runtime-development/ https://docs.polkadot.com/develop/parachains/customize-parachain/ 301! +/learn/transaction-types/ https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/ 301! +/learn/welcome-to-substrate/ https://docs.polkadot.com/develop/parachains/ 301! +/learn/what-can-you-build/ https://docs.polkadot.com/develop/development-pathways/ 301! +/learn/xcm-communication/ https://docs.polkadot.com/develop/interoperability/intro-to-xcm/ 301! +/learn/ https://docs.polkadot.com/polkadot-protocol/ 301! +/maintain/monitor/ https://docs.polkadot.com/develop/parachains/maintenance/runtime-metrics-monitoring/ 301! +/maintain/operate/ https://docs.polkadot.com/infrastructure 301! +/maintain/runtime-upgrades/ https://docs.polkadot.com/develop/parachains/maintenance/runtime-upgrades/ 301! +/maintain/upgrades/ https://docs.polkadot.com/infrastructure/running-a-validator/operational-tasks/upgrade-your-node 301! +/maintain/ https://docs.polkadot.com/develop/parachains/maintenance/ 301! +/quick-start/explore-the-code/ https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ 301! +/quick-start/modify-the-runtime/ https://docs.polkadot.com/develop/parachains/customize-parachain/ 301! +/quick-start/start-a-node/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/ 301! +/quick-start/substrate-at-a-glance/ https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ 301! +/quick-start/ https://docs.polkadot.com/develop/parachains/get-started/ 301! +/reference/account-data-structures/ https://docs.polkadot.com/polkadot-protocol/basics/accounts/ 301! +/reference/address-formats/ https://docs.polkadot.com/polkadot-protocol/basics/accounts/#address-formats 301! +/reference/frame-pallets/ https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ 301! +/reference/glossary/ https://docs.polkadot.com/polkadot-protocol/glossary/ 301! +/reference/runtime-apis/ https://docs.polkadot.com/ 301! +/reference/rust-api/ https://docs.polkadot.com/ 301! +/reference/transaction-format/ https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/transactions/#transaction-formats 301! +/reference/ https://docs.polkadot.com/polkadot-protocol/glossary/ 301! +/test/benchmark/ https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/ 301! +/test/check-runtime/ https://docs.polkadot.com/develop/parachain/testing 301! +/test/debug/ https://docs.polkadot.com/develop/parachain/testing 301! +/test/set-up-a-test-network/ https://docs.polkadot.com/tutorials/polkadot-sdk/testing/spawn-basic-chain/ 301! +/test/simulate-parachains/ https://docs.polkadot.com/tutorials/polkadot-sdk/testing/spawn-basic-chain/ 301! +/test/unit-testing/ https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ 301! +/test/ https://docs.polkadot.com/develop/parachains/testing/ 301! +/tutorials/ https://docs.polkadot.com/tutorials/ 301! +/reference/how-to-guides/ https://docs.polkadot.com/tutorials/ 301! +/tutorials/build-a-blockchain/add-trusted-nodes/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/spin-your-nodes/ 301! +/tutorials/build-a-blockchain/authorize-specific-nodes/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/ 301! +/tutorials/build-a-blockchain/build-local-blockchain/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/ 301! +/tutorials/build-a-blockchain/monitor-node-metrics/ https://docs.polkadot.com/develop/parachains/maintenance/runtime-metrics-monitoring/ 301! +/tutorials/build-a-blockchain/simulate-network/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/connect-multiple-nodes/ 301! +/tutorials/build-a-blockchain/upgrade-a-running-network/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/upgrade-a-running-network/ 301! +/tutorials/build-a-blockchain/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/ 301! +/tutorials/build-a-parachain/acquire-a-testnet-slot/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ 301! +/tutorials/build-a-parachain/connect-a-local-parachain/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/prepare-parachain/ 301! +/tutorials/build-a-parachain/prepare-a-local-relay-chain/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/prepare-relay-chain/ 301! +/tutorials/build-a-parachain/xcm/ https://docs.polkadot.com/develop/interoperability/send-messages/ 301! +/tutorials/build-a-parachain/open-message-passing-channels/ https://docs.polkadot.com/tutorials/interoperability/xcm-channels/ 301! +/tutorials/build-a-parachain/transfer-assets-with-xcm/ https://docs.polkadot.com/develop/interoperability/send-messages/ 301! +/tutorials/build-a-parachain/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/ 301! +/tutorials/build-application-logic/add-a-pallet/ https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/ 301! +/tutorials/build-application-logic/add-offchain-workers/ https://docs.polkadot.com/ 301! +/tutorials/build-application-logic/publish-custom-pallets/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/tutorials/build-application-logic/use-macros-in-a-custom-pallet/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/tutorials/build-application-logic/specify-the-origin-for-a-call/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/tutorials/build-application-logic/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/tutorials/collectibles-workshop/01-prepare/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/02-orientation/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/03-create-pallet/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/tutorials/collectibles-workshop/04-import-traits/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/05-add-storage-items/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/06-first-functions/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ 301! +/tutorials/collectibles-workshop/07-more-functions/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/08-add-collectibles-to-runtime/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/detours/learn-rust/ https://docs.polkadot.com/ 301! +/tutorials/collectibles-workshop/detours/select-ui-tools/ https://docs.polkadot.com/develop/toolkit/ 301! +/tutorials/collectibles-workshop/detours/set-up-app-locally/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/#interact-with-the-node 301! +/tutorials/collectibles-workshop/detours/ https://docs.polkadot.com/ 301! +/tutorials/collectibles-workshop/runtime-and-pallets/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/collectibles-workshop/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/integrate-with-tools/access-evm-accounts/ https://docs.polkadot.com/develop/parachains/ 301! +/tutorials/integrate-with-tools/evm-integration/ https://docs.polkadot.com/develop/parachains/customize-parachain/add-smart-contract-functionality/#evm-smart-contracts 301! +/tutorials/integrate-with-tools/explore-sidecar-endpoints/ https://docs.polkadot.com/develop/toolkit/api-libraries/sidecar/#sidecar-api 301! +/tutorials/integrate-with-tools/integrate-a-light-client-node/ https://docs.polkadot.com/develop/parachain/testing 301! +/tutorials/integrate-with-tools/ https://docs.polkadot.com/develop/toolkit/ 301! +/tutorials/smart-contracts/build-a-token-contract/ https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ 301! +/tutorials/smart-contracts/prepare-your-first-contract/ https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ 301! +/tutorials/smart-contracts/develop-a-smart-contract/ https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ 301! +/tutorials/smart-contracts/use-maps-for-storing-values/ https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ 301! +/tutorials/smart-contracts/troubleshoot-smart-contracts/ https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ 301! +/tutorials/smart-contracts/ https://docs.polkadot.com/develop/smart-contracts/ 301! +/reference/command-line-tools/archive/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/memory-profiler/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/node-template/ https://docs.polkadot.com/develop/parachains/get-started/build-custom-parachains/ 301! +/reference/command-line-tools/polkadot-apps/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/polkadot-launch/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/sidecar/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/srtool/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/subkey/ https://docs.polkadot.com/polkadot-protocol/basics/accounts/#using-subkey 301! +/reference/command-line-tools/subxt/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/try-runtime/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/tx-wrapper/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/command-line-tools/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/how-to-guides/basics/configure-genesis-state/ https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/ 301! +/reference/how-to-guides/basics/configure-runtime-constants/ https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/#parameter-configuration-for-pallets 301! +/reference/how-to-guides/basics/customize-a-chain-specification/ https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/#creating-a-custom-chain-specification 301! +/reference/how-to-guides/basics/import-a-pallet/ https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/ 301! +/reference/how-to-guides/basics/use-helper-functions/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/basics/ https://docs.polkadot.com/develop/parachains/customize-parachain/ 301! +/reference/how-to-guides/consensus-models/add-proof-of-work-consensus/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/consensus-models/create-a-hybrid-node/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/consensus-models/ https://docs.polkadot.com/polkadot-protocol/architecture/parachains/consensus/ 301! +/reference/how-to-guides/pallet-design/configure-crowdfunding/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/pallet-design/create-a-storage-structure/ https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-storage 301! +/reference/how-to-guides/pallet-design/implement-lockable-currency/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/pallet-design/incorporate-randomness/ https://docs.polkadot.com/polkadot-protocol/basics/randomness/ 301! +/reference/how-to-guides/pallet-design/ https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ 301! +/reference/how-to-guides/parachains/add-paranodes/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/spin-your-nodes/ 301! +/reference/how-to-guides/parachains/add-hrmp-channels/ https://docs.polkadot.com/tutorials/interoperability/xcm-channels/ 301! +/reference/how-to-guides/parachains/auctions-and-crowdloans/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/parachains/connect-to-a-relay-chain/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ 301! +/reference/how-to-guides/parachains/select-collators/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/parachains/upgrade-a-parachain/ https://docs.polkadot.com/develop/parachains/maintenance/runtime-upgrades/ 301! +/reference/how-to-guides/parachains/convert-a-solo-chain/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/parachains/prepare-to-launch/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/parachains/ https://docs.polkadot.com/develop/parachains/customize-parachain/ 301! +/reference/how-to-guides/storage-migrations/basic-storage-migration/ https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ 301! +/reference/how-to-guides/testing/set-up-basic-tests/ https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ 301! +/reference/how-to-guides/testing/test-a-transfer-function/ https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ 301! +/reference/how-to-guides/testing/ https://docs.polkadot.com/develop/parachains/testing/ 301! +/reference/how-to-guides/tools/create-a-txwrapper/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/tools/use-sidecar/ https://docs.polkadot.com/develop/toolkit/api-libraries/sidecar/ 301! +/reference/how-to-guides/tools/use-try-runtime/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/tools/verify-wasm/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/tools/ https://docs.polkadot.com/develop/toolkit/ 301! +/reference/how-to-guides/weights/add-benchmarks/ https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/ 301! +/reference/how-to-guides/weights/calculate-fees/ https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ 301! +/reference/how-to-guides/weights/ https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/#benchmark-testing-and-weight 301! +/reference/how-to-guides/storage-migrations/trigger-migration/ https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ 301! +/reference/how-to-guides/storage-migrations/ https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ 301! +/reference/how-to-guides/offchain-workers/offchain-http-requests/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/offchain-workers/offchain-indexing/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/offchain-workers/offchain-local-storage/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/offchain-workers/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/pallet-design/use-loose-coupling/ https://docs.polkadot.com/ 301! +/reference/how-to-guides/pallet-design/use-tight-coupling/ https://docs.polkadot.com/ 301! +/reference/frame-macros/ https://docs.polkadot.com/develop/parachains/customize-parachain/overview/#pallet-structure 301! +/reference/scale-codec/ https://docs.polkadot.com/polkadot-protocol/basics/data-encoding/#scale-codec-libraries 301! +/reference/xcm-reference/ https://docs.polkadot.com/ 301! +/polkadot-sdk/ https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ 301! +/ https://docs.polkadot.com/ 301! + + +# Old rules /rustdocs https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html 301! /how-to-guides /reference/ 301! From 6fb5170f437a58da7e970ec68fcedb6dede1db04 Mon Sep 17 00:00:00 2001 From: nprt Date: Fri, 3 Jan 2025 13:40:39 +0100 Subject: [PATCH 2/5] add redirect everything --- .netlify/_redirects | 1 + 1 file changed, 1 insertion(+) diff --git a/.netlify/_redirects b/.netlify/_redirects index 5b00db817..88578fbaf 100644 --- a/.netlify/_redirects +++ b/.netlify/_redirects @@ -192,6 +192,7 @@ /reference/xcm-reference/ https://docs.polkadot.com/ 301! /polkadot-sdk/ https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ 301! / https://docs.polkadot.com/ 301! +/* https://docs.polkadot.com/ 301! # Old rules From 8ea4e703764da406d8e2f49fd701f895d443a9ff Mon Sep 17 00:00:00 2001 From: nprt Date: Tue, 28 Jan 2025 07:31:24 +0100 Subject: [PATCH 3/5] create direct community redirects --- .netlify/_redirects | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.netlify/_redirects b/.netlify/_redirects index 88578fbaf..89880b3f6 100644 --- a/.netlify/_redirects +++ b/.netlify/_redirects @@ -23,11 +23,11 @@ /build/tx-weights-fees/ https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ 301! /build/origins/ https://docs.polkadot.com/ 301! /build/ https://docs.polkadot.com/develop/ 301! -/community/article-bounties/ https://docs.polkadot.com/ 301! -/community/contributor-guidelines/ https://docs.polkadot.com/ 301! -/community/content-style-guide/ https://docs.polkadot.com/ 301! -/community/template-how-to-guide/ https://docs.polkadot.com/ 301! -/community/ https://docs.polkadot.com/ 301! +/community/article-bounties/ https://polkadot.com/community 301! +/community/contributor-guidelines/ https://polkadot.com/community 301! +/community/content-style-guide/ https://polkadot.com/community 301! +/community/template-how-to-guide/ https://polkadot.com/community 301! +/community/ https://polkadot.com/community 301! /deploy/deploy-on-a-test-network/ https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ 301! /deploy/deployment-options/ https://docs.polkadot.com/infrastructure/ 301! /deploy/keys-and-network-operations/ https://docs.polkadot.com/ 301! From b5cc6f48b8ea571cb5cc8e7df8e362416511ab82 Mon Sep 17 00:00:00 2001 From: nprt Date: Tue, 4 Feb 2025 10:38:41 +0100 Subject: [PATCH 4/5] add a 404 url checker script --- .github/scripts/find_redirect_404s.sh | 43 +++++ .github/scripts/polkadot_com_redirects | 178 +++++++++++++++++++++ .github/workflows/404_redirect_checker.yml | 27 ++++ 3 files changed, 248 insertions(+) create mode 100755 .github/scripts/find_redirect_404s.sh create mode 100644 .github/scripts/polkadot_com_redirects create mode 100644 .github/workflows/404_redirect_checker.yml diff --git a/.github/scripts/find_redirect_404s.sh b/.github/scripts/find_redirect_404s.sh new file mode 100755 index 000000000..d50f1f541 --- /dev/null +++ b/.github/scripts/find_redirect_404s.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Takes a list of URLs from a file, and using `curl` checks which of them +# return 404 response code. +# It is used to keep an eye on docs.substrate.io redirects towards +# docs.polkadot.com. + +# Check if curl is installed +if ! command -v curl &> /dev/null; then + echo "Error: curl is required but not installed" + exit 1 +fi + +# Check if input file is provided +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + echo "url_list_file: Text file containing one URL per line" + exit 1 +fi + +input_file="$1" + +# Check if input file exists +if [ ! -f "$input_file" ]; then + echo "Error: File '$input_file' not found" + exit 1 +fi + +# Process each URL +echo "The following polkadot.com URLs are missing:" +while IFS= read -r url || [ -n "$url" ]; do + # Skip empty lines + [ -z "$url" ] && continue + + # Trim whitespace + url=$(echo "$url" | xargs) + + # Get HTTP response code with timeout + response=$(curl -o /dev/null -s -w "%{http_code}" -m 10 "$url") + + if [ "$response" = "404" ]; then + echo "$url" + fi +done < "$input_file" diff --git a/.github/scripts/polkadot_com_redirects b/.github/scripts/polkadot_com_redirects new file mode 100644 index 000000000..e80c55fbf --- /dev/null +++ b/.github/scripts/polkadot_com_redirects @@ -0,0 +1,178 @@ +https://docs.polkadot.com/develop/development-pathways/#client-side-development +https://docs.polkadot.com/develop/parachains/deployment/build-deterministic-runtime/ +https://docs.polkadot.com/develop/parachains/deployment/build-deterministic-runtime/ +https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-events +https://docs.polkadot.com/develop/ +https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-storage +https://docs.polkadot.com/develop/parachains/customize-parachain +https://docs.polkadot.com/ +https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ +https://docs.polkadot.com/develop/parachains/deployment/ +https://docs.polkadot.com/ +https://docs.polkadot.com/infrastructure/ +https://docs.polkadot.com/infrastructure/ +https://docs.polkadot.com/develop/development-pathways/ +https://docs.polkadot.com/develop/parachains/get-started +https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/ +https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#windows-wsl +https://docs.polkadot.com/polkadot-protocol/basics/accounts/ +https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ +https://docs.polkadot.com/polkadot-protocol/basics +https://docs.polkadot.com/polkadot-protocol/architecture/polkadot-chain/pos-consensus/ +https://docs.polkadot.com/polkadot-protocol/basics/cryptography/ +https://docs.polkadot.com/polkadot-protocol/ +https://docs.polkadot.com/develop/toolkit +https://docs.polkadot.com/infrastructure/ +https://docs.polkadot.com/develop/parachains/get-started +https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/transactions/#lifecycle-of-a-transaction +https://docs.polkadot.com/develop/parachains/customize-parachain/ +https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/development-pathways/ +https://docs.polkadot.com/develop/interoperability/intro-to-xcm/ +https://docs.polkadot.com/develop/parachains/maintenance/ +https://docs.polkadot.com/develop/parachains/maintenance/runtime-metrics-monitoring/ +https://docs.polkadot.com/infrastructure +https://docs.polkadot.com/develop/parachains/maintenance/runtime-upgrades/ +https://docs.polkadot.com/infrastructure/running-a-validator/operational-tasks/upgrade-your-node +https://docs.polkadot.com/develop/parachains/customize-parachain/ +https://docs.polkadot.com/develop/parachains/get-started/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/ +https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ +https://docs.polkadot.com/polkadot-protocol/basics/accounts/ +https://docs.polkadot.com/polkadot-protocol/basics/accounts/#address-formats +https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ +https://docs.polkadot.com/polkadot-protocol/glossary/ +https://docs.polkadot.com/polkadot-protocol/glossary/ +https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/transactions/#transaction-formats +https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/ +https://docs.polkadot.com/develop/parachain/testing +https://docs.polkadot.com/develop/parachain/testing +https://docs.polkadot.com/develop/parachains/testing/ +https://docs.polkadot.com/tutorials/polkadot-sdk/testing/spawn-basic-chain/ +https://docs.polkadot.com/tutorials/polkadot-sdk/testing/spawn-basic-chain/ +https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ +https://docs.polkadot.com/tutorials/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/spin-your-nodes/ +https://docs.polkadot.com/tutorials/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/ +https://docs.polkadot.com/develop/parachains/maintenance/runtime-metrics-monitoring/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/connect-multiple-nodes/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/upgrade-a-running-network/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/prepare-relay-chain/ +https://docs.polkadot.com/develop/interoperability/send-messages/ +https://docs.polkadot.com/tutorials/interoperability/xcm-channels/ +https://docs.polkadot.com/develop/interoperability/send-messages/ +https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/ +https://docs.polkadot.com/develop/parachains/customize-parachain/add-smart-contract-functionality/#evm-smart-contracts +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/parachain/testing +https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ +https://docs.polkadot.com/develop/smart-contracts/ +https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ +https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ +https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ +https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/ +https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/#parameter-configuration-for-pallets +https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ +https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/#creating-a-custom-chain-specification +https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/ +https://docs.polkadot.com/develop/parachains/customize-parachain/ +https://docs.polkadot.com/ +https://docs.polkadot.com/polkadot-protocol/architecture/parachains/consensus/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-storage +https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ +https://docs.polkadot.com/polkadot-protocol/basics/randomness/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/spin-your-nodes/ +https://docs.polkadot.com/tutorials/interoperability/xcm-channels/ +https://docs.polkadot.com/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ +https://docs.polkadot.com/develop/parachains/customize-parachain/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/parachains/maintenance/runtime-upgrades/ +https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ +https://docs.polkadot.com/develop/parachains/testing/ +https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ +https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/toolkit/api-libraries/sidecar/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/ +https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ +https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/#benchmark-testing-and-weight +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/toolkit/ +https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ +https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/#interact-with-the-node +https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/ +https://docs.polkadot.com/polkadot-protocol/basics/randomness/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/parachains/get-started/build-custom-parachains/ +https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/#genesis-configuration-customization +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/parachains/customize-parachain/overview/#pallet-structure +https://docs.polkadot.com/develop/toolkit/api-libraries/sidecar/#sidecar-api +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ +https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#verifying-installation +https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#macos +https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/prepare-parachain/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/ +https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ +https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ +https://docs.polkadot.com/develop/smart-contracts/ +https://docs.polkadot.com/polkadot-protocol/basics/accounts/#using-subkey +https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#linux +https://docs.polkadot.com/ +https://docs.polkadot.com/polkadot-protocol/basics/data-encoding/#scale-codec-libraries +https://docs.polkadot.com/ diff --git a/.github/workflows/404_redirect_checker.yml b/.github/workflows/404_redirect_checker.yml new file mode 100644 index 000000000..554a7b812 --- /dev/null +++ b/.github/workflows/404_redirect_checker.yml @@ -0,0 +1,27 @@ +--- +name: Check Redirect 404s + +on: + push: + workflow_dispatch: + inputs: + redirect_file: + description: 'Redirect file to check' + required: true + type: string + default: '.github/scripts/polkadot_com_redirects' + schedule: + - cron: '0 14 * * 1' # Every Monday at 2pm UTC + +jobs: + check-redirects: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run redirect checker + run: .github/scripts/find_redirect_404s.sh ${REDIRECT_FILE} + env: + REDIRECT_FILE: ${{ github.event.inputs.redirect_file || '.github/scripts/polkadot_com_redirects' }} From b81ee8876a51c7af9ec91c0fb730be1b0690764a Mon Sep 17 00:00:00 2001 From: nprt Date: Tue, 11 Feb 2025 10:25:25 +0100 Subject: [PATCH 5/5] read urls from netlify redirects --- .github/scripts/find_redirect_404s.sh | 32 ++-- .github/scripts/polkadot_com_redirects | 178 --------------------- .github/workflows/404_redirect_checker.yml | 4 +- 3 files changed, 17 insertions(+), 197 deletions(-) delete mode 100644 .github/scripts/polkadot_com_redirects diff --git a/.github/scripts/find_redirect_404s.sh b/.github/scripts/find_redirect_404s.sh index d50f1f541..aec5ea800 100755 --- a/.github/scripts/find_redirect_404s.sh +++ b/.github/scripts/find_redirect_404s.sh @@ -1,19 +1,17 @@ #!/bin/bash -# Takes a list of URLs from a file, and using `curl` checks which of them -# return 404 response code. -# It is used to keep an eye on docs.substrate.io redirects towards -# docs.polkadot.com. +# Takes a list of docs.substrate.io URLs from the netlify _redirects file, +# and checks which of them return 404 response code after following redirects. # Check if curl is installed if ! command -v curl &> /dev/null; then - echo "Error: curl is required but not installed" + echo "::error::Error: curl is required but not installed" exit 1 fi # Check if input file is provided if [ "$#" -ne 1 ]; then - echo "Usage: $0 " - echo "url_list_file: Text file containing one URL per line" + echo "::error::Usage: $0 " + echo "::error::url_list_file: Invalid number of arguments" exit 1 fi @@ -21,23 +19,25 @@ input_file="$1" # Check if input file exists if [ ! -f "$input_file" ]; then - echo "Error: File '$input_file' not found" + echo "::error::Error: File '$input_file' not found" exit 1 fi # Process each URL -echo "The following polkadot.com URLs are missing:" -while IFS= read -r url || [ -n "$url" ]; do +echo "::warning::The following polkadot.com URLs are missing:" +while IFS= read -r line || [ -n "$line" ]; do # Skip empty lines - [ -z "$url" ] && continue + [ -z "$line" ] && continue - # Trim whitespace - url=$(echo "$url" | xargs) + # Extract path and destination + path=$(echo "$line" | awk '{print $1}' | xargs) + destination=$(echo "$line" | awk '{print $2}' | xargs) + source_url="https://docs.substrate.io${path}" - # Get HTTP response code with timeout - response=$(curl -o /dev/null -s -w "%{http_code}" -m 10 "$url") + # Get HTTP response code with timeout, following redirects + response=$(curl -L -o /dev/null -s -w "%{http_code}" -m 10 "$destination") if [ "$response" = "404" ]; then - echo "$url" + echo "::warning::$destination" fi done < "$input_file" diff --git a/.github/scripts/polkadot_com_redirects b/.github/scripts/polkadot_com_redirects deleted file mode 100644 index e80c55fbf..000000000 --- a/.github/scripts/polkadot_com_redirects +++ /dev/null @@ -1,178 +0,0 @@ -https://docs.polkadot.com/develop/development-pathways/#client-side-development -https://docs.polkadot.com/develop/parachains/deployment/build-deterministic-runtime/ -https://docs.polkadot.com/develop/parachains/deployment/build-deterministic-runtime/ -https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-events -https://docs.polkadot.com/develop/ -https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-storage -https://docs.polkadot.com/develop/parachains/customize-parachain -https://docs.polkadot.com/ -https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ -https://docs.polkadot.com/develop/parachains/deployment/ -https://docs.polkadot.com/ -https://docs.polkadot.com/infrastructure/ -https://docs.polkadot.com/infrastructure/ -https://docs.polkadot.com/develop/development-pathways/ -https://docs.polkadot.com/develop/parachains/get-started -https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/ -https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#windows-wsl -https://docs.polkadot.com/polkadot-protocol/basics/accounts/ -https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ -https://docs.polkadot.com/polkadot-protocol/basics -https://docs.polkadot.com/polkadot-protocol/architecture/polkadot-chain/pos-consensus/ -https://docs.polkadot.com/polkadot-protocol/basics/cryptography/ -https://docs.polkadot.com/polkadot-protocol/ -https://docs.polkadot.com/develop/toolkit -https://docs.polkadot.com/infrastructure/ -https://docs.polkadot.com/develop/parachains/get-started -https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/transactions/#lifecycle-of-a-transaction -https://docs.polkadot.com/develop/parachains/customize-parachain/ -https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/development-pathways/ -https://docs.polkadot.com/develop/interoperability/intro-to-xcm/ -https://docs.polkadot.com/develop/parachains/maintenance/ -https://docs.polkadot.com/develop/parachains/maintenance/runtime-metrics-monitoring/ -https://docs.polkadot.com/infrastructure -https://docs.polkadot.com/develop/parachains/maintenance/runtime-upgrades/ -https://docs.polkadot.com/infrastructure/running-a-validator/operational-tasks/upgrade-your-node -https://docs.polkadot.com/develop/parachains/customize-parachain/ -https://docs.polkadot.com/develop/parachains/get-started/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/ -https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ -https://docs.polkadot.com/polkadot-protocol/basics/accounts/ -https://docs.polkadot.com/polkadot-protocol/basics/accounts/#address-formats -https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ -https://docs.polkadot.com/polkadot-protocol/glossary/ -https://docs.polkadot.com/polkadot-protocol/glossary/ -https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/transactions/#transaction-formats -https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/ -https://docs.polkadot.com/develop/parachain/testing -https://docs.polkadot.com/develop/parachain/testing -https://docs.polkadot.com/develop/parachains/testing/ -https://docs.polkadot.com/tutorials/polkadot-sdk/testing/spawn-basic-chain/ -https://docs.polkadot.com/tutorials/polkadot-sdk/testing/spawn-basic-chain/ -https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ -https://docs.polkadot.com/tutorials/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/spin-your-nodes/ -https://docs.polkadot.com/tutorials/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/ -https://docs.polkadot.com/develop/parachains/maintenance/runtime-metrics-monitoring/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/connect-multiple-nodes/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/upgrade-a-running-network/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/prepare-relay-chain/ -https://docs.polkadot.com/develop/interoperability/send-messages/ -https://docs.polkadot.com/tutorials/interoperability/xcm-channels/ -https://docs.polkadot.com/develop/interoperability/send-messages/ -https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/ -https://docs.polkadot.com/develop/parachains/customize-parachain/add-smart-contract-functionality/#evm-smart-contracts -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/parachain/testing -https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ -https://docs.polkadot.com/develop/smart-contracts/ -https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ -https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ -https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ -https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/ -https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/#parameter-configuration-for-pallets -https://docs.polkadot.com/develop/smart-contracts/wasm-ink/ -https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/#creating-a-custom-chain-specification -https://docs.polkadot.com/develop/parachains/customize-parachain/add-existing-pallets/ -https://docs.polkadot.com/develop/parachains/customize-parachain/ -https://docs.polkadot.com/ -https://docs.polkadot.com/polkadot-protocol/architecture/parachains/consensus/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/#pallet-storage -https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ -https://docs.polkadot.com/polkadot-protocol/basics/randomness/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/spin-your-nodes/ -https://docs.polkadot.com/tutorials/interoperability/xcm-channels/ -https://docs.polkadot.com/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/acquire-a-testnet-slot/ -https://docs.polkadot.com/develop/parachains/customize-parachain/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/parachains/maintenance/runtime-upgrades/ -https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ -https://docs.polkadot.com/develop/parachains/testing/ -https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ -https://docs.polkadot.com/develop/parachains/customize-parachain/pallet-testing/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/toolkit/api-libraries/sidecar/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/ -https://docs.polkadot.com/polkadot-protocol/basics/blocks-transactions-fees/fees/ -https://docs.polkadot.com/develop/parachains/customize-parachain/benchmarking/#benchmark-testing-and-weight -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/toolkit/ -https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ -https://docs.polkadot.com/develop/parachains/maintenance/storage-migrations/ -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/local-chain/launch-a-local-solochain/#interact-with-the-node -https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/ -https://docs.polkadot.com/polkadot-protocol/basics/randomness/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/parachains/get-started/build-custom-parachains/ -https://docs.polkadot.com/develop/parachains/deployment/generate-chain-specs/#genesis-configuration-customization -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/parachains/customize-parachain/overview/#pallet-structure -https://docs.polkadot.com/develop/toolkit/api-libraries/sidecar/#sidecar-api -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/parachains/get-started/intro-polkadot-sdk/ -https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#verifying-installation -https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#macos -https://docs.polkadot.com/tutorials/polkadot-sdk/parachains/connect-to-relay-chain/prepare-parachain/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/ -https://docs.polkadot.com/develop/parachains/customize-parachain/overview/ -https://docs.polkadot.com/develop/parachains/customize-parachain/make-custom-pallet/ -https://docs.polkadot.com/develop/smart-contracts/ -https://docs.polkadot.com/polkadot-protocol/basics/accounts/#using-subkey -https://docs.polkadot.com/develop/parachains/get-started/install-polkadot-sdk/#linux -https://docs.polkadot.com/ -https://docs.polkadot.com/polkadot-protocol/basics/data-encoding/#scale-codec-libraries -https://docs.polkadot.com/ diff --git a/.github/workflows/404_redirect_checker.yml b/.github/workflows/404_redirect_checker.yml index 554a7b812..baf884636 100644 --- a/.github/workflows/404_redirect_checker.yml +++ b/.github/workflows/404_redirect_checker.yml @@ -22,6 +22,4 @@ jobs: uses: actions/checkout@v4 - name: Run redirect checker - run: .github/scripts/find_redirect_404s.sh ${REDIRECT_FILE} - env: - REDIRECT_FILE: ${{ github.event.inputs.redirect_file || '.github/scripts/polkadot_com_redirects' }} + run: .github/scripts/find_redirect_404s.sh .netlify/_redirects