<- pandoc::pandoc_list_extensions(format = "markdown", version = "3.1.6")
markdown <- pandoc::pandoc_list_extensions(format = "commonmark_x", version = "3.1.6")
commonmark_x <- pandoc::pandoc_list_extensions(format = "commonmark", version = "3.1.6") commonmark
commonmark_x vs markdown
Note
This is based on results by pandoc --list-extensions=<format>
. Quick warning
Note that the list of extensions for commonmark, gfm, and commonmark_x are defined relative to default commonmark. So, for example,
backtick_code_blocks
does not appear as an extension, since it is enabled by default and cannot be disabled.
This means that some extensions may seem not included (like backtick_code_blocks
), but they are default commonmark
feature from spec.
Comparison
library(dplyr)
library(tidyr)
<- markdown |>
extensions_by_format bind_rows(commonmark_x) |>
pivot_wider(names_from = format, values_from = default) |>
mutate(doc_site = glue::glue("https://pandoc.org/MANUAL.html#extension-{extensions}"))
library(gt)
<- function(tab) {
format_table gt(tab) |>
fmt_url(columns = "doc_site", label = "doc") |>
cols_merge(
columns = c(extensions, doc_site),
pattern = "{1} ({2})"
|> opt_interactive()
) }
Full table
format_table(extensions_by_format)
Non supported by commonmark_x
<- extensions_by_format |>
non_supported filter(is.na(commonmark_x))
format_table(non_supported)
As a list
::glue_data(non_supported, "* {extensions}") glue
- abbreviations
- all_symbols_escapable
- angle_brackets_escapable
- auto_identifiers
- backtick_code_blocks
- blank_before_blockquote
- blank_before_header
- citations
- compact_definition_lists
- escaped_line_breaks
- example_lists
- fenced_code_attributes
- fenced_code_blocks
- four_space_rule
- grid_tables
- gutenberg
- header_attributes
- ignore_line_breaks
- inline_code_attributes
- inline_notes
- intraword_underscores
- latex_macros
- line_blocks
- link_attributes
- lists_without_preceding_blankline
- literate_haskell
- mark
- markdown_attribute
- markdown_in_html_blocks
- mmd_header_identifiers
- mmd_link_attributes
- mmd_title_block
- multiline_tables
- native_divs
- native_spans
- old_dashes
- pandoc_title_block
- raw_tex
- short_subsuperscripts
- shortcut_reference_links
- simple_tables
- space_in_atx_header
- spaced_reference_links
- startnum
- table_captions
- tex_math_double_backslash
- tex_math_single_backslash
Only commonmark_x
<- extensions_by_format |>
only_commonmark_x filter(is.na(markdown))
format_table(only_commonmark_x)
As a list
::glue_data(only_commonmark_x, "* {extensions}") glue
- attributes
- sourcepos
Supported with same default
<- extensions_by_format |>
same_default filter(!is.na(commonmark_x), commonmark_x == markdown)
format_table(same_default)
As a list
::glue_data(same_default, "* {extensions}") glue
- ascii_identifiers
- autolink_bare_uris
- bracketed_spans
- definition_lists
- east_asian_line_breaks
- fancy_lists
- fenced_divs
- footnotes
- hard_line_breaks
- implicit_header_references
- pipe_tables
- raw_attribute
- raw_html
- rebase_relative_paths
- smart
- strikeout
- subscript
- superscript
- task_lists
- tex_math_dollars
- wikilinks_title_after_pipe
- wikilinks_title_before_pipe
- yaml_metadata_block
Different default
<- extensions_by_format |>
different_default filter(!is.na(commonmark_x), commonmark_x != markdown)
format_table(different_default)
As a list
::glue_data(different_default, "* {extensions}") glue
- emoji
- gfm_auto_identifiers
- implicit_figures