mirror of
https://github.com/jgm/pandoc.git
synced 2026-09-24 15:44:59 +08:00
Muse reader: add support for <biblio> and <play> tags
This commit is contained in:
@@ -36,8 +36,7 @@ TODO:
|
||||
- Org tables
|
||||
- table.el tables
|
||||
- Images with attributes (floating and width)
|
||||
- Citations and <biblio>
|
||||
- <play> environment
|
||||
- <cite> tag
|
||||
-}
|
||||
module Text.Pandoc.Readers.Muse (readMuse) where
|
||||
|
||||
@@ -322,6 +321,8 @@ blockElements = do
|
||||
, rightTag
|
||||
, quoteTag
|
||||
, divTag
|
||||
, biblioTag
|
||||
, playTag
|
||||
, verseTag
|
||||
, lineBlock
|
||||
, table
|
||||
@@ -413,6 +414,18 @@ divTag = do
|
||||
(attrs, content) <- parseHtmlContent "div"
|
||||
return $ B.divWith attrs <$> content
|
||||
|
||||
-- <biblio> tag is supported by Amusewiki only
|
||||
biblioTag :: PandocMonad m => MuseParser m (F Blocks)
|
||||
biblioTag = do
|
||||
guardEnabled Ext_amuse
|
||||
fmap (B.divWith ("", ["biblio"], [])) . snd <$> parseHtmlContent "biblio"
|
||||
|
||||
-- <play> tag is supported by Amusewiki only
|
||||
playTag :: PandocMonad m => MuseParser m (F Blocks)
|
||||
playTag = do
|
||||
guardEnabled Ext_amuse
|
||||
fmap (B.divWith ("", ["play"], [])) . snd <$> parseHtmlContent "play"
|
||||
|
||||
verseLine :: PandocMonad m => MuseParser m (F Inlines)
|
||||
verseLine = do
|
||||
indent <- (B.str <$> many1 (char ' ' >> pure '\160')) <|> pure mempty
|
||||
|
||||
@@ -281,6 +281,23 @@ tests =
|
||||
] =?>
|
||||
divWith ("foo", [], []) (para "Foo bar")
|
||||
]
|
||||
, "Biblio" =:
|
||||
T.unlines [ "<biblio>"
|
||||
, ""
|
||||
, "Author, *Title*, description"
|
||||
, ""
|
||||
, "Another author, *Another title*, another description"
|
||||
, ""
|
||||
, "</biblio>"
|
||||
] =?>
|
||||
divWith ("", ["biblio"], []) (para (text "Author, " <> emph "Title" <> ", description") <>
|
||||
para (text "Another author, " <> emph "Another title" <> text ", another description"))
|
||||
, "Play" =:
|
||||
T.unlines [ "<play>"
|
||||
, "Foo bar"
|
||||
, "</play>"
|
||||
] =?>
|
||||
divWith ("", ["play"], []) (para "Foo bar")
|
||||
, "Verse" =:
|
||||
T.unlines [ "> This is"
|
||||
, "> First stanza"
|
||||
|
||||
Reference in New Issue
Block a user