xrefcheck/CHANGES.md
Adrián Enríquez 9421c42421
[#244] Symlink scanner
Problem: As GitHub and GitLab do not render symlinks as the file they
point to, we are considering to implement a new scanner for symlinks
that verifies them up to some extent.

Solution: A scanner that validates the reference from a symlink has been
implemented in the same style as the markdown scanner.
2023-02-01 13:06:57 +01:00

9.2 KiB

Unreleased

  • #176
    • Enabled autolink extension for cmark-gfm, so now we're finding strings like www.google.com or https://google.com, treating them as links and checking.
  • #175
    • Reorganize top-level config keys.
  • #178
    • Rename exclusion-related config options.
  • #183
    • Add support for image links.
  • #199
    • Now annotation <!-- xrefcheck: ignore all --> instead of <!-- xrefcheck: ignore file --> should be used to disable checking for links in file, so it's clearer that file itself is not ignored (and links can target it).
  • #215
    • Now we notify user when there are scannable files that were not added to Git yet. Also added CLI option --include-untracked to scan such files and treat as existing.
  • #191
    • Now we consider slash / (and only it) as path separator in local links for all OS, so xrefcheck's report is OS-independent
    • Use utf-8 compatible codepage on Windows
  • #224
    • Now the program output does not contain unicode characters that are not widely supported.
  • #229
    • Now we call references to anchors in current file (e.g. [a](#b)) as file-local references instead of calling them current file (which was ambiguous).
  • #233
    • Now xrefxcheck does not follow redirect links by default. It fails for permanent redirect responses (i.e. 301 and 308) and passes for temporary ones (i.e. 302, 303, 307).
  • #231
    • Anchor analysis takes now into account the appropriate case-sensitivity depending on the configured Markdown flavour.
  • #254
    • Now the dump-config command does not overwrite a file unless explicitly told with a --force flag. Also, a --stdout flag allows to print the config to stdout instead.
  • #250
    • Now the redirect behavior for external references can be modified via rules in the configuration file with the externalRefRedirects parameter.
  • #261
    • Symlinks are now not processed by the scanner.
  • #268
    • Added CLI option --color that enables ANSI colors in output.
    • Changed the output coloring defaults to show colors when CI env variable is true.
  • #271
    • Now Xrefcheck is able to follow relative redirects.
  • #262
    • Now Xrefcheck includes a scanner that verifies the repository symlinks.

0.2.2

  • #145
    • Add check that there is no unknown fields in config.
  • #158
    • Fixed bug when we reported footnotes as broken links.
  • #163
    • Fixed an issue where the progress bar thread might be unexpectedly cancelled and jumble up the output.
  • #184
    • Make flavor a required parameter.
  • #182
    • Now we call references to anchors in current file (e.g. [a](#b)) as current file references instead of calling them local (which was ambiguous).
  • #188
    • Added CLI option --no-colors that disables ANSI colors in output.
    • Automatically disable coloring if it is not supported
  • #152
    • Now we report links that target a file outside repository (e.g. /../a.md) as broken (with message Link targets a local file outside repository). Same for links that are using directories outside repository (e.g. /../repo/a.md), since such things are not supported by GitHub markdown renderer.
  • #174
    • Make xrefcheck only scan files that are tracked by git.
    • Fixed bug where links to ignored files were valid.
    • Fixed bug where links with trailing slashes were invalid.
  • #198
    • Now we're checking globs in config fields and CLI args (e.g. ignored), they must be valid globs relative to repository root (foo/* instead of /foo/*)
  • #196
    • Now xrefcheck: ignore link annotation expects a link to ignore in next markdown node, instead of expecting link in whole rest of file. If you've got Expected a LINK after "ignore link" annotation message, see PR's description for examples and details.

0.2.1

  • #127
    • Support Retry-After headers with dates.
  • #117
    • Forbid verifying a single file using --root command line option.
  • #115
    • Improved parsing of anchor html tags inside headers.
  • #109
    • Fixed bug when prefixing --ignored and --root paths with ./
  • #85
    • Make possible to specify whether ignore localhost links, use check-localhost CLA argument (by default localhost links will not be checked).
    • Make possible to ignore auth failures (assume 'protected' links valid), use ignoreAuthFailures parameter of config.
  • #66
    • Added support for ftp links.
  • #74
    • Add the duplication detection & verification result caching algorithm for external references.
  • #82
    • Fix the issue of having the lowest level context duplicated, caused by the root's trailing path separator.
  • #88
    • Handle the "429 too many requests" errors & attempt to eliminate them during verification.
  • #128
    • Make ignoreRefs a required parameter.
  • #129
    • Add support for the id attribute in anchors.
  • #116
    • Allow certain reserved characters to be present in the query strings of the URLs.
  • #130
    • Fixed bug with ignoring checks for relative anchors.
  • #132
    • Display URL parsing errors.
  • #131
    • Add support for glob patterns to ignored and notScanned.
    • Remove support for directory names from ignored and notScanned.
    • Fix bug with ignored not ignoring files with broken xrefcheck annotations.
  • #142
    • Remove check-localhost CLI option and checkLocalhost config option.
    • Add a regex matching localhost links to the ignoreRefs field of the default config.
  • #68
    • Recognise manual HTML-anchors inside headers.
  • #141
    • Dump all the errors from different files.
    • Fix bug where no errors were reported about broken link annotation and unrecognised annotation.
  • #159
    • Make all config options optional.

0.2

  • #57
    • Added flavor field to config. Also see config sample.
    • Config generated with dump-config CLI command now depends on the provided repository type.

0.1.3

  • #58
    • Switch to lts-17.3.
  • #53
    • Make possible to include a regular expression in ignoreRefs parameter of config to ignore external references.
    • Add support of right in-place ignoring annotations such as ignore file, ignore paragraph and ignore link.

0.1.2

  • #44
    • Decide whether to show progress bar by default depending on CI env variable.
    • Added --progress option.

0.1.1.2

  • #34
    • Do not depend on autoexporter and base-noprelude.

0.1.1.1

  • #30
    • Do not depend on loot-prelude package.

0.1.1

  • #19
    • Make ignored in config consider only exact matches.
    • Improve virtual files consideration.
    • Add ignored CLI option.

0.1.0.0

Initial release.