diff options
author | Yan Pas <yanp.bugz@gmail.com> | 2018-10-07 22:41:11 +0300 |
---|---|---|
committer | Yan Pas <yanp.bugz@gmail.com> | 2018-10-09 23:59:12 +0300 |
commit | 07b4d7b297dfc83f47aa1d708b7405a5e4b3cc4f (patch) | |
tree | 28d671d6a4a89c36d1c71a46a1ffe6f288aac797 /src/Text/Pandoc/Readers | |
parent | 753a4d376df9faecce20d2b60a1d56b9ee0c9357 (diff) | |
download | pandoc-07b4d7b297dfc83f47aa1d708b7405a5e4b3cc4f.tar.gz |
posix man files parsed successfully
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r-- | src/Text/Pandoc/Readers/Man.hs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/Man.hs b/src/Text/Pandoc/Readers/Man.hs index 9802216c6..aea53a375 100644 --- a/src/Text/Pandoc/Readers/Man.hs +++ b/src/Text/Pandoc/Readers/Man.hs @@ -182,7 +182,8 @@ escapeLexer = do let skipSeqs = ["%", "{", "}", "&", "\n", ":", "\"", "0", "c"] subsSeqs = [ ("-", '-'), (" ", ' '), ("\\", '\\'), ("[lq]", '“'), ("[rq]", '”') , ("[em]", '—'), ("[en]", '–'), ("*(lq", '«'), ("*(rq", '»') - , ("t", '\t'), ("e", '\\'), ("`", '`') ] + , ("t", '\t'), ("e", '\\'), ("`", '`'), ("^", ' '), ("|", ' ') + , ("'", '`') ] substitute :: PandocMonad m => (String,Char) -> ManLexer m EscapeThing substitute (from,to) = try $ string from >> return (EChar to) skip :: PandocMonad m => String -> ManLexer m EscapeThing @@ -219,7 +220,7 @@ escapeLexer = do escUnknown = do c <- anyChar pos <- getPosition - logOutput $ SkippedContent ("Unknown escape seq \\" ++ [c]) pos + logOutput $ SkippedContent ("Unknown escape sequence \\" ++ [c]) pos return ENothing currentFont :: PandocMonad m => ManLexer m FontKind @@ -240,7 +241,7 @@ lexMacro :: PandocMonad m => ManLexer m ManToken lexMacro = do char '.' <|> char '\'' many spacetab - macroName <- many1 (letter <|> oneOf ['\\', '"']) + macroName <- many1 (letter <|> oneOf ['\\', '"', '&']) args <- lexArgs let joinedArgs = unwords $ fst <$> args knownMacro mkind = MMacro mkind args @@ -269,7 +270,8 @@ lexMacro = do -- TODO better would be [[RoffStr]], since one arg may have different fonts lexArgs :: PandocMonad m => ManLexer m [RoffStr] lexArgs = do - args <- many oneArg + args <- many $ try oneArg + many spacetab eofline return args |