Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The problem: if you search on Google for many things in the D documentation, you get results from a scatter of places. For example, for this search I'm getting results from /cutting-edge/ and /phobos-prerelease/, with the main docs being omitted due to similarity, which is usually not that useful. Many other searches also return results from various combinations of domains: dlang.org, www.dlang.org, d-programming-language.org, www.d-programming-language.org.
This pull request does two things to rectify the problem:
<link rel="canonical" ...>
line points to valid URLs. Currently this doesn't include Phobos docs - see below.robots.txt
which prevents search engines from returning the generally less-useful results from the /cutting-edge/ and /phobos-prerelease/ subdirectories. (Alternatively, this could be achieved with an XML sitemap specifying the importance of those pages.)While I'd also like to add a canonical link to Phobos docs, I don't see a good way to do it with the limitations of DDoc. Since it completely lacks string processing macros, it's not possible to create a correct link based on the existing predefined
$(TITLE)
and$(DOCFILENAME)
macros. It would be possible by adding another predefined macro to DMD, or specifying the corresponding documentation filename in every Phobos/DRuntime module. Alternatively, just add the bloody redirect :)