diff options
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r-- | src/Text/Pandoc/Writers/Ipynb.hs | 7 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/Jira.hs | 22 | ||||
-rw-r--r-- | src/Text/Pandoc/Writers/Ms.hs | 14 |
3 files changed, 22 insertions, 21 deletions
diff --git a/src/Text/Pandoc/Writers/Ipynb.hs b/src/Text/Pandoc/Writers/Ipynb.hs index 86e2abbdf..d01d5a7e5 100644 --- a/src/Text/Pandoc/Writers/Ipynb.hs +++ b/src/Text/Pandoc/Writers/Ipynb.hs @@ -102,13 +102,10 @@ extractCells _ [] = return [] extractCells opts (Div (_id,classes,kvs) xs : bs) | "cell" `elem` classes , "markdown" `elem` classes = do - let meta = pairsToJSONMeta [(k,v) | (k,v) <- kvs, k /= "source"] + let meta = pairsToJSONMeta kvs (newdoc, attachments) <- runStateT (walkM addAttachment (Pandoc nullMeta xs)) mempty - source <- case lookup "source" kvs of - Just s -> return s - Nothing -> writeMarkdown opts{ writerTemplate = Nothing } - newdoc + source <- writeMarkdown opts{ writerTemplate = Nothing } newdoc (Ipynb.Cell{ cellType = Markdown , cellSource = Source $ breakLines $ T.stripEnd source diff --git a/src/Text/Pandoc/Writers/Jira.hs b/src/Text/Pandoc/Writers/Jira.hs index 12348f62b..4f12667d4 100644 --- a/src/Text/Pandoc/Writers/Jira.hs +++ b/src/Text/Pandoc/Writers/Jira.hs @@ -194,7 +194,7 @@ toJiraInlines inlines = do Jira.Monospaced (escapeSpecialChars cs) Emph xs -> styled Jira.Emphasis xs Underline xs -> styled Jira.Insert xs - Image attr _ tgt -> imageToJira attr (fst tgt) (snd tgt) + Image attr cap tgt -> imageToJira attr cap (fst tgt) (snd tgt) LineBreak -> pure . singleton $ Jira.Linebreak Link attr xs tgt -> toJiraLink attr tgt xs Math mtype cs -> mathToJira mtype cs @@ -233,16 +233,18 @@ escapeSpecialChars t = case plainText t of Left _ -> singleton $ Jira.Str t imageToJira :: PandocMonad m - => Attr -> Text -> Text + => Attr -> [Inline] -> Text -> Text -> JiraConverter m [Jira.Inline] -imageToJira (_, classes, kvs) src title = - let imgParams = if "thumbnail" `elem` classes - then [Jira.Parameter "thumbnail" ""] - else map (uncurry Jira.Parameter) kvs - imgParams' = if T.null title - then imgParams - else Jira.Parameter "title" title : imgParams - in pure . singleton $ Jira.Image imgParams' (Jira.URL src) +imageToJira (_, classes, kvs) caption src title = + let imageWithParams ps = Jira.Image ps (Jira.URL src) + alt = stringify caption + in pure . singleton . imageWithParams $ + if "thumbnail" `elem` classes + then [Jira.Parameter "thumbnail" ""] + else map (uncurry Jira.Parameter) + . (if T.null title then id else (("title", title):)) + . (if T.null alt then id else (("alt", alt):)) + $ kvs -- | Creates a Jira Link element. toJiraLink :: PandocMonad m diff --git a/src/Text/Pandoc/Writers/Ms.hs b/src/Text/Pandoc/Writers/Ms.hs index 81de40045..561053c88 100644 --- a/src/Text/Pandoc/Writers/Ms.hs +++ b/src/Text/Pandoc/Writers/Ms.hs @@ -204,7 +204,9 @@ blockToMs opts (CodeBlock attr str) = do literal ".IP" $$ literal ".nf" $$ literal "\\f[C]" $$ - hlCode $$ + ((case T.uncons str of + Just ('.',_) -> literal "\\&" + _ -> mempty) <> hlCode) $$ literal "\\f[]" $$ literal ".fi" blockToMs opts (LineBlock ls) = do @@ -517,11 +519,11 @@ toMacro sty toktype = msFormatter :: WriterOptions -> FormatOptions -> [SourceLine] -> Doc Text msFormatter opts _fmtopts = - vcat . map fmtLine - where fmtLine = hcat . map fmtToken - fmtToken (toktype, tok) = literal "\\*" <> - brackets (literal (tshow toktype) <> literal " \"" - <> literal (escapeStr opts tok) <> literal "\"") + literal . T.intercalate "\n" . map fmtLine + where + fmtLine = mconcat . map fmtToken + fmtToken (toktype, tok) = + "\\*[" <> (tshow toktype) <> " \"" <> (escapeStr opts tok) <> "\"]" highlightCode :: PandocMonad m => WriterOptions -> Attr -> Text -> MS m (Doc Text) highlightCode opts attr str = |