diff options
author | defanor <defanor@uberspace.net> | 2017-11-05 07:55:04 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2017-11-05 07:55:04 +0300 |
commit | 8f9c51474f8cad8cd2337f9231d95fd8e7f7e258 (patch) | |
tree | e0dcfc3e32deb6df7ce066997e7088c906085ac9 /Pancake/Command.hs | |
parent | 7488196f36824184e2e9088ed9984a189a87cffa (diff) |
Allow to set document types explicitly
Diffstat (limited to 'Pancake/Command.hs')
-rw-r--r-- | Pancake/Command.hs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Pancake/Command.hs b/Pancake/Command.hs index 46a3e66..a1a0b09 100644 --- a/Pancake/Command.hs +++ b/Pancake/Command.hs @@ -23,7 +23,8 @@ import Pancake.Configuration data Command = Quit | Follow Int | More - | GoTo URI + | GoTo (Maybe String) URI + -- ^ Document type, URI | Reload | Back | Forward @@ -61,8 +62,9 @@ showRef = char '?' *> (Show . read <$> many1 digit) <* eof -- | 'GoTo' command parser. goTo :: Parser Command goTo = do - s <- manyTill anyChar eof - maybe (fail "Failed to parse URI") (pure . GoTo) $ parseURIReference s + f <- optionMaybe (try (many1 alphaNum <* space)) <?> "type" + s <- manyTill anyChar eof <?> "URI" + maybe (fail "Failed to parse URI") (pure . GoTo f) $ parseURIReference s -- | 'Shortcut' command parser. shortcut :: M.Map String String -> Parser Command |