defmodule Mix.Tasks.Vnu.Validate.Html do use Mix.Task alias Vnu.CLI @shortdoc "Validates HTML files" @moduledoc """ Validates HTML files. It expects a file or a list of files as an argument. ```bash mix vnu.validate.html [OPTIONS] FILE [FILE2 FILE3...] ``` ## Options - `--server-url` - The URL of the Checker server. Defaults to `http://localhost:8888`. - `--fail-on-warnings` - Messages of type `:info` and subtype `:warning` will be treated as if they were validation errors. Their presence will mean the document is invalid. Defaults to `false`. - `--filter` - A module implementing the `Vnu.MessageFilter` behavior that will be used to exclude messages matching the filter from the result. Defaults to `nil` (no excluded messages). - `--http-client` - A module implementing the `Vnu.HTTPClient` behaviour that will be used to make the HTTP request to the server. Defaults to `Vnu.HTTPClient.Hackney`. ## Exit code If validation of all files finished and no errors were found, the task will exit with code `0`. If the validation of at least one file did not finish for any reason, or resulted in validation errors, the task will exit with code `1`. Examples ```bash mix vnu.validate.html index.html about.html mix vnu.validate.html --server-url http://localhost:8888 priv/static/**/*.html mix vnu.validate.html --filter MyApp.VnuMessageFilter priv/static/**/*.html ``` """ @doc false @spec run(list()) :: no_return() def run(argv) do CLI.validate(argv, :html) end end