0

I am trying to generate a document for Confluence. The source data is an RST document containing LaTeX formulas, which sometimes include Cyrillic characters.

Here is my conf.py configuration file:

extensions = [
    'sphinxcontrib.confluencebuilder',
]

confluence_publish = True
confluence_space_key = 'user_space'
confluence_server_url = 'https://confluence.com'
confluence_page_hierarchy = True
confluence_page_generation_notice = True
confluence_prev_next_buttons_location = 'top'

confluence_server_user = 'login'
confluence_server_pass = 'password'
source_encoding = 'utf-8'

Platform: linux; (Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with-glibc2.29)

Extensions:

  • sphinx.ext.mathjax (7.1.2)
  • alabaster (0.7.13)
  • sphinxcontrib.applehelp (1.0.4)
  • sphinxcontrib.devhelp (1.0.2)
  • sphinxcontrib.htmlhelp (2.0.1)
  • sphinxcontrib.serializinghtml (1.1.5)
  • sphinxcontrib.qthelp (1.0.3)
  • sphinxcontrib.confluencebuilder (2.5.2)

When I run the build command

sphinx-build -b confluence path/to/rst tmp/path

I encounter the following traceback:

Traceback (most recent call last):
    File "/usr/local/lib/python3.8/dist-packages/sphinx/cmd/build.py", line 290, in build_main
    app.build(args.force_all, args.filenames)
    File "/usr/local/lib/python3.8/dist-packages/sphinx/application.py", line 351, in build
    self.builder.build_update()
    File "/usr/local/lib/python3.8/dist-packages/sphinx/builders/__init__.py", line 290, in build_update
    self.build(to_build,
    File "/usr/local/lib/python3.8/dist-packages/sphinx/builders/__init__.py", line 360, in build
    self.write(docnames, list(updated_docnames), method)
    File "/usr/local/lib/python3.8/dist-packages/sphinx/builders/__init__.py", line 556, in write
    self.prepare_writing(docnames)
    File "/usr/local/lib/python3.8/dist-packages/sphinxcontrib/confluencebuilder/builder.py", line 317, in prepare_writing
    self._prepare_doctree_writing(docname, doctree)
    File "/usr/local/lib/python3.8/dist-packages/sphinxcontrib/confluencebuilder/builder.py", line 399, in _prepare_doctree_writing
    doctree_transmute(self, doctree)
    File "/usr/local/lib/python3.8/dist-packages/sphinxcontrib/confluencebuilder/transmute/__init__.py", line 90, in doctree_transmute
    prepare_math_images(builder, doctree)
    File "/usr/local/lib/python3.8/dist-packages/sphinxcontrib/confluencebuilder/transmute/__init__.py", line 132, in prepare_math_images
    mf, depth = imgmath.render_math(mock_translator, node.astext())
    File "/usr/local/lib/python3.8/dist-packages/sphinx/ext/imgmath.py", line 259, in render_math
    dvipath = compile_math(latex, self.builder)
    File "/usr/local/lib/python3.8/dist-packages/sphinx/ext/imgmath.py", line 143, in compile_math
    subprocess.run(command, capture_output=True, cwd=tempdir, check=True,
    File "/usr/lib/python3.8/subprocess.py", line 495, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
    File "/usr/lib/python3.8/subprocess.py", line 1028, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
    File "/usr/lib/python3.8/subprocess.py", line 1906, in _communicate
    stdout = self._translate_newlines(stdout,
    File "/usr/lib/python3.8/subprocess.py", line 905, in _translate_newlines
    data = data.decode(encoding, errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 1403: ordinal not in range(128)

What can I do to resolve the 'ascii' codec can't decode error in my Sphinx build process when generating a Confluence document from an RST file containing LaTeX formulas with Cyrillic characters?

1

1 Answer 1

0

my solution was

I added this code to my conf.py

confluence_latex_macro = {
    'block-macro': 'mathblock',
    'inline-macro': 'mathinline',
    'inline-macro-param': 'body',
}

link: https://sphinxcontrib-confluencebuilder.readthedocs.io/en/latest/guide-math/

Not the answer you're looking for? Browse other questions tagged or ask your own question.