Skip to content

Doesn't like $$ #148

@AstraLuma

Description

@AstraLuma

From https://codeberg.org/teahouse/stampede

Versions
========

* Platform:         linux; (Linux-6.17.10-300.fc43.x86_64-x86_64-with-glibc2.42)
* Python version:   3.14.2 (CPython)
* Sphinx version:   9.1.0
* Docutils version: 0.22.4
* Jinja2 version:   3.1.6
* Pygments version: 2.19.2

Last Messages
=============

    Writing evaluated template result to /home/astraluma/code/stampede/docs/_build/html/_static/language_data.js
    Writing evaluated template result to /home/astraluma/code/stampede/docs/_build/html/_static/copybutton.js
    copying static files: done
    copying extra files...
    copying extra files: done
    copying assets: done

    writing output... [ 33%]
    api

Loaded Extensions
=================

* sphinx.ext.mathjax (9.1.0)
* alabaster (1.0.0)
* sphinxcontrib.applehelp (2.0.0)
* sphinxcontrib.devhelp (2.0.0)
* sphinxcontrib.htmlhelp (2.1.0)
* sphinxcontrib.serializinghtml (2.0.0)
* sphinxcontrib.qthelp (2.0.0)
* sphinxext.opengraph (0.13.0)
* sphinx_copybutton (0.5.2)
* sphinx.ext.viewcode (9.1.0)
* sphinx.ext.todo (9.1.0)
* furo (2025.12.19)
* sphinx_basic_ng (1.0.0.beta2)

Traceback
=========

    Traceback (most recent call last):
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/events.py", line 441, in emit
        results.append(listener.handler(self._app, *args))
                       ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinxext/opengraph/__init__.py", line 72, in html_page_context
        context['metatags'] += get_tags(
                               ~~~~~~~~^
            context,
            ^^^^^^^^
        ...<5 lines>...
            env=app.env,
            ^^^^^^^^^^^^
        )
        ^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinxext/opengraph/__init__.py", line 180, in get_tags
        image_url = social_card_for_page(
            config_social=config_social,
        ...<9 lines>...
            env=env,
        )
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinxext/opengraph/__init__.py", line 308, in social_card_for_page
        image_path = create_social_card(
            config_social,
        ...<8 lines>...
            html_logo=config.html_logo,
        )
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinxext/opengraph/_social_cards.py", line 135, in create_social_card
        plt_objects = render_social_card(
            path_image,
        ...<4 lines>...
            plt_objects,
        )
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinxext/opengraph/_social_cards.py", line 167, in render_social_card
        fig.savefig(path, facecolor=None)
        ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/figure.py", line 3490, in savefig
        self.canvas.print_figure(fname, **kwargs)
        ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/backend_bases.py", line 2186, in print_figure
        result = print_method(
            filename,
        ...<3 lines>...
            bbox_inches_restore=_bbox_inches_restore,
            **kwargs)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/backend_bases.py", line 2042, in <lambda>
        print_method = functools.wraps(meth)(lambda *args, **kwargs: meth(
                                                                     ~~~~^
            *args, **{k: v for k, v in kwargs.items() if k not in skip}))
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/backends/backend_agg.py", line 481, in print_png
        self._print_pil(filename_or_obj, "png", pil_kwargs, metadata)
        ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/backends/backend_agg.py", line 429, in _print_pil
        FigureCanvasAgg.draw(self)
        ~~~~~~~~~~~~~~~~~~~~^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/backends/backend_agg.py", line 382, in draw
        self.figure.draw(self.renderer)
        ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/artist.py", line 94, in draw_wrapper
        result = draw(artist, renderer, *args, **kwargs)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/artist.py", line 71, in draw_wrapper
        return draw(artist, renderer)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/figure.py", line 3257, in draw
        mimage._draw_list_compositing_images(
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            renderer, self, artists, self.suppressComposite)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/image.py", line 134, in _draw_list_compositing_images
        a.draw(renderer)
        ~~~~~~^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/artist.py", line 71, in draw_wrapper
        return draw(artist, renderer)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/axes/_base.py", line 3226, in draw
        mimage._draw_list_compositing_images(
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            renderer, self, artists, self.get_figure(root=True).suppressComposite)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/image.py", line 134, in _draw_list_compositing_images
        a.draw(renderer)
        ~~~~~~^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/artist.py", line 71, in draw_wrapper
        return draw(artist, renderer)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/text.py", line 751, in draw
        with self._cm_set(text=self._get_wrapped_text()):
                               ~~~~~~~~~~~~~~~~~~~~~~^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/text.py", line 721, in _get_wrapped_text
        current_width = self._get_rendered_text_width(line)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/text.py", line 681, in _get_rendered_text_width
        w, h, d = _get_text_metrics_with_cache(
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            self._renderer, text, self.get_fontproperties(),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            cbook.is_math_text(text),
            ^^^^^^^^^^^^^^^^^^^^^^^^^
            self.get_figure(root=True).dpi)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/text.py", line 69, in _get_text_metrics_with_cache
        return _get_text_metrics_with_cache_impl(
            weakref.ref(renderer), text, fontprop.copy(), ismath, dpi)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/text.py", line 77, in _get_text_metrics_with_cache_impl
        return renderer_ref().get_text_width_height_descent(text, fontprop, ismath)
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/backends/backend_agg.py", line 215, in get_text_width_height_descent
        self.mathtext_parser.parse(s, self.dpi, prop)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/mathtext.py", line 86, in parse
        return self._parse_cached(s, dpi, prop, antialiased, load_glyph_flags)
               ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/mathtext.py", line 100, in _parse_cached
        box = self._parser.parse(s, fontset, fontsize, dpi)
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib64/python3.14/site-packages/matplotlib/_mathtext.py", line 2167, in parse
        raise ValueError("\n" + ParseException.explain(err, 0)) from None
    ValueError: 
    The default export is helpful, and the suggested usage is import $$
                                                                     ^
    ParseException: Expected end of text, found '$'  (at char 65), (line:1, col:66)
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/cmd/build.py", line 432, in build_main
        app.build(args.force_all, args.filenames)
        ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/application.py", line 442, in build
        self.builder.build_update()
        ~~~~~~~~~~~~~~~~~~~~~~~~~^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/__init__.py", line 381, in build_update
        self.build(
        ~~~~~~~~~~^
            to_build,
            ^^^^^^^^^
        ...<2 lines>...
            method='update',
            ^^^^^^^^^^^^^^^^
        )
        ^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/__init__.py", line 460, in build
        self.write(docnames, updated_docnames, method)
        ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/__init__.py", line 748, in write
        self.write_documents(docnames)
        ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/__init__.py", line 762, in write_documents
        self._write_serial(sorted_docnames)
        ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/__init__.py", line 777, in _write_serial
        _write_docname(docname, env=self.env, builder=self, tags=self.tags)
        ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/__init__.py", line 890, in _write_docname
        builder.write_doc(docname, doctree)
        ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/html/__init__.py", line 665, in write_doc
        self.handle_page(docname, ctx, event_arg=doctree)
        ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/builders/html/__init__.py", line 1187, in handle_page
        if new_template := self.events.emit_firstresult(
                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
            'html-page-context', pagename, templatename, ctx, event_arg
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        ):
        ^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/events.py", line 482, in emit_firstresult
        for result in self.emit(name, *args, allowed_exceptions=allowed_exceptions):
                      ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/home/astraluma/.cache/pypoetry/virtualenvs/non-package-mode-_-gRgf3P-py3.14/lib/python3.14/site-packages/sphinx/events.py", line 452, in emit
        raise ExtensionError(
        ...<3 lines>...
        ) from exc
    sphinx.errors.ExtensionError: Handler <function html_page_context at 0x7fc01e3337f0> for event 'html-page-context' threw an exception (exception: 
    The default export is helpful, and the suggested usage is import $$
                                                                     ^
    ParseException: Expected end of text, found '$'  (at char 65), (line:1, col:66))

I'm reasonably certain this is sphinxext.opengraph because if I disable the extension in conf.py, the error disappears.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions