Skip to content

neon-jungle/wagtail-linkchecker

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.

wagtail-linkchecker

A tool/plugin to assist with finding broken links on your wagtail site. This tool works asynchronously using celery.

Installing

Install using pip:

pip install wagtail-linkchecker

It works with Wagtail 1.0 and upwards.

Using

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

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.

Automated Scanning

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.

Command options

--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