Skip to content

Fixes broken .html links with anchors

Lyle Kozloff requested to merge lyle-fix-html-anchor-links into main

Why is this change being made?

💡 Provide a detailed answer to the question on why this change is being proposed, in accordance with our value of Transparency.

I realized the script from !1446 (merged) didn't catch .html#anchor style links... this fixes a bunch more broken stuff.

require 'find'
require 'nokogiri'
require 'open-uri'


directory = '.'

Find.find(directory) do |path|
  if File.file?(path) && path.end_with?('.md')
    file = File.read(path)
    html_links = file.scan(/\[.+\]\(.+\.html#.+?\)/)
    
    html_links.each do |link|
      url = link.match(/\((.+?)\)/)[1]
      
      if url.start_with?('/handbook')
        # Prepend domain
        url = "https://about.gitlab.com#{url}"
      end 
           
        begin
            response = URI.open(url)
            
            rescue OpenURI::HTTPError => e
                # Update the file
                puts "updating link #{url}"
                new_link = link.gsub(/\.html/, '')
                file.gsub!(link, new_link)
                File.write(path, file)
                next
            rescue => e
                puts "WTF? Tried to access #{url} from #{link} on #{path}"
                next
            end
           
        
    end
  end
end

Author and Reviewer Checklist

Please verify the check list and ensure to tick them off before the MR is merged.

  • Provided a concise title for this Merge Request (MR)
  • Added a description to this MR explaining the reasons for the proposed change, per say why, not just what
    • Copy/paste the Slack conversation to document it for later, or upload screenshots. Verify that no confidential data is added, and the content is SAFE
  • Assign reviewers for this MR to the correct Directly Responsible Individual/s (DRI)
    • If the DRI for the page/s being updated isn’t immediately clear, then assign it to one of the people listed in the Maintained by section on the page being edited
    • If your manager does not have merge rights, please ask someone to merge it AFTER it has been approved by your manager in #mr-buddies
    • The when to get approval handbook section explains the workflow in more detail
  • For transparency, share this MR with the audience that will be impacted.
    • Team: For changes that affect your direct team, share in your group Slack channel
    • Department: If the update affects your department, share the MR in your department Slack channel
    • Company: If the update affects all (or the majority of) GitLab team members, post an update in #whats-happening-at-gitlab linking to this MR

Edited by Katrin Leinweber

Merge request reports