From d00d0568b1eb803807fd7d66c499dcfeece0ec50 Mon Sep 17 00:00:00 2001 From: thomasjm Date: Thu, 30 May 2024 02:54:34 -0700 Subject: [PATCH] Fix markdown2asciidoc function for pandoc >= 3.0 (closes #2017) --- nbconvert/filters/markdown.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/nbconvert/filters/markdown.py b/nbconvert/filters/markdown.py index 7e4bee9fd..f8f899b08 100644 --- a/nbconvert/filters/markdown.py +++ b/nbconvert/filters/markdown.py @@ -6,6 +6,8 @@ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. +from nbconvert.utils.pandoc import get_pandoc_version +from packaging.version import Version import re try: @@ -66,7 +68,16 @@ def markdown2html_pandoc(source, extra_args=None): def markdown2asciidoc(source, extra_args=None): """Convert a markdown string to asciidoc via pandoc""" - extra_args = extra_args or ["--atx-headers"] + + # Prior to version 3.0, pandoc supported the --atx-headers flag. + # For later versions, we must instead pass --markdown-headings=atx. + # See https://pandoc.org/releases.html#pandoc-3.0-2023-01-18 + atx_args = ["--atx-headers"] + pandoc_version = get_pandoc_version() + if pandoc_version and Version(pandoc_version) >= Version("3.0"): + atx_args = ["--markdown-headings=atx"] + + extra_args = extra_args or atx_args asciidoc = convert_pandoc(source, "markdown", "asciidoc", extra_args=extra_args) # workaround for https://github.com/jgm/pandoc/issues/3068 if "__" in asciidoc: