1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-23 21:02:09 +00:00
seirdy.one/scripts/bin/check-whole-site

67 lines
1.5 KiB
Text
Raw Normal View History

2022-06-16 02:43:01 +00:00
#!/usr/bin/env dash
set -e -u
# the name of this program
progname="$(basename "${0}")"
help_text="Usage:
Validate the site's markup, CSS, and accessibility.
Uses xmllint to to check well-formedness and the Nu HTML Checker to
check (X)HTML5 and CSS validity on every markup file (inc. HTML, XHTML,
SVG). (xmllint is only relevant if you're using XML syntax).
Lints source CSS files with stylelint.
Uses both axe-core and the IBM Equal Access Checker to test
accessibility on every page in the sitemap.
Options:
-h Print this help and exit
-b Base URL of site
"
# TODO: add the following:
# - check broken internal links
# - check broken webring links
# - validate JSON (web app manifest, webfinger)
usage() {
printf '%s' "${help_text}"
}
# when the user passess bad args, send a msg to stderr and exit
# usage: bad_option <option> <reason>
bad_option() {
echo "${progname}: option ${1}: ${2}" >&2
usage >&2
exit 1
}
base_url='http://localhost:8089/'
while getopts "hb" flags; do
case ${flags} in
h)
usage
exit 0
;;
b)
base_url="$1"
shift
;;
*)
bad_option "${flags}" 'invalid option'
exit 1
;;
esac
done
2022-06-18 03:36:35 +00:00
# HTML validation is already parallelized, so run that single-threaded.
make -j1 HUGO_FLAGS=-DF HUGO_BASEURL="$base_url" clean hugo xhtmlize validate-html
2022-06-18 03:36:35 +00:00
make -j2 -f Makefile.online htmltest validate-json axe equal-access lint-css htmlproofer URLS="$(curl "$base_url/sitemap.xml" | htmlq loc -t | rg -v '/search/$' | tr '\n' ' ')"
2022-06-16 02:43:01 +00:00
# vi:ft=sh