@@ -137,15 +137,23 @@ checkFile filePath = do
137--------------------------------------------------------------------------------
137--------------------------------------------------------------------------------
138checkUrl :: FilePath -> String -> Checker ()
138checkUrl :: FilePath -> String -> Checker ()
139checkUrl filePath url
139checkUrl filePath url
140− | isExternal url = checkExternalUrl url
140+ | isExternal url = checkExternalUrl url
141− | "mailto:" `isPrefixOf` url = ok url
141+ | hasProtocol url = skip "Unknown protocol, skipping"
142− | otherwise = checkInternalUrl filePath url
142+ | otherwise = checkInternalUrl filePath url
144+ hasProtocol = all (`elem` validProtoChars) . takeWhile (/= ':')
145+ validProtoChars = ['A'..'Z'] ++ ['a'..'z'] ++ ['0'..'9'] ++ "+-."
145--------------------------------------------------------------------------------
147--------------------------------------------------------------------------------
146ok :: String -> Checker ()
148ok :: String -> Checker ()
147ok _ = tell $ mempty {checkerOk = 1}
149ok _ = tell $ mempty {checkerOk = 1}
151+--------------------------------------------------------------------------------
152+skip :: String -> Checker ()
154+ logger <- checkerLogger <$> ask
155+ Logger.debug logger $ reason
156+ tell $ mempty {checkerOk = 1}
150--------------------------------------------------------------------------------
158--------------------------------------------------------------------------------
151faulty :: String -> Checker ()
159faulty :: String -> Checker ()