-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Add --link-targets-dir
argument to linkchecker
#143883
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add --link-targets-dir
argument to linkchecker
#143883
Conversation
These commits modify the If this was unintentional then you should revert the changes before this PR is merged. |
This comment has been minimized.
This comment has been minimized.
739a113
to
d51bfa1
Compare
d51bfa1
to
6831c80
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you help me understand a little more about how your tool works? Is it generating some intermediate files with relative paths, and then translating them to absolute paths? What do the directory structures look like?
@@ -10,3 +10,4 @@ path = "main.rs" | |||
[dependencies] | |||
regex = "1" | |||
html5ever = "0.29.0" | |||
clap = { version = "4.5.40", features = ["derive"] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a little uneasy adding this because this tool intentionally tries to keep its dependencies down to a minimum because it is used in many repositories.
Are there maybe some alternatives here? Do this really need a full feature CLI parser? At a minimum, can this drop the default features? Perhaps use the builder API instead of derive?
The relnotes-api-list tool generates a JSON file with all stabilized APIs in the standard library, and their documentation URLs. These URLs look like I want to add a step to the tool verifying all those links are correct. To do so, my current implementation generates a temporary HTML file with an In practice, this would be like placing my temporary file in
That's why I decided to add the |
In my release notes API list tool (#143053) I want to check whether all links generated by the tool are actually valid, and using linkchecker seems to be the most sensible choice.
Linkchecker currently has a fairly big limitation though: it can only check a single directory, it checks all of the files within it, and link targets must point inside that same directory. This works great when checking the whole documentation package, but in my case I only need to check that one file contains valid links to the standard library docs.
To solve that, this PR adds a new
--link-targets-dir
flag to linkchecker. Directories passed to it will be valid link targets (with lower priority than the root being checked), but links within them will not be checked.I'm not that happy with the name of the flag, happy for it to be bikeshedded.