A tool/plugin to assist with finding broken links on your wagtail site. This tool works asynchronously using celery.
Install using pip:
pip install wagtail-linkchecker
It works with Wagtail 1.0 and upwards.
To use, firstly you will need to add wagtaillinkchecker
to your INSTALLED_APPS
and run the migrations.
There will now be an extra item on the settings panel of the wagtailadmin. Inside here you can enable or disable automated
scanning (See below for more detail) or conduct a scan.
For scans to be conducted from the admin, you must be running a celery daemon.
You can run the celery worker with celery -A my_app_name worker -l info
. See the Celery Documentation for more information.
For production you'll want to run celery as a daemon using something like systemd. See Celery Daemonization for more information.
Conducting a scan will scan all of your wagtail pages, and detect all images and anchors with a src
or href
respectively.
Utilising the requests
and BeautifulSoup
libraries, requests will be made to each link to make sure an appropriate response
is received, and if no appropriate response is received, once the scan is complete, all broken links along with their status codes and
reasons will appear.
Scan results will be stored.
If you want automated scanning to work you HAVE to set up a cron job. The cron job will need to run the management command linkchecker
at
an interval of your choosing.
The automated scans will do the same as manually conducting a scan, but instead will email the last person to edit the page with broken links/images.
--do-not-send-mail
- Don't send an email to administrators once scan is complete.
--run-synchronously
- Skip celery and run command synchronously (useful for automated scanning)
-v 2
- Show more output in the logs