serenity/Meta/check-markdown.sh
kleines Filmröllchen d7a2b5e65b markdown-check: Allow generating a manpage link graph
Using the cross-page links, we can generate a directed graph showing the
topology of which pages refer to other pages. This is not just for fun:
the links show how often a page is linked (since links are not
deduplicated on purpose), which pairs of pages only have links in one
direction (where a link in the other direction may be useful), which
groups of closely-interlinked pages exist, and which pages have few or
no links to other pages.

The EXTRA_MARKDOWN_CHECK_ARGS argument to the check-markdown script can
be used to inject the -g flag for generating the graph on all manpages.
2023-07-05 16:15:42 +01:00

27 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -eo pipefail
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/.."
if [ -z "${MARKDOWN_CHECK_BINARY:-}" ] ; then
if ! [ -d Build/lagom/ ] ; then
echo "Directory Build/lagom/ does not exist. Skipping markdown check."
exit 0
fi
if ! [ -r Build/lagom/bin/markdown-check ] ; then
echo "Lagom executable markdown-check was not built. Skipping markdown check."
echo "To enable this check, you may need to run './Meta/serenity.sh build lagom' first."
exit 0
fi
MARKDOWN_CHECK_BINARY="Build/lagom/bin/markdown-check"
fi
if [ -z "$SERENITY_SOURCE_DIR" ] ; then
SERENITY_SOURCE_DIR=$(pwd -P)
export SERENITY_SOURCE_DIR
fi
# shellcheck disable=SC2086 # Word splitting is intentional here
find AK Base Documentation Kernel Meta Ports Tests Userland -path Tests/LibWeb/WPT/wpt -prune -o -type f -name '*.md' -print0 | xargs -0 "${MARKDOWN_CHECK_BINARY}" -b "${SERENITY_SOURCE_DIR}/Base" $EXTRA_MARKDOWN_CHECK_ARGS README.md CONTRIBUTING.md