Fix doc links (#884)#886
Conversation
|
I propose to don't do subdirectories @dtchepak WDYT? |
I'm not sure about this. 🤔 It is relying on github pages specific implementation right? I kind of like being able to do |
- move `/docs` to `/help` - remove dates from doc names - move docs to sub-directories and rename to index.md so we get nice urls (e.g. `help/example` rather than `help/example.html`. - use `wget --spider` to detect and fix broken links. - fix search rendering. Note: dark mode does not play nicely with the GCSE input box[1] [1]: https://support.google.com/programmable-search/
- include all doc *.md files in tests - name doc tests using directory name if file name is `index.*`.
| { | ||
| return $"Tests_{Path.GetFileNameWithoutExtension(markdownFile.Path).Replace("-", "_")}"; | ||
| var file = Path.GetFileNameWithoutExtension(markdownFile.Path); | ||
| var pathSegments = markdownFile.Path.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); |
There was a problem hiding this comment.
you can avoid manually working with paths
var fileName = Path.GetFileNameWithoutExtension(markdownFile.Path);
var directoryName = new FileInfo(markdownFile.Path).Directory.Name;
var nameToUse = string.Equals(fileName, "index", StringComparison.InvariantCultureIgnoreCase) ? directoryName : fileName;
return $"Tests_{nameToUse.Replace("-", "_")}";
If we need support other platforms then github pages - maybe this is fine |
There was a problem hiding this comment.
Pull Request Overview
This PR fixes and improves documentation links by moving content from the /docs to the /help directory, updating URL patterns, and adjusting tests accordingly.
- Update csproj file to recursively include markdown files from the new docs structure.
- Refactor test file name generation to accommodate renamed and reorganized documentation files.
- Update table of contents and link references to point to the new /help location and remove outdated docs.
Reviewed Changes
Copilot reviewed 10 out of 34 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/NSubstitute.Documentation.Tests/NSubstitute.Documentation.Tests.csproj | Updated wildcard inclusion for markdown files in the new structure |
| tests/NSubstitute.Documentation.Tests.Generator/DocumentationTestsGenerator.cs | Modified test class name generation to consider folder names |
| docs/toc.yml | Updated links from docs/ to help/ |
| docs/index.md | Added download sidebar and restructured the documentation home page |
| docs/help/toc.yml | New table of contents for the help directory |
| docs/help/search/index.md | New search page with Google CSE integration |
| docs/help/creating-a-substitute/index.md | Updated link for "How NSubstitute works" for correct trailing slash |
| docs/help.md | Updated links from /docs/ to /help/ |
| docs/docs/toc.yml | Removed outdated table of contents for legacy docs |
| docs/docs/2019-01-01-search.md | Deleted outdated search page |
|
@Romfos could you merge this pr? Would be great to see the links working again. |
|
@304NotModified I don't have merge permission. We need wait @dtchepak for feedback |
|
Unfortunately I also don't have merge permission |
I think I've fixed this now @304NotModified and @Romfos 🤞 |
|
@dtchepak yes, I have it. Please deploy new version after fix |
|
Deployed ✔️ |
Updated [NSubstitute](https://github.com/nsubstitute/NSubstitute) from 5.3.0 to 6.0.0. <details> <summary>Release notes</summary> _Sourced from [NSubstitute's releases](https://github.com/nsubstitute/NSubstitute/releases)._ ## 6.0.0 :information_source: No changes from [Release Candidate 1](https://github.com/nsubstitute/NSubstitute/releases/tag/v6.0.0-rc.1). # NSubstitute v6.0.0 From [RC1](https://github.com/nsubstitute/NSubstitute/releases/tag/v6.0.0-rc.1) notes: * [NEW] `ArgMatchers.Matching` predicate matcher as an alternative to `Is(Expression<Predicate<T>>`. (.NET6 and above.) * [UPDATE] Improved support for custom argument matchers. `Arg.Is` now accepts arg matchers. * [UPDATE][BREAKING] Update target frameworks: .NET8, .NET Standard 2.0 * [UPDATE][BREAKING] Remove legacy obsolete API * [UPDATE][BREAKING] Mark as obsolete api CompatArg with pre c# 7.0 support * [UPDATE][BREAKING] Nullability is enabled for public api for .NET 8+ TFMs * [UPDATE] Migrate documentation to [docfx platform](https://github.com/dotnet/docfx) and update samples to NUnit 4 * [NEW] Added NuGet Package README file. ## Full change list * Update target frameworks and other infrastructure changes by @Romfos in nsubstitute/NSubstitute#831 * Remove Google Groups hyperlinks by @304NotModified in nsubstitute/NSubstitute#804 * Improve output for expected argument matchers in nsubstitute/NSubstitute#806 * Mark Substitute.For<T> method as Pure by @Dzliera in nsubstitute/NSubstitute#844 * Move package creating from build.fsproj to github actions by @Romfos in nsubstitute/NSubstitute#838 * Added .NET 9 to test matrix by @Romfos in nsubstitute/NSubstitute#848 * Update dependencies by @Saibamen in nsubstitute/NSubstitute#843 * Migrate documentation to docfx by @Romfos in nsubstitute/NSubstitute#850 * Added test for issue #716 by @rbeurskens in nsubstitute/NSubstitute#846 * feat: add dependabot for this project for minor and patch updates for nuget packages and github actions by @wmundev in nsubstitute/NSubstitute#792 * #853 Fix matching with multiple generic arguments of the same type by @rholek in nsubstitute/NSubstitute#858 * Ability to mock protected methods with and without return value by @Jason31569 in nsubstitute/NSubstitute#845 * Enable nullability for public api by @Romfos in nsubstitute/NSubstitute#856 * Bugfix/async event handlers return instantly by @jmartschinke in nsubstitute/NSubstitute#808 * Fix matching generic calls with AnyType when the generic argument is also a generic argument in return type, out or ref parameter by @JMolenkamp in nsubstitute/NSubstitute#862 * Feature: allow interception of any generic method call when using Arg.AnyType by @JMolenkamp in nsubstitute/NSubstitute#855 * Params arg unit test by @Jason31569 in nsubstitute/NSubstitute#874 * Added exception extensions for ValueTask without return type (rebase) in nsubstitute/NSubstitute#873 * Migrate to slnx by @Romfos in nsubstitute/NSubstitute#882 * Migrate documentation validation from build.fsproj to Roslyn code generator by @Romfos in nsubstitute/NSubstitute#883 * Fix doc links (#884) in nsubstitute/NSubstitute#886 * Add PackageReadmeFile. by @peymanr34 in nsubstitute/NSubstitute#888 * Make public api and tests the same for all TFMs by @Romfos in nsubstitute/NSubstitute#885 * Migrate documentation samples to NUnit4 by @Romfos in nsubstitute/NSubstitute#889 * Run unit tests in Microsoft.Testing.Platform mode by @Romfos in nsubstitute/NSubstitute#896 * Bump actions/checkout from 4 to 5 by @dependabot[bot] in nsubstitute/NSubstitute#902 * Fix typo in return value documentation by @ericmutta in nsubstitute/NSubstitute#903 * Bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in nsubstitute/NSubstitute#907 * Fix typo in received calls documentation by @ericmutta in nsubstitute/NSubstitute#904 * Simplify github actions to use less jobs by @Romfos in nsubstitute/NSubstitute#911 * Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in nsubstitute/NSubstitute#916 * Bump NUnit3TestAdapter from 5.0.0 to 5.2.0 by @dependabot[bot] in nsubstitute/NSubstitute#922 ... (truncated) ## 6.0.0-rc.1 # NSubstitute v6.0.0 Release Candidate 1 Due to the large number of changes in this release, we wanted to start with a release candidate to ensure we've correctly captured breaking changes. * [NEW] `ArgMatchers.Matching` predicate matcher as an alternative to `Is(Expression<Predicate<T>>`. (.NET6 and above.) * [UPDATE] Improved support for custom argument matchers. `Arg.Is` now accepts arg matchers. * [UPDATE][BREAKING] Update target frameworks: .NET8, .NET Standard 2.0 * [UPDATE][BREAKING] Remove legacy obsolete API * [UPDATE][BREAKING] Mark as obsolete api CompatArg with pre c# 7.0 support * [UPDATE][BREAKING] Nullability is enabled for public api for .NET 8+ TFMs * [UPDATE] Migrate documentation to [docfx platform](https://github.com/dotnet/docfx) and update samples to NUnit 4 * [NEW] Added NuGet Package README file. ## Full change list * Update target frameworks and other infrastructure changes by @Romfos in nsubstitute/NSubstitute#831 * Remove Google Groups hyperlinks by @304NotModified in nsubstitute/NSubstitute#804 * Improve output for expected argument matchers in nsubstitute/NSubstitute#806 * Mark Substitute.For<T> method as Pure by @Dzliera in nsubstitute/NSubstitute#844 * Move package creating from build.fsproj to github actions by @Romfos in nsubstitute/NSubstitute#838 * Added .NET 9 to test matrix by @Romfos in nsubstitute/NSubstitute#848 * Update dependencies by @Saibamen in nsubstitute/NSubstitute#843 * Migrate documentation to docfx by @Romfos in nsubstitute/NSubstitute#850 * Added test for issue #716 by @rbeurskens in nsubstitute/NSubstitute#846 * feat: add dependabot for this project for minor and patch updates for nuget packages and github actions by @wmundev in nsubstitute/NSubstitute#792 * #853 Fix matching with multiple generic arguments of the same type by @rholek in nsubstitute/NSubstitute#858 * Ability to mock protected methods with and without return value by @Jason31569 in nsubstitute/NSubstitute#845 * Enable nullability for public api by @Romfos in nsubstitute/NSubstitute#856 * Bugfix/async event handlers return instantly by @jmartschinke in nsubstitute/NSubstitute#808 * Fix matching generic calls with AnyType when the generic argument is also a generic argument in return type, out or ref parameter by @JMolenkamp in nsubstitute/NSubstitute#862 * Feature: allow interception of any generic method call when using Arg.AnyType by @JMolenkamp in nsubstitute/NSubstitute#855 * Params arg unit test by @Jason31569 in nsubstitute/NSubstitute#874 * Added exception extensions for ValueTask without return type (rebase) in nsubstitute/NSubstitute#873 * Migrate to slnx by @Romfos in nsubstitute/NSubstitute#882 * Migrate documentation validation from build.fsproj to Roslyn code generator by @Romfos in nsubstitute/NSubstitute#883 * Fix doc links (#884) in nsubstitute/NSubstitute#886 * Add PackageReadmeFile. by @peymanr34 in nsubstitute/NSubstitute#888 * Make public api and tests the same for all TFMs by @Romfos in nsubstitute/NSubstitute#885 * Migrate documentation samples to NUnit4 by @Romfos in nsubstitute/NSubstitute#889 * Run unit tests in Microsoft.Testing.Platform mode by @Romfos in nsubstitute/NSubstitute#896 * Bump actions/checkout from 4 to 5 by @dependabot[bot] in nsubstitute/NSubstitute#902 * Fix typo in return value documentation by @ericmutta in nsubstitute/NSubstitute#903 * Bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in nsubstitute/NSubstitute#907 * Fix typo in received calls documentation by @ericmutta in nsubstitute/NSubstitute#904 * Simplify github actions to use less jobs by @Romfos in nsubstitute/NSubstitute#911 * Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in nsubstitute/NSubstitute#916 * Bump NUnit3TestAdapter from 5.0.0 to 5.2.0 by @dependabot[bot] in nsubstitute/NSubstitute#922 * Bump BenchmarkDotNet from 0.15.2 to 0.15.5 by @dependabot[bot] in nsubstitute/NSubstitute#921 * Add .NET 10 to test matrix by @Romfos in nsubstitute/NSubstitute#913 ... (truncated) Commits viewable in [compare view](nsubstitute/NSubstitute@v5.3.0...v6.0.0). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
/docsto/helphelp/examplerather thanhelp/example.html.wget --spiderto detect and fix broken links.