@@ -265,8 +265,20 @@ definitionList :: Parser [Char] ParserState Blocks
265265definitionList = try $ B.definitionList <$> many1 definitionListItem
266266
267267-- | List start character.
268−listStart :: Parser [Char] st Char
269−listStart = oneOf "*#-"
268+listStart :: Parser [Char] ParserState ()
269+listStart = genericListStart '*'
270+ <|> () <$ genericListStart '#'
271+ <|> () <$ definitionListStart
272+
273+genericListStart :: Char -> Parser [Char] st ()
274+genericListStart c = () <$ try (many1 (char c) >> whitespace)
275+
276+definitionListStart :: Parser [Char] ParserState Inlines
277+definitionListStart = try $ do
278+ char '-'
279+ whitespace
280+ trimInlines . mconcat <$>
281+ many1Till inline (try (string ":=")) <* optional whitespace
270282
271283listInline :: Parser [Char] ParserState Inlines
272284listInline = try (notFollowedBy newline >> inline)
@@ -278,8 +290,7 @@ listInline = try (notFollowedBy newline >> inline)
278290-- break.
279291definitionListItem :: Parser [Char] ParserState (Inlines, [Blocks])
280292definitionListItem = try $ do
281− string "- "
282− term <- mconcat <$> many1Till inline (try (whitespace >> string ":="))
293+ term <- definitionListStart
283294 def' <- multilineDef <|> inlineDef
284295 return (term, def')
285296 where inlineDef :: Parser [Char] ParserState [Blocks]
@@ -488,7 +499,7 @@ str = do
488499 return $ B.str fullStr
489500
490501-- | Some number of space chars
491−whitespace :: Parser [Char] ParserState Inlines
502+whitespace :: Parser [Char] st Inlines
492503whitespace = many1 spaceChar >> return B.space <?> "whitespace"
493504
494505-- | In Textile, an isolated endline character is a line break