diff options
| author | John MacFarlane <[email protected]> | 2025-09-10 09:39:51 +0200 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2025-09-10 09:39:51 +0200 |
| commit | 3a2aab568d9206ab48a5fb2e1d896c6457bb21e2 (patch) | |
| tree | 6f6ace388e9e333643f4844ecdb9a828dcb8f654 /src | |
| parent | 6d6ab8c87187979e7abedd6253c785f4c35801a4 (diff) | |
Markdown writer: refactor table cases.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Text/Pandoc/Writers/Markdown.hs | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 476b54286..102ab83e3 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -643,30 +643,22 @@ blockToMarkdown' opts t@(Table (ident,_,_) blkCapt specs thead tbody tfoot) = do let widths' = case numcols - length widths of x | x > 0 -> widths ++ replicate x 0.0 | otherwise -> widths + let mkTable f = do + rawHeaders <- padRow <$> mapM (blockListToMarkdown opts) headers + rawRows <- mapM (fmap padRow . mapM (blockListToMarkdown opts)) rows + f (all null headers) aligns' widths' rawHeaders rawRows case True of _ | isSimple && isEnabled Ext_simple_tables opts -> do - rawHeaders <- padRow <$> mapM (blockListToMarkdown opts) headers - rawRows <- mapM (fmap padRow . mapM (blockListToMarkdown opts)) - rows - tbl <- pandocTable opts False (all null headers) - aligns' widths' rawHeaders rawRows + tbl <- mkTable (pandocTable opts False) return $ nest 2 (tbl $$ caption''') $$ blankline | isSimple && isEnabled Ext_pipe_tables opts -> do - rawHeaders <- padRow <$> mapM (blockListToMarkdown opts) headers - rawRows <- mapM (fmap padRow . mapM (blockListToMarkdown opts)) - rows - tbl <- pipeTable opts (all null headers) aligns' widths' - rawHeaders rawRows + tbl <- mkTable (pipeTable opts) return $ (tbl $$ caption''') $$ blankline | not (hasBlocks || hasColRowSpans) && isEnabled Ext_multiline_tables opts -> do - rawHeaders <- padRow <$> mapM (blockListToMarkdown opts) headers - rawRows <- mapM (fmap padRow . mapM (blockListToMarkdown opts)) - rows - tbl <- pandocTable opts True (all null headers) - aligns' widths' rawHeaders rawRows + tbl <- mkTable (pandocTable opts True) return $ nest 2 (tbl $$ caption''') $$ blankline | isEnabled Ext_grid_tables opts && (hasColRowSpans || writerColumns opts >= 8 * numcols) -> do @@ -676,11 +668,7 @@ blockToMarkdown' opts t@(Table (ident,_,_) blkCapt specs thead tbody tfoot) = do | hasSimpleCells, not hasColRowSpans, isEnabled Ext_pipe_tables opts -> do - rawHeaders <- padRow <$> mapM (blockListToMarkdown opts) headers - rawRows <- mapM (fmap padRow . mapM (blockListToMarkdown opts)) - rows - tbl <- pipeTable opts (all null headers) aligns' widths' - rawHeaders rawRows + tbl <- mkTable (pipeTable opts) return $ (tbl $$ caption''') $$ blankline | isEnabled Ext_raw_html opts -> do -- HTML fallback tbl <- literal . removeBlankLinesInHTML <$> |
