c574166b51
Updates the requirements on [html-proofer](https://github.com/gjtorikian/html-proofer) to permit the latest version. - [Release notes](https://github.com/gjtorikian/html-proofer/releases) - [Changelog](https://github.com/gjtorikian/html-proofer/blob/main/CHANGELOG.md) - [Commits](https://github.com/gjtorikian/html-proofer/compare/v3.18.0...v4.4.3) And updates `html-proofer` arguments --- updated-dependencies: - dependency-name: html-proofer dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
89 lines
1.6 KiB
Bash
Executable file
89 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Build and test the site content
|
|
#
|
|
# Requirement: html-proofer, jekyll
|
|
#
|
|
# Usage: See help information
|
|
|
|
set -eu
|
|
|
|
SITE_DIR="_site"
|
|
|
|
_config="_config.yml"
|
|
|
|
_baseurl=""
|
|
|
|
help() {
|
|
echo "Build and test the site content"
|
|
echo
|
|
echo "Usage:"
|
|
echo
|
|
echo " bash ./tools/test [options]"
|
|
echo
|
|
echo "Options:"
|
|
echo ' -c, --config "<config_a[,config_b[...]]>" Specify config file(s)'
|
|
echo " -h, --help Print this information."
|
|
}
|
|
|
|
read_baseurl() {
|
|
if [[ $_config == *","* ]]; then
|
|
# multiple config
|
|
IFS=","
|
|
read -ra config_array <<<"$_config"
|
|
|
|
# reverse loop the config files
|
|
for ((i = ${#config_array[@]} - 1; i >= 0; i--)); do
|
|
_tmp_baseurl="$(grep '^baseurl:' "${config_array[i]}" | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
|
|
|
|
if [[ -n $_tmp_baseurl ]]; then
|
|
_baseurl="$_tmp_baseurl"
|
|
break
|
|
fi
|
|
done
|
|
|
|
else
|
|
# single config
|
|
_baseurl="$(grep '^baseurl:' "$_config" | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
# clean up
|
|
if [[ -d $SITE_DIR ]]; then
|
|
rm -rf "$SITE_DIR"
|
|
fi
|
|
|
|
read_baseurl
|
|
|
|
# build
|
|
JEKYLL_ENV=production bundle exec jekyll b \
|
|
-d "$SITE_DIR$_baseurl" -c "$_config"
|
|
|
|
# test
|
|
bundle exec htmlproofer "$SITE_DIR" \
|
|
--disable-external=true \
|
|
--ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/"
|
|
}
|
|
|
|
while (($#)); do
|
|
opt="$1"
|
|
case $opt in
|
|
-c | --config)
|
|
_config="$2"
|
|
shift
|
|
shift
|
|
;;
|
|
-h | --help)
|
|
help
|
|
exit 0
|
|
;;
|
|
*)
|
|
# unknown option
|
|
help
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
main
|