From e77d382981181603a2e75c5c4a33cd12b8f02c48 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Mon, 15 Jun 2026 10:49:00 -0400 Subject: [PATCH] docs: fix missing_docs and invalid-link errors in docs build The documentation build fails at the CheckDocument/CrossReferences stage with two pre-existing errors (both reproduce on a clean `main`): 1. `:missing_docs` -- five extension-point functions (`try_special_matrices`, `try_toeplitz`, `try_banded`, `try_blockbanded`, `try_almostbanded`) carry docstrings but are not referenced from any `@docs`/`@autodocs` block, while `make.jl` passes `modules = [SparseMatrixIdentification]`. Add an "Extension Point Functions" section to `docs/src/api.md` listing them. 2. `:cross_references` -- the `sparsestructure` docstring contains `[2, -1, -1] (requires SpecialMatrices)`, which Markdown parses as a link with text `2, -1, -1` and a nonexistent local destination `requires SpecialMatrices`. Wrap the pattern in backticks so it renders as inline code instead of a link. Verified locally on Julia 1.10.11: `makedocs` (linkcheck disabled for the offline run; that stage is unaffected) now completes without `:missing_docs` or `:cross_references` errors. On clean `main` the same build emits both errors. Runic leaves the edited source unchanged. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/src/api.md | 13 +++++++++++++ src/SparseMatrixIdentification.jl | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/src/api.md b/docs/src/api.md index 954c18e..e5b0237 100644 --- a/docs/src/api.md +++ b/docs/src/api.md @@ -6,3 +6,16 @@ getstructure sparsestructure ``` + +## Extension Point Functions + +These functions are extension points that package extensions add methods to. +They return `nothing` unless the corresponding optional package is loaded. + +```@docs +SparseMatrixIdentification.try_special_matrices +SparseMatrixIdentification.try_toeplitz +SparseMatrixIdentification.try_banded +SparseMatrixIdentification.try_blockbanded +SparseMatrixIdentification.try_almostbanded +``` diff --git a/src/SparseMatrixIdentification.jl b/src/SparseMatrixIdentification.jl index d581e48..c688699 100644 --- a/src/SparseMatrixIdentification.jl +++ b/src/SparseMatrixIdentification.jl @@ -454,7 +454,7 @@ corresponding package is loaded. Load the relevant package to enable detection: # Returns One of the following matrix types based on detected structure: - `Hilbert`: If A[i,j] = 1/(i+j-1) (requires SpecialMatrices) -- `Strang`: If the matrix is tridiagonal Toeplitz with pattern [2, -1, -1] (requires SpecialMatrices) +- `Strang`: If the matrix is tridiagonal Toeplitz with pattern `[2, -1, -1]` (requires SpecialMatrices) - `Vandermonde`: If columns are powers of a base vector (requires SpecialMatrices) - `Cauchy`: If A[i,j] = 1/(x[i] + y[j]) (requires SpecialMatrices) - `Toeplitz`: If the matrix has constant diagonals (requires ToeplitzMatrices)