Files
2026-07-19 13:43:15 -07:00

73 lines
2.0 KiB
Ruby

# frozen_string_literal: true
require "rake"
RUBYDOC_DIR = "#{__dir__}/rubydoc".freeze
task default: :build
desc "Generate documentation with YARD"
task :yard do
cd "#{__dir__}/../Library/Homebrew" do
sh "bundle exec yard doc --output #{RUBYDOC_DIR}"
end
end
desc "Build the site."
task :build do
sh "bundle exec jekyll build"
end
desc "Run Markdownlint to validate the Markdown style."
task :lint do
sh "mdl $(git ls-files '*.md' | grep -v 'Manpage.md' | grep -v '^docs/index.md$' | grep -v '^index.md$')"
cd(__dir__) { sh "mdl --style index.mdl_style.rb index.md" } if File.exist?("#{__dir__}/index.md")
sh "grep -L '^last_review_date:' $(git ls-files '*.md' | grep -v 'Manpage.md') | " \
"xargs -I {} echo 'File {} is missing last_review_date frontmatter.'"
end
desc "Run HTMLProofer to validate the HTML output."
task test: :build do
require "html-proofer"
HOMEBREW_USER_AGENT = ENV.fetch("HOMEBREW_USER_AGENT", nil).freeze
HTMLProofer.check_directory(
"./_site",
parallel: { in_threads: 4 },
typhoeus: {
headers: {
"User-Agent" => "#{"#{HOMEBREW_USER_AGENT} " if HOMEBREW_USER_AGENT}HTMLProofer/#{HTMLProofer::VERSION}",
},
},
favicon: true,
ignore_status_codes: [0, 403, 429],
check_favicon: true,
check_opengraph: true,
check_html: true,
check_img_http: true,
enforce_https: true,
ignore_files: [
/Kickstarter-Supporters/,
%r{/rubydoc/},
],
ignore_urls: [
"/",
%r{https://docs\.brew\.sh/},
%r{/rubydoc/},
%r{https://github.com/},
%r{https://homebrew.1password.com/},
%r{https://gist.github.com/},
"https://metacpan.org/pod/local::lib",
%r{https://www\.virustotal\.com/?},
%r{https://pypi.org/?},
"https://itunes.apple.com/us/app/xcode/id497799835",
],
cache: {
timeframe: {
external: "1d",
internal: "1h",
},
},
).run
end