aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2023-11-07 16:55:16 +0000
committerNick Mathewson <nickm@torproject.org>2023-11-07 16:55:16 +0000
commitcb7c8e6faaff71c77239cf51d8b7ed5061a99663 (patch)
tree03ade02ccff6b32b92a2209394f3d130634e066b /bin
parent0ce2e4099a8f91f90b6da2bf43049abcb8763149 (diff)
parent6ed053a4ce491495b1dda7106f22bb1949c70ebc (diff)
downloadtorspec-cb7c8e6faaff71c77239cf51d8b7ed5061a99663.tar.gz
torspec-cb7c8e6faaff71c77239cf51d8b7ed5061a99663.zip
Merge branch 'linklint' into 'main'
Fix broken links and check in CI that we don't introduce new ones Closes #238 See merge request tpo/core/torspec!194
Diffstat (limited to 'bin')
-rwxr-xr-xbin/check_links40
-rwxr-xr-xbin/make_redirects2
2 files changed, 41 insertions, 1 deletions
diff --git a/bin/check_links b/bin/check_links
new file mode 100755
index 0000000..890ac30
--- /dev/null
+++ b/bin/check_links
@@ -0,0 +1,40 @@
+#!/bin/bash
+#
+# Check rustdoc HTML links and anchors
+# bin/build_html must have been run first.
+#
+# Adapted from
+# https://gitlab.torproject.org/Diziet/rust-derive-adhoc/-/blob/main/maint/check-doc-links?ref_type=heads
+
+set -e
+set -o pipefail
+
+# nailing-cargo --no-nail --- bin/build_html
+# nailing-cargo --preclean=no --- bin/check_links
+
+chk_dir=html.link-check
+
+rm -rf html.link-check
+cp -al html $chk_dir
+
+# Fix up https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425632
+
+find $chk_dir -name \*.html -print0 |
+xargs -0r -- perl -i~ -pe '
+ s{\bid=("[^"]+")[^<>]*\>}{$&<a name=$1>}g;
+'
+
+linklint -out linklint.errors -error -root $chk_dir /
+
+cat linklint.errors
+
+set +e
+grep ERROR linklint.errors
+rc=$?
+set -e
+
+case $rc in
+0) echo >&2 '** found linkcheck errors **'; exit 1;;
+1) ;;
+*) echo >&2 "linkcheck failed $rc"; exit 1;;
+esac
diff --git a/bin/make_redirects b/bin/make_redirects
index ea8ea3b..4cd4e05 100755
--- a/bin/make_redirects
+++ b/bin/make_redirects
@@ -43,7 +43,7 @@ def readme_redirects(rs):
for kwd, info in rs.items():
target = info['target']
desc = info['description']
- lines.append(f'<dt><a href="/{kwd}"><code>/{kwd}</code></a></dt>\n')
+ lines.append(f'<dt><code>/{kwd}</code></dt>\n')
lines.append(f'<dd><a href="{target}"><code>{target}</code> ({desc})</a></dt>\n')
lines.append("</dl>\n")