@@ -303,23 +303,24 @@ codeBlockDelimiter len = try $ do
303303 Nothing -> count 3 (char '~') >> many (char '~') >>=
304304 return . (+ 3) . length
305305 many spaceChar
306− lang <- option "" classAttribute
306+ lang <- option "" classAttributes
307307 blankline
308308 return (size, lang)
309309
310−classAttribute = try $ do
310+classAttributes = try $ do
311311 char '{'
312312 many spaceChar
313− char '.'
314− attr <- many1 alphaNum
315− many spaceChar
313+ attrs <- many $ do char '.'
314+ attr <- many1 alphaNum
315+ many spaceChar
316+ return attr
316317 char '}'
317− return attr
318+ return $ unwords attrs
318319
319320codeBlockDelimited = try $ do
320321 (size, lang) <- codeBlockDelimiter Nothing
321322 contents <- manyTill anyLine (codeBlockDelimiter (Just size))
322− return $ CodeBlock lang $ concat contents
323+ return $ CodeBlock lang $ joinWithSep "\n" contents
323324
324325codeBlockIndented = do
325326 contents <- many1 (indentedLine <|>