require "rake"

task default: :build

desc "Build the site."
task :build do
  sh "jekyll", "build"
end

desc "Run Markdownlint to validate the Markdown style."
task :lint do
  sh "mdl $(git ls-files '*.md' | grep -v 'Manpage.md')"
end

desc "Run HTMLProofer to validate the HTML output."
task test: :build do
  require "html-proofer"
  HTMLProofer.check_directory(
    "./_site",
    parallel: { in_threads: 4 },
    favicon: true,
    ignore_status_codes: [0, 403],
    check_favicon: true,
    check_opengraph: true,
    check_html: true,
    check_img_http: true,
    enforce_https: true,
    ignore_files: [
      %r{Kickstarter-Supporters},
    ],
    ignore_urls: [
      %r{https://formulae.brew.sh"},
      %r{https://github.com/},
      'https://legacy.python.org/dev/peps/pep-0453/#recommendations-for-downstream-distributors',
    ],
    cache: {
      timeframe: {
        external: "1h"
      }
    }
  ).run
end
