diff options
author | Albert Krewinkel <albert@zeitkraut.de> | 2020-06-28 18:23:25 +0200 |
---|---|---|
committer | Albert Krewinkel <albert@zeitkraut.de> | 2020-06-28 19:25:57 +0200 |
commit | d2d5eb8a993553eb5d1b9b9ca7863638864dde7e (patch) | |
tree | f824195d8fed3454ab94a9158176e86dd5f438c0 | |
parent | b7a8620b43b8e73ef3be42f607dd7f46e9027634 (diff) | |
download | pandoc-d2d5eb8a993553eb5d1b9b9ca7863638864dde7e.tar.gz |
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.
-rw-r--r-- | doc/org.md | 5 | ||||
-rw-r--r-- | src/Text/Pandoc/Readers/Org/Meta.hs | 20 | ||||
-rw-r--r-- | test/Tests/Readers/Org/Meta.hs | 4 |
3 files changed, 22 insertions, 7 deletions
diff --git a/doc/org.md b/doc/org.md index 9d8ffea8b..8e147c5a9 100644 --- a/doc/org.md +++ b/doc/org.md @@ -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 ========= diff --git a/src/Text/Pandoc/Readers/Org/Meta.hs b/src/Text/Pandoc/Readers/Org/Meta.hs index fdb7abe7c..3e77b3f42 100644 --- a/src/Text/Pandoc/Readers/Org/Meta.hs +++ b/src/Text/Pandoc/Readers/Org/Meta.hs @@ -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 diff --git a/test/Tests/Readers/Org/Meta.hs b/test/Tests/Readers/Org/Meta.hs index 3852e676d..c811f2363 100644 --- a/test/Tests/Readers/Org/Meta.hs +++ b/test/Tests/Readers/Org/Meta.hs @@ -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" =: |