Browse Source

Documentation - update dead/redirected links

LB Johnston 2 years ago
parent
commit
2e8709e0d6

+ 1 - 0
CHANGELOG.txt

@@ -54,6 +54,7 @@ Changelog
  * Fix: Add additional checks for duplicate form field `clean_name` values in the Form Builder validation and increase performance of checks (Dan Bentley)
  * Fix: Use correct color for labels of radio and checkbox fields (Steven Steinwand)
  * Fix: Adjust spacing of fields’ error messages and position in tables (Steven Steinwand)
+ * Fix: Update dead or redirected links throughout the documentation (LB (Ben) Johnston)
 
 4.0.3 (xx.xx.xxxx) - IN DEVELOPMENT
 ~~~~~~~~~~~~~~~~~~

+ 1 - 1
README.md

@@ -134,7 +134,7 @@ If you're a Python or Django developer, fork the repo and get stuck in! We have
 
 You might like to start by reviewing the [contributing guidelines](https://docs.wagtail.org/en/latest/contributing/index.html) and checking issues with the [good first issue](https://github.com/wagtail/wagtail/labels/good%20first%20issue) label.
 
-We also welcome translations for Wagtail's interface. Translation work should be submitted through [Transifex](https://www.transifex.com/torchbox/wagtail/).
+We also welcome translations for Wagtail's interface. Translation work should be submitted through [Transifex](https://explore.transifex.com/torchbox/wagtail/).
 
 ### 🔓 License
 

+ 1 - 1
client/scss/core.scss

@@ -27,7 +27,7 @@ REFERENCE
 SCSS: https://sass-lang.com/guide
 ITCSS: https://www.creativebloq.com/web-design/manage-large-css-projects-itcss-101517528
 Sass 7-1 pattern: https://gist.github.com/rveitch/84cea9650092119527bc
-BEM: http://getbem.com/
+BEM: https://getbem.com/
 
 
 OTHER PREFIXES

+ 2 - 2
docs/README.md

@@ -1,6 +1,6 @@
 # Wagtail docs
 
-These are Sphinx docs, automatically built at https://docs.wagtail.org when the `main` branch is committed to Github. To build them locally, install Wagtail's development requirements (in the root Wagtail directory):
+These are Sphinx docs, automatically built at [https://docs.wagtail.org](https://docs.wagtail.org) when the `main` branch is committed to Github. To build them locally, install Wagtail's development requirements (in the root Wagtail directory):
 
     pip install -e .[testing,docs]
 
@@ -14,4 +14,4 @@ To rebuild automatically while editing the documentation, from this directory ru
 
     sphinx-autobuild . _build
 
-The online editor at http://rst.ninjs.org/ is a helpful tool for checking reStructuredText syntax.
+The online [MyST playground at Curvenote](https://curvenote.com/blog/working-locally-with-myst-markdown#cFcGTrnCiH) or the [MyST-Markdown VS Code Extension](https://marketplace.visualstudio.com/items?itemName=ExecutableBookProject.myst-highlight) are helpful tools for working with the MyST syntax.

+ 2 - 2
docs/advanced_topics/accessibility_considerations.md

@@ -116,9 +116,9 @@ The [Form builder](form_builder) uses Django’s forms API. Here are considerati
 -   Take the time to group related fields together in `fieldset`, with an appropriate `legend`, in particular for radios and checkboxes (see Django ticket [#32338](https://code.djangoproject.com/ticket/32338)).
 -   If relevant, use the appropriate `autocomplete` and `autocapitalize` attributes.
 -   For Date and Datetime fields, make sure to display the expected format or an example value (see Django ticket [#32340](https://code.djangoproject.com/ticket/32340)). Or use [input type="date"](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date).
--   For Number fields, consider whether `input type="number"` really is appropriate, or whether there may be [better alternatives such as inputmode](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers).
+-   For Number fields, consider whether `input type="number"` really is appropriate, or whether there may be [better alternatives such as inputmode](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/).
 
-Make sure to test your forms’ implementation with assistive technologies, and review [official W3C guidance on accessible forms development](https://www.w3.org/WAI/tutorials/forms) for further information.
+Make sure to test your forms’ implementation with assistive technologies, and review [official W3C guidance on accessible forms development](https://www.w3.org/WAI/tutorials/forms/) for further information.
 
 (authoring_accessible_content)=
 

+ 2 - 2
docs/advanced_topics/add_to_django_project.md

@@ -113,10 +113,10 @@ Wagtail requires several Django app modules, third-party apps, and defines sever
 ### Third-Party Apps
 
 **`taggit`**  
- Tagging framework for Django. This is used internally within Wagtail for image and document tagging and is available for your own models as well. See [](tagging) for a Wagtail model recipe or the [Taggit Documentation](https://django-taggit.readthedocs.org/en/latest/index.html).
+ Tagging framework for Django. This is used internally within Wagtail for image and document tagging and is available for your own models as well. See [](tagging) for a Wagtail model recipe or the [Taggit Documentation](https://django-taggit.readthedocs.io/en/stable/).
 
 **`modelcluster`**  
- Extension of Django ForeignKey relation functionality, which is used in Wagtail pages for on-the-fly related object creation. For more information, see [](inline_panels) or [the django-modelcluster github project page](https://github.com/torchbox/django-modelcluster).
+ Extension of Django ForeignKey relation functionality, which is used in Wagtail pages for on-the-fly related object creation. For more information, see [](inline_panels) or [the django-modelcluster github project page](https://github.com/wagtail/django-modelcluster).
 
 ## URL Patterns
 

+ 1 - 1
docs/advanced_topics/api/v2/configuration.md

@@ -139,7 +139,7 @@ fields, you must select the `blog.BlogPage` type using the `?type`
 
 ### Custom serializers
 
-[Serializers](https://www.django-rest-framework.org/api-guide/fields) are used to convert the database representation of a model into
+[Serializers](https://www.django-rest-framework.org/api-guide/fields/) are used to convert the database representation of a model into
 JSON format. You can override the serializer for any field using the
 `serializer` keyword argument:
 

+ 3 - 3
docs/advanced_topics/deploying.md

@@ -7,13 +7,13 @@ See the section on [performance](performance) for the non-Python services we rec
 
 ## On Divio Cloud
 
-[Divio Cloud](https://divio.com/) is a Dockerised cloud hosting platform for Python/Django that allows you to launch and deploy Wagtail projects in minutes.
+[Divio Cloud](https://www.divio.com/) is a Dockerised cloud hosting platform for Python/Django that allows you to launch and deploy Wagtail projects in minutes.
 With a free account, you can create a Wagtail project. Choose from a:
 
--   [site based on the Wagtail Bakery project](https://divio.com/wagtail), or
+-   [site based on the Wagtail Bakery project](https://www.divio.com/wagtail/), or
 -   [brand new Wagtail project](https://control.divio.com/control/project/create) (see the [how to get started notes](https://docs.divio.com/en/latest/introduction/wagtail/)).
 
-Divio Cloud also hosts a [live Wagtail Bakery demo](https://divio.com/wagtail) (no account required).
+Divio Cloud also hosts a [live Wagtail Bakery demo](https://www.divio.com/wagtail/) (no account required).
 
 ## On PythonAnywhere
 

+ 2 - 2
docs/advanced_topics/i18n.md

@@ -679,9 +679,9 @@ For a comparison of these options, see AccordBox's blog post
 
 ## Wagtail admin translations
 
-The Wagtail admin backend has been translated into many different languages. You can find a list of currently available translations on Wagtail's [Transifex page](https://www.transifex.com/torchbox/wagtail/). (Note: if you're using an old version of Wagtail, this page may not accurately reflect what languages you have available).
+The Wagtail admin backend has been translated into many different languages. You can find a list of currently available translations on Wagtail's [Transifex page](https://explore.transifex.com/torchbox/wagtail/). (Note: if you're using an old version of Wagtail, this page may not accurately reflect what languages you have available).
 
-If your language isn't listed on that page, you can easily contribute new languages or correct mistakes. Sign up and submit changes to [Transifex](https://www.transifex.com/torchbox/wagtail/). Translation updates are typically merged into an official release within one month of being submitted.
+If your language isn't listed on that page, you can easily contribute new languages or correct mistakes. Sign up and submit changes to [Transifex](https://explore.transifex.com/torchbox/wagtail/). Translation updates are typically merged into an official release within one month of being submitted.
 
 ## Change Wagtail admin language on a per-user basis
 

+ 1 - 1
docs/contributing/developing.md

@@ -17,7 +17,7 @@ If you'd prefer to set up all the components manually, read on. These instructio
 The preferred way to install the correct version of Node is to use [Node Version Manager (nvm)](https://github.com/nvm-sh/nvm) or [Fast Node Manager (fnm)](https://github.com/Schniz/fnm), which will always align the version with the supplied `.nvmrc` file in the root of the project. To ensure you are running the correct version of Node, run `nvm install` or `fnm install` from the project root.
 Alternatively, you can install [Node.js](https://nodejs.org/) directly, ensure you install the version as declared in the project's root `.nvmrc` file.
 
-You will also need to install the **libjpeg** and **zlib** libraries, if you haven't done so already - see Pillow's [platform-specific installation instructions](https://pillow.readthedocs.org/en/latest/installation.html#external-libraries).
+You will also need to install the **libjpeg** and **zlib** libraries, if you haven't done so already - see Pillow's [platform-specific installation instructions](https://pillow.readthedocs.io/en/stable/installation.html#external-libraries).
 
 Clone a copy of [the Wagtail codebase](https://github.com/wagtail/wagtail):
 

+ 2 - 2
docs/contributing/index.md

@@ -14,7 +14,7 @@ issue_tracking
 
 ## Pull requests
 
-If you're a Python or Django developer, [fork it](https://github.com/wagtail/wagtail/) and read the [developing docs](developing_for_wagtail) to get stuck in! We welcome all contributions, whether they solve problems which are specific to you or they address existing issues. If you're stuck for ideas, pick something from the [issue list](https://github.com/wagtail/wagtail/issues?state=open), or email us directly on [hello@wagtail.org](mailto:hello@wagtail.org) if you'd like us to suggest something!
+If you're a Python or Django developer, [fork it](https://github.com/wagtail/wagtail/) and read the [developing docs](developing_for_wagtail) to get stuck in! We welcome all contributions, whether they solve problems which are specific to you or they address existing issues. If you're stuck for ideas, pick something from the [issue list](https://github.com/wagtail/wagtail/issues?q=is%3Aopen), or email us directly on [hello@wagtail.org](mailto:hello@wagtail.org) if you'd like us to suggest something!
 
 For large-scale changes, we'd generally recommend breaking them down into smaller pull requests that achieve a single well-defined task and can be reviewed individually. If this isn't possible, we recommend opening a pull request on the [Wagtail RFCs](https://github.com/wagtail/rfcs/) repository, so that there's a chance for the community to discuss the change before it gets implemented.
 
@@ -29,7 +29,7 @@ committing
 
 Wagtail has internationalisation support so if you are fluent in a non-English language you can contribute by localising the interface.
 
-Translation work should be submitted through [Transifex](https://www.transifex.com/torchbox/wagtail/).
+Translation work should be submitted through [Transifex](https://explore.transifex.com/torchbox/wagtail/).
 
 ## Other contributions
 

+ 1 - 1
docs/contributing/python_guidelines.md

@@ -2,7 +2,7 @@
 
 ## PEP8
 
-We ask that all Python contributions adhere to the [PEP8](https://www.python.org/dev/peps/pep-0008/) style guide.
+We ask that all Python contributions adhere to the [PEP8](https://peps.python.org/pep-0008/) style guide.
 All files should be formatted using the [black](https://github.com/psf/black) auto-formatter. This will be
 run by `pre-commit` if that is configured.
 

+ 1 - 1
docs/contributing/security.md

@@ -41,7 +41,7 @@ On the day of disclosure, we will take the following steps:
    The commit messages for these patches will indicate that they are for security issues, but will not describe the issue in any detail; instead, they will warn of upcoming disclosure.
 2. Issue the relevant release(s), by placing new packages on [the Python Package Index](https://pypi.org/project/wagtail/), tagging the new release(s) in Wagtail\'s GitHub repository and updating Wagtail\'s [release notes](../releases/index).
 3. Post a public entry on [Wagtail\'s blog](https://wagtail.org/blog/), describing the issue and its resolution in detail, pointing to the relevant patches and new releases, and crediting the reporter of the issue (if the reporter wishes to be publicly identified).
-4. Post a notice to the [Wagtail support forum](https://groups.google.com/d/forum/wagtail) and Twitter feed ([\@WagtailCMS](https://twitter.com/wagtailcms)) that links to the blog post.
+4. Post a notice to the [Wagtail support forum](https://groups.google.com/g/wagtail) and Twitter feed ([\@WagtailCMS](https://twitter.com/wagtailcms)) that links to the blog post.
 
 If a reported issue is believed to be particularly time-sensitive -- due to a known exploit in the wild, for example -- the time between advance notification and public disclosure may be shortened considerably.
 

+ 1 - 1
docs/contributing/ui_guidelines.md

@@ -29,7 +29,7 @@ We use [djhtml](https://github.com/rtts/djhtml) for formatting and [Curlylint](h
 
 We use [Prettier](https://prettier.io/) for formatting and [Stylelint](https://stylelint.io/) for linting.
 
--   We follow [BEM](http://getbem.com/) and [ITCSS](https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/), with a large amount of utilities created with [Tailwind](https://tailwindcss.com/).
+-   We follow [BEM](https://getbem.com/) and [ITCSS](https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/), with a large amount of utilities created with [Tailwind](https://tailwindcss.com/).
 -   Familiarise yourself with our [stylelint-config-wagtail](https://github.com/wagtail/stylelint-config-wagtail) configuration, which details our preferred code style.
 -   Use `rems` for `font-size`, because they offer absolute control over text. Additionally, unit-less `line-height` is preferred because it does not inherit a percentage value of its parent element, but instead is based on a multiplier of the `font-size`.
 -   Always use variables for design tokens such as colours or font sizes, rather than hard-coding specific values.

+ 1 - 1
docs/editor_manual/browser_issues.md

@@ -20,7 +20,7 @@ Wagtail has officially removed support for the legacy Internet Explorer browser
 -   Wagtail will no longer support IE11 as of version 2.15 and beyond, for any releases after 2.16 there will no longer be a warning to users.
 
 If this affects you or your organisation, consider which alternative browsers you may be able to use.
-Wagtail is fully compatible with Microsoft Edge, Microsoft’s replacement for Internet Explorer. You may consider using its [IE mode](https://docs.microsoft.com/en-us/deployedge/edge-ie-mode) to keep access to IE11-only sites, while other sites and apps like Wagtail can use modern browser capabilities.
+Wagtail is fully compatible with Microsoft Edge, Microsoft’s replacement for Internet Explorer. You may consider using its [IE mode](https://learn.microsoft.com/en-us/deployedge/edge-ie-mode) to keep access to IE11-only sites, while other sites and apps like Wagtail can use modern browser capabilities.
 
 ## Assistive technologies
 

+ 1 - 1
docs/extending/rich_text_internals.md

@@ -256,7 +256,7 @@ For details of the plugin formats for Wagtail's built-in editors, see :doc:`./ex
 
 ## Format converters
 
-Editor widgets will often be unable to work directly with Wagtail's rich text format, and require conversion to their own native format. For Draftail, this is a JSON-based format known as ContentState (see [How Draft.js Represents Rich Text Data](https://medium.com/@rajaraodv/how-draft-js-represents-rich-text-data-eeabb5f25cf2)). Editors based on HTML's `contentEditable` mechanism require valid HTML, and so Wagtail uses a convention referred to as "editor HTML", where the additional data required on link and embed elements is stored in `data-` attributes, for example: `<a href="/contact-us/" data-linktype="page" data-id="3">Contact us</a>`.
+Editor widgets will often be unable to work directly with Wagtail's rich text format, and require conversion to their own native format. For Draftail, this is a JSON-based format known as ContentState (see [How Draft.js Represents Rich Text Data](https://rajaraodv.medium.com/how-draft-js-represents-rich-text-data-eeabb5f25cf2)). Editors based on HTML's `contentEditable` mechanism require valid HTML, and so Wagtail uses a convention referred to as "editor HTML", where the additional data required on link and embed elements is stored in `data-` attributes, for example: `<a href="/contact-us/" data-linktype="page" data-id="3">Contact us</a>`.
 
 Wagtail provides two utility classes, `wagtail.admin.rich_text.converters.contentstate.ContentstateConverter` and `wagtail.admin.rich_text.converters.editor_html.EditorHTMLConverter`, to perform conversions between rich text format and the native editor formats. These classes are independent of any editor widget, and distinct from the rewriting process that happens when rendering rich text onto a template.
 

+ 1 - 1
docs/getting_started/index.md

@@ -15,7 +15,7 @@
 
 -   [Python 3](https://www.python.org/downloads/)
 -   **libjpeg** and **zlib**, libraries required for Django\'s **Pillow** library.
-    See Pillow\'s [platform-specific installation instructions](https://pillow.readthedocs.org/en/latest/installation.html#external-libraries).
+    See Pillow\'s [platform-specific installation instructions](https://pillow.readthedocs.io/en/stable/installation.html#external-libraries).
 
 ## Quick install
 

+ 1 - 1
docs/getting_started/integrating_into_django.md

@@ -8,7 +8,7 @@ Wagtail is currently compatible with Django 3.2, 4.0 and 4.1. First, install the
 $ pip install wagtail
 ```
 
-or add the package to your existing requirements file. This will also install the **Pillow** library as a dependency, which requires libjpeg and zlib - see Pillow's [platform-specific installation instructions](https://pillow.readthedocs.org/en/latest/installation.html#external-libraries).
+or add the package to your existing requirements file. This will also install the **Pillow** library as a dependency, which requires libjpeg and zlib - see Pillow's [platform-specific installation instructions](https://pillow.readthedocs.io/en/stable/installation.html#external-libraries).
 
 ## Settings
 

+ 1 - 1
docs/getting_started/tutorial.md

@@ -22,7 +22,7 @@ If this does not return a version number or returns a version lower than 3.7, yo
 ```{note}
 Before installing Wagtail, it is necessary to install the **libjpeg** and **zlib** libraries, which provide support for working with JPEG, PNG and GIF images (via the Python **Pillow** library).
 The way to do this varies by platform—see Pillow's
-[platform-specific installation instructions](https://pillow.readthedocs.org/en/latest/installation.html#external-libraries).
+[platform-specific installation instructions](https://pillow.readthedocs.io/en/stable/installation.html#external-libraries).
 ```
 
 ### Create and activate a virtual environment

+ 9 - 9
docs/reference/contrib/frontendcache.md

@@ -40,22 +40,22 @@ Set `WAGTAILFRONTENDCACHE_LANGUAGES` to a list of languages (typically equal to
 
 Finally, make sure you have configured your frontend cache to accept PURGE requests:
 
--   [Varnish](https://www.varnish-cache.org/docs/3.0/tutorial/purging.html)
+-   [Varnish](https://varnish-cache.org/docs/3.0/tutorial/purging.html)
 -   [Squid](https://wiki.squid-cache.org/SquidFaq/OperatingSquid#How_can_I_purge_an_object_from_my_cache.3F)
 
 (frontendcache_cloudflare)=
 
 ### Cloudflare
 
-Firstly, you need to register an account with Cloudflare if you haven't already got one. You can do this here: [Cloudflare Sign up](https://www.cloudflare.com/sign-up).
+Firstly, you need to register an account with Cloudflare if you haven't already got one. You can do this here: [Cloudflare Sign up](https://dash.cloudflare.com/sign-up).
 
 Add an item into the `WAGTAILFRONTENDCACHE` and set the `BACKEND` parameter to `wagtail.contrib.frontend_cache.backends.CloudflareBackend`.
 
 This backend can be configured to use an account-wide API key, or an API token with restricted access.
 
-To use an account-wide API key, find the key [as described in the Cloudflare documentation](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345682) and specify `EMAIL` and `API_KEY` parameters.
+To use an account-wide API key, find the key [as described in the Cloudflare documentation](https://developers.cloudflare.com/api/get-started/keys/#view-your-api-key) and specify `EMAIL` and `API_KEY` parameters.
 
-To use a limited API token, [create a token](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345680) configured with the 'Zone, Cache Purge' permission and specify the `BEARER_TOKEN` parameter.
+To use a limited API token, [create a token](https://developers.cloudflare.com/api/get-started/create-token/) configured with the 'Zone, Cache Purge' permission and specify the `BEARER_TOKEN` parameter.
 
 A `ZONEID` parameter will need to be set for either option. To find the `ZONEID` for your domain, read the [Cloudflare API Documentation](https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/find-account-and-zone-ids/).
 
@@ -105,7 +105,7 @@ WAGTAILFRONTENDCACHE = {
 }
 ```
 
-Configuration of credentials can done in multiple ways. You won't need to store them in your Django settings file. You can read more about this here: [Boto 3 Docs](https://boto3.readthedocs.org/en/latest/guide/configuration.html).
+Configuration of credentials can done in multiple ways. You won't need to store them in your Django settings file. You can read more about this here: [Boto 3 Docs](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html).
 
 In case you run multiple sites with Wagtail and each site has its CloudFront distribution, provide a mapping instead of a single distribution. Make sure the mapping matches with the hostnames provided in your site settings.
 
@@ -127,7 +127,7 @@ In most cases, absolute URLs with ``www`` prefixed domain names should be used i
 
 ### Azure CDN
 
-With [Azure CDN](https://azure.microsoft.com/en-gb/services/cdn/) you will need a CDN profile with an endpoint configured.
+With [Azure CDN](https://azure.microsoft.com/en-gb/products/cdn/) you will need a CDN profile with an endpoint configured.
 
 The third-party dependencies of this backend are:
 
@@ -154,7 +154,7 @@ Add an item into the `WAGTAILFRONTENDCACHE` and set the `BACKEND` parameter to `
     }
 ```
 
-By default the credentials will use `azure.identity.DefaultAzureCredential`. To modify the credential object used, please use `CREDENTIALS` setting. Read about your options on the [Azure documentation](https://docs.microsoft.com/en-us/azure/developer/python/azure-sdk-authenticate).
+By default the credentials will use `azure.identity.DefaultAzureCredential`. To modify the credential object used, please use `CREDENTIALS` setting. Read about your options on the [Azure documentation](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication-overview).
 
 ```python
 from azure.common.credentials import ServicePrincipalCredentials
@@ -177,7 +177,7 @@ Another option that can be set is `SUBSCRIPTION_ID`. By default the first encoun
 
 ### Azure Front Door
 
-With [Azure Front Door](https://azure.microsoft.com/en-gb/services/frontdoor/) you will need a Front Door instance with caching enabled.
+With [Azure Front Door](https://azure.microsoft.com/en-gb/products/frontdoor/) you will need a Front Door instance with caching enabled.
 
 The third-party dependencies of this backend are:
 
@@ -202,7 +202,7 @@ WAGTAILFRONTENDCACHE = {
 }
 ```
 
-By default the credentials will use `azure.identity.DefaultAzureCredential`. To modify the credential object used, please use `CREDENTIALS` setting. Read about your options on the [Azure documentation](https://docs.microsoft.com/en-us/azure/developer/python/azure-sdk-authenticate).
+By default the credentials will use `azure.identity.DefaultAzureCredential`. To modify the credential object used, please use `CREDENTIALS` setting. Read about your options on the [Azure documentation](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication-overview).
 
 ```python
 from azure.common.credentials import ServicePrincipalCredentials

+ 1 - 1
docs/reference/pages/panels.md

@@ -373,4 +373,4 @@ The `relation_name` is the `related_name` label given to the cluster's `Parental
 For another example of using model clusters, see {ref}`tagging`.
 
 For more on `django-modelcluster`, visit
-[the django-modelcluster github project page](https://github.com/torchbox/django-modelcluster)
+[the django-modelcluster github project page](https://github.com/wagtail/django-modelcluster)

+ 1 - 1
docs/releases/2.15.rst

@@ -274,7 +274,7 @@ Removed support for Internet Explorer (IE11)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If this affects you or your organisation, consider which alternative browsers you may be able to use.
-Wagtail is fully compatible with Microsoft Edge, Microsoft’s replacement for Internet Explorer. You may consider using its `IE mode <https://docs.microsoft.com/en-us/deployedge/edge-ie-mode>`_ to keep access to IE11-only sites, while other sites and apps like Wagtail can leverage modern browser capabilities.
+Wagtail is fully compatible with Microsoft Edge, Microsoft’s replacement for Internet Explorer. You may consider using its `IE mode <https://learn.microsoft.com/en-us/deployedge/edge-ie-mode>`_ to keep access to IE11-only sites, while other sites and apps like Wagtail can leverage modern browser capabilities.
 
 
 ``search()`` method partial match future deprecation

+ 1 - 1
docs/releases/3.0.md

@@ -171,7 +171,7 @@ See [Enabling JSON1 extension on SQLite](https://docs.djangoproject.com/en/stabl
 
 ### Removed support for Internet Explorer (IE11)
 
-IE11 support was officially dropped in Wagtail 2.15, and as of this release there will no longer be a warning shown to users of this browser. Wagtail is fully compatible with Microsoft Edge, Microsoft’s replacement for Internet Explorer. You may consider using its [IE mode](https://docs.microsoft.com/en-us/deployedge/edge-ie-mode) to keep access to IE11-only sites, while other sites and apps like Wagtail can leverage modern browser capabilities.
+IE11 support was officially dropped in Wagtail 2.15, and as of this release there will no longer be a warning shown to users of this browser. Wagtail is fully compatible with Microsoft Edge, Microsoft’s replacement for Internet Explorer. You may consider using its [IE mode](https://learn.microsoft.com/en-us/deployedge/edge-ie-mode) to keep access to IE11-only sites, while other sites and apps like Wagtail can leverage modern browser capabilities.
 
 ### Hallo legacy rich text editor has moved to an external package
 

+ 1 - 0
docs/releases/4.1.md

@@ -79,6 +79,7 @@ This feature was developed by Karl Hobley and Matt Westcott.
  * Add additional checks for duplicate form field `clean_name` values in the Form Builder validation and increase performance of checks (Dan Bentley)
  * Use correct color for labels of radio and checkbox fields (Steven Steinwand)
  * Adjust spacing of fields’ error messages and position in tables (Steven Steinwand)
+ * Update dead or redirected links throughout the documentation (LB (Ben) Johnston)
 
 ## Upgrade considerations
 

+ 1 - 1
docs/support.md

@@ -10,7 +10,7 @@ If you have any problems or questions about working with Wagtail, you are invite
 
 ## Mailing list
 
-For topics and discussions that do not fit Stack Overflow's question-and-answer format, there is a Wagtail Support mailing list at [groups.google.com/d/forum/wagtail](https://groups.google.com/d/forum/wagtail).
+For topics and discussions that do not fit Stack Overflow's question-and-answer format, there is a Wagtail Support mailing list at [groups.google.com/d/forum/wagtail](https://groups.google.com/g/wagtail).
 
 (slack)=
 

+ 1 - 1
docs/topics/pages.md

@@ -341,7 +341,7 @@ Each inline model requires the following:
 -   It must have a `ParentalKey` to the parent model
 
 ````{note}
-The model inlining feature is provided by [django-modelcluster](https://github.com/torchbox/django-modelcluster) and the `ParentalKey` field type must be imported from there:
+The model inlining feature is provided by [django-modelcluster](https://github.com/wagtail/django-modelcluster) and the `ParentalKey` field type must be imported from there:
 
 ```python
 from modelcluster.fields import ParentalKey

+ 2 - 2
docs/topics/search/backends.md

@@ -68,7 +68,7 @@ Elasticsearch versions 5, 6 and 7 are supported. Use the appropriate backend for
 -   `wagtail.search.backends.elasticsearch6` (Elasticsearch 6.x)
 -   `wagtail.search.backends.elasticsearch7` (Elasticsearch 7.x)
 
-Prerequisites are the [Elasticsearch](https://www.elastic.co/downloads/elasticsearch) service itself and, via pip, the [elasticsearch-py](https://elasticsearch-py.readthedocs.org) package. The major version of the package must match the installed version of Elasticsearch:
+Prerequisites are the [Elasticsearch](https://www.elastic.co/downloads/elasticsearch) service itself and, via pip, the [elasticsearch-py](https://elasticsearch-py.readthedocs.io/) package. The major version of the package must match the installed version of Elasticsearch:
 
 ```sh
 pip install "elasticsearch>=5.0.0,<6.0.0"  # for Elasticsearch 5.x
@@ -147,7 +147,7 @@ If you prefer not to run an Elasticsearch server in development or production, t
 
 ### Amazon AWS Elasticsearch
 
-The Elasticsearch backend is compatible with [Amazon Elasticsearch Service](https://aws.amazon.com/elasticsearch-service/), but requires additional configuration to handle IAM based authentication. This can be done with the [requests-aws4auth](https://pypi.python.org/pypi/requests-aws4auth) package along with the following configuration:
+The Elasticsearch backend is compatible with [Amazon Elasticsearch Service](https://aws.amazon.com/opensearch-service/), but requires additional configuration to handle IAM based authentication. This can be done with the [requests-aws4auth](https://pypi.org/project/requests-aws4auth/) package along with the following configuration:
 
 ```python
 from elasticsearch import RequestsHttpConnection