Skip to content

Markdown writer: Add --bullet-list-marker argument option. #1826

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,9 @@ Options affecting specific writers
: Use reference-style links, rather than inline links, in writing markdown
or reStructuredText. By default inline links are used.

`--bullet-list-marker=`*minus|plus|asterisk*
: Specify bullet list marker in markdown. The default is `minus`.

`--atx-headers`
: Use ATX style headers in markdown and asciidoc output. The default is
to use setext-style headers for levels 1-2, and then ATX headers.
Expand Down
17 changes: 17 additions & 0 deletions pandoc.hs
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ data Opt = Opt
, optListings :: Bool -- ^ Use listings package for code blocks
, optLaTeXEngine :: String -- ^ Program to use for latex -> pdf
, optSlideLevel :: Maybe Int -- ^ Header level that creates slides
, optBulletListMarker :: Char -- ^ Bullet list marker in markdown
, optSetextHeaders :: Bool -- ^ Use atx headers for markdown level 1-2
, optAscii :: Bool -- ^ Use ascii characters only in html
, optTeXLigatures :: Bool -- ^ Use TeX ligatures for quotes/dashes
Expand Down Expand Up @@ -258,6 +259,7 @@ defaultOpts = Opt
, optListings = False
, optLaTeXEngine = "pdflatex"
, optSlideLevel = Nothing
, optBulletListMarker = '-'
, optSetextHeaders = True
, optAscii = False
, optTeXLigatures = True
Expand Down Expand Up @@ -566,6 +568,19 @@ options =
(\opt -> return opt { optReferenceLinks = True } ))
"" -- "Use reference links in parsing HTML"

, Option "" ["bullet-list-marker"]
(ReqArg
(\arg opt -> do
marker <- case arg of
"minus" -> return '-'
"plus" -> return '+'
"asterisk" -> return '*'
_ -> err 6
("Unknown bullet list marker: " ++ arg)
return opt { optBulletListMarker = marker })
"minus|plus|asterisk")
"" -- "Marker for bullet list in Markdown"

, Option "" ["atx-headers"]
(NoArg
(\opt -> return opt { optSetextHeaders = False } ))
Expand Down Expand Up @@ -1073,6 +1088,7 @@ main = do
, optListings = listings
, optLaTeXEngine = latexEngine
, optSlideLevel = slideLevel
, optBulletListMarker = bulletListMarker
, optSetextHeaders = setextHeaders
, optAscii = ascii
, optTeXLigatures = texLigatures
Expand Down Expand Up @@ -1293,6 +1309,7 @@ main = do
writerSlideLevel = slideLevel,
writerHighlight = highlight,
writerHighlightStyle = highlightStyle,
writerBulletListMarker = bulletListMarker,
writerSetextHeaders = setextHeaders,
writerTeXLigatures = texLigatures,
writerEpubMetadata = epubMetadata,
Expand Down
2 changes: 2 additions & 0 deletions src/Text/Pandoc/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ data WriterOptions = WriterOptions
, writerListings :: Bool -- ^ Use listings package for code
, writerHighlight :: Bool -- ^ Highlight source code
, writerHighlightStyle :: Style -- ^ Style to use for highlighting
, writerBulletListMarker :: Char -- ^ Bullet list marker in markdown
, writerSetextHeaders :: Bool -- ^ Use setext headers for levels 1-2 in markdown
, writerTeXLigatures :: Bool -- ^ Use tex ligatures quotes, dashes in latex
, writerEpubVersion :: Maybe EPUBVersion -- ^ Nothing or EPUB version
Expand Down Expand Up @@ -355,6 +356,7 @@ instance Default WriterOptions where
, writerListings = False
, writerHighlight = False
, writerHighlightStyle = pygments
, writerBulletListMarker = '-'
, writerSetextHeaders = True
, writerTeXLigatures = True
, writerEpubVersion = Nothing
Expand Down
2 changes: 1 addition & 1 deletion src/Text/Pandoc/Writers/Markdown.hs
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ bulletListItemToMarkdown :: WriterOptions -> [Block] -> State WriterState Doc
bulletListItemToMarkdown opts items = do
contents <- blockListToMarkdown opts items
let sps = replicate (writerTabStop opts - 2) ' '
let start = text ('-' : ' ' : sps)
let start = text (writerBulletListMarker opts : ' ' : sps)
-- remove trailing blank line if it is a tight list
let contents' = case reverse items of
(BulletList xs:_) | isTightList xs ->
Expand Down