mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #9868: imgmath: Crashed if the dvisvgm command failed to convert equation
This commit is contained in:
parent
c8f019ab50
commit
dbba0ae7de
1
CHANGES
1
CHANGES
@ -25,6 +25,7 @@ Bugs fixed
|
||||
having invalid __doc__ atribute
|
||||
* #9872: html: Class namespace collision between autodoc signatures and
|
||||
docutils-0.17
|
||||
* #9868: imgmath: Crashed if the dvisvgm command failed to convert equation
|
||||
* #9864: mathjax: Failed to render equations via MathJax v2. The loading method
|
||||
of MathJax is back to "async" method again
|
||||
|
||||
|
@ -12,7 +12,6 @@ import posixpath
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
from os import path
|
||||
from subprocess import PIPE, CalledProcessError
|
||||
@ -43,11 +42,11 @@ templates_path = path.join(package_dir, 'templates', 'imgmath')
|
||||
class MathExtError(SphinxError):
|
||||
category = 'Math extension error'
|
||||
|
||||
def __init__(self, msg: str, stderr: bytes = None, stdout: bytes = None) -> None:
|
||||
def __init__(self, msg: str, stderr: str = None, stdout: str = None) -> None:
|
||||
if stderr:
|
||||
msg += '\n[stderr]\n' + stderr.decode(sys.getdefaultencoding(), 'replace')
|
||||
msg += '\n[stderr]\n' + stderr
|
||||
if stdout:
|
||||
msg += '\n[stdout]\n' + stdout.decode(sys.getdefaultencoding(), 'replace')
|
||||
msg += '\n[stdout]\n' + stdout
|
||||
super().__init__(msg)
|
||||
|
||||
|
||||
@ -135,7 +134,8 @@ def compile_math(latex: str, builder: Builder) -> str:
|
||||
command.append('math.tex')
|
||||
|
||||
try:
|
||||
subprocess.run(command, stdout=PIPE, stderr=PIPE, cwd=tempdir, check=True)
|
||||
subprocess.run(command, stdout=PIPE, stderr=PIPE, cwd=tempdir, check=True,
|
||||
encoding='ascii')
|
||||
return path.join(tempdir, 'math.dvi')
|
||||
except OSError as exc:
|
||||
logger.warning(__('LaTeX command %r cannot be run (needed for math '
|
||||
|
Loading…
Reference in New Issue
Block a user