Really fix #3989.
The previous fix only worked in certain cases. Other cases with `>` in an HTML attribute broke.
This commit is contained in:
parent
f1ebdb8145
commit
ed3d466384
2 changed files with 13 additions and 6 deletions
|
@ -1133,6 +1133,7 @@ htmlTag :: (HasReaderOptions st, Monad m)
|
|||
-> ParserT [Char] st m (Tag String, String)
|
||||
htmlTag f = try $ do
|
||||
lookAhead (char '<')
|
||||
startpos <- getPosition
|
||||
inp <- getInput
|
||||
let ts = canonicalizeTags $ parseTagsOptions
|
||||
parseOptions{ optTagWarning = False
|
||||
|
@ -1153,11 +1154,17 @@ htmlTag f = try $ do
|
|||
[] -> False
|
||||
(c:cs) -> isLetter c && all isNameChar cs
|
||||
|
||||
let endAngle = try $ do char '>'
|
||||
pos <- getPosition
|
||||
guard $ (sourceLine pos == ln &&
|
||||
sourceColumn pos >= col) ||
|
||||
sourceLine pos > ln
|
||||
let endpos = if ln == 1
|
||||
then setSourceColumn startpos
|
||||
(sourceColumn startpos + (col - 1))
|
||||
else setSourceColumn (setSourceLine startpos
|
||||
(sourceLine startpos + (ln - 1)))
|
||||
col
|
||||
let endAngle = try $
|
||||
do char '>'
|
||||
pos <- getPosition
|
||||
guard $ pos >= endpos
|
||||
|
||||
let handleTag tagname = do
|
||||
-- basic sanity check, since the parser is very forgiving
|
||||
-- and finds tags in stuff like x<y)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
```
|
||||
pandoc -f markdown -t native
|
||||
<span title="1st line of text <br> 2nd line of text">foo</span>
|
||||
<span title="1st line of text <br> 2nd line of text">foo</span>
|
||||
<span title="1st line of text <br> 2nd line of text">foo</span>
|
||||
^D
|
||||
[Para [Span ("",[],[("title","1st line of text <br> 2nd line of text")]) [Str "foo"],SoftBreak,Span ("",[],[("title","1st line of text <br> 2nd line of text")]) [Str "foo"]]]
|
||||
```
|
||||
|
|
Loading…
Add table
Reference in a new issue