diff --git a/IPython/nbconvert/utils/pandoc.py b/IPython/nbconvert/utils/pandoc.py index 57459e5..4ae9720 100644 --- a/IPython/nbconvert/utils/pandoc.py +++ b/IPython/nbconvert/utils/pandoc.py @@ -15,6 +15,7 @@ from __future__ import print_function # Stdlib imports import subprocess import warnings +import re from io import TextIOWrapper, BytesIO # IPython imports @@ -89,8 +90,11 @@ def get_pandoc_version(): out = subprocess.check_output(['pandoc', '-v'], universal_newlines=True) out_lines = out.splitlines() - pandoc_line = out_lines[0] - __version = pandoc_line.lstrip("pandoc ") + version_pattern = re.compile(r"^\d+(\.\d+){1,}$") + for tok in out_lines[0].split(): + if version_pattern.match(tok): + __version = tok + break return __version @@ -103,6 +107,12 @@ def check_pandoc_version(): If pandoc is unavailable. """ v = get_pandoc_version() + if v is None: + warnings.warn("Sorry, we cannot determine the version of pandoc.\n" + "Please consider reporting this issue and include the" + "output of pandoc --version.\nContinuing...", + RuntimeWarning, stacklevel=2) + return False ok = check_version(v , _minimal_version ) if not ok: warnings.warn( "You are using an old version of pandoc (%s)\n" % v +