Org reader: read #+INSTITUTE values as text with markup

The value is stored in the `institute` metadata field and used in the
default beamer presentation template.
This commit is contained in:
Albert Krewinkel 2020-06-28 18:23:25 +02:00
parent b7a8620b43
commit d2d5eb8a99
No known key found for this signature in database
GPG key ID: 388DC0B21F631124
3 changed files with 22 additions and 7 deletions

View file

@ -93,6 +93,11 @@ Pandoc recognizes some export options not used by Emacs Org.
- HEADER-INCLUDES: like HTML_HEAD and, LATEX_HEADER, but treats
the option's value as normal text with markup.
- INSTITUTE: Affiliation of the author; the value is read as text
with markup and is stored in the `institute` metadata field. The
field is included by default on the title slide of beamer
presentations.
Citations
=========

View file

@ -73,20 +73,26 @@ metaKey = T.toLower <$> many1Char (noneOf ": \n\r")
exportSettingHandlers :: PandocMonad m => Map Text (OrgParser m ())
exportSettingHandlers = Map.fromList
[ ("result" , fmap pure anyLine `parseThen` discard) -- RESULT is never an export setting
, ("author" , lineOfInlines `parseThen` collectLines "author")
, ("keywords" , lineOfInlines `parseThen` collectLines "keywords")
, ("date" , lineOfInlines `parseThen` setField "date")
, ("description", lineOfInlines `parseThen` collectLines "description")
, ("title" , lineOfInlines `parseThen` collectLines "title")
, ("nocite" , lineOfInlines `parseThen` collectAsList "nocite")
[ ("result" , fmap pure anyLine `parseThen` discard)
-- Common settings
, ("author" , lineOfInlines `parseThen` collectLines "author")
, ("date" , lineOfInlines `parseThen` setField "date")
, ("description", lineOfInlines `parseThen` collectLines "description")
, ("keywords" , lineOfInlines `parseThen` collectLines "keywords")
, ("title" , lineOfInlines `parseThen` collectLines "title")
-- LaTeX
, ("latex_class", fmap pure anyLine `parseThen` setField "documentclass")
, ("latex_class_options", (pure . T.filter (`notElem` ("[]" :: String)) <$> anyLine)
`parseThen` setField "classoption")
, ("latex_header", metaExportSnippet "latex" `parseThen`
collectAsList "header-includes")
-- HTML
, ("html_head" , metaExportSnippet "html" `parseThen`
collectAsList "header-includes")
-- pandoc-specific
, ("nocite" , lineOfInlines `parseThen` collectLines "nocite")
, ("header-includes", lineOfInlines `parseThen` collectLines "header-includes")
, ("institute" , lineOfInlines `parseThen` collectLines "institute")
]
parseThen :: PandocMonad m

View file

@ -133,6 +133,10 @@ tests =
inclList = MetaList [MetaInlines (toList html)]
meta = setMeta "header-includes" inclList nullMeta
in Pandoc meta mempty
, "Institute" =:
"#+INSTITUTE: ACME Inc." =?>
Pandoc (setMeta "institute" ("ACME Inc." :: Inlines) nullMeta) mempty
]
, "Properties drawer" =: