Muse reader: add support for <biblio> and <play> tags
This commit is contained in:
parent
eecf609792
commit
ebbd441d06
2 changed files with 32 additions and 2 deletions
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue