Historically, when somebody visited a Paste or Diffusion file and clicked on a line number, we always constructed URIs in the format file$45 as the link target for line number 45 in the line number column of document file (resp. file$1-10 for lines 1-10), providing the ability to highlight one or several lines. Accessing this URI highlights the corresponding lines and automatically scrolls to the highlighted line(s) with a 60px top margin.
It is important to note that when $45 is present in a URI, it is sent to the server (making a "permalink"), while #45 would be not. So, a downside of using this permalink-based approach instead of standard # HTML anchor fragments ("web fragments") is that every URI obtained and shared around while clicking from the line number column in Paste and Diffusion file pages, that permalink file$123 is technically a separate URI to be visited and downloaded compared to file. When you click on a line number and you share that permalink on a public comment, that permalink attracts crawlers, and they download that page again, even if crawlers already accessed that content. In an age of pirate AI trainers that scrape any permalink every second, it's better to adopt web fragments instead, so that they download your file once (or at least less often....), whatever the amount of comments you shared talking about lines.
As a solution:
- When clicking a single line, such as 123, generate a web fragment like #L123 for the link target. This preserves line highlighting but vastly reduces the number of links a crawler could follow when it reaches such URIs, e.g., when a user mentions that line #L123 from a comment.
- When clicking on multiple lines 123-124, also use web fragments like #L123-124.
- When receiving legacy visits to $123 or $L123-124, it still works; we have not introduced link rot. However, if you visit these and if you click again on a different line, you get the new fragment-based URI.
Don't panic. Note that the previous situation was not extremely bad anyway, as the Paste or Diffusion did not really allow a permalink to be found for each line anyway. A click was still needed to generate such permalink and a human being was still needed to share such permalink somewhere (e.g. a comment).
Note that this modification cannot replace all comments previously shared by human beings, and they probably shouldn't.
Note that Phorge cannot travel back in time, and we cannot obliviate crawlers to do not try to visit anymore old $123 URIs. At least the promise is that your coworkers will not generate any more of these additional permalinks, and no link is broken.