@@ -911,8 +911,15 @@ htmlTag :: Monad m
911911htmlTag f = try $ do
912912 lookAhead (char '<')
913913 inp <- getInput
914− let (next : _) = canonicalizeTags $ parseTags inp
914+ let hasTagWarning (TagWarning _:_) = True
915+ hasTagWarning _ = False
916+ let (next : rest) = canonicalizeTags $ parseTagsOptions
917+ parseOptions{ optTagWarning = True } inp
915918 guard $ f next
919+ -- we get a TagWarning on things like
920+ -- <www.boe.es/buscar/act.php?id=BOE-A-1996-8930#a66>
921+ -- which should NOT be parsed as an HTML tag, see #2277
922+ guard $ not $ hasTagWarning rest
916923 case next of
917924 TagComment s
918925 | "<!--" `isPrefixOf` inp -> do