Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After update to version 2.0, got an error in HTML5Translator #6263

Closed
madTeddy opened this issue Apr 6, 2019 · 3 comments
Closed

After update to version 2.0, got an error in HTML5Translator #6263

madTeddy opened this issue Apr 6, 2019 · 3 comments

Comments

@madTeddy
Copy link

madTeddy commented Apr 6, 2019

About the bug
After update to Sphinx 2.0, got an error in HTML5Translator when making html. It's cause my extension, but i don't know what's wrong. In Sphinx 1.8.5 all was fine.

Traceback

# Sphinx version: 2.0.0
# Python version: 3.7.3 (CPython)
# Docutils version: 0.14 
# Jinja2 version: 2.10
# Last messages:
#   none found
#   pickling environment...
#   done
#   checking consistency...
#   done
#   preparing documents...
#   done
#   writing output... [ 14%] ***
#   writing output... [ 28%] ***
#   writing output... [ 42%] ***
# Loaded extensions:
#   sphinx.ext.mathjax (2.0.0) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\ext\mathjax.py
#   sphinxcontrib.applehelp (1.0.1) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinxcontrib\applehelp\__init__.py
#   sphinxcontrib.devhelp (1.0.1) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinxcontrib\devhelp\__init__.py
#   sphinxcontrib.htmlhelp (1.0.1) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinxcontrib\htmlhelp\__init__.py
#   sphinxcontrib.serializinghtml (1.1.3) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinxcontrib\serializinghtml\__init__.py
#   sphinxcontrib.qthelp (1.0.2) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinxcontrib\qthelp\__init__.py
#   alabaster (0.7.12) from c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\alabaster\__init__.py
#   myext.myextension(unknown version) from D:\Python\docs\source\_ext\myext\myextension.py
Traceback (most recent call last):
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\cmd\build.py", line 284, in build_main
    app.build(args.force_all, filenames)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\application.py", line 338, in build
    self.builder.build_update()
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\builders\__init__.py", line 326, in build_update
    len(to_build))
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\builders\__init__.py", line 389, in build
    self.write(docnames, list(updated_docnames), method)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\builders\__init__.py", line 569, in write
    self._write_serial(sorted(docnames))
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\builders\__init__.py", line 580, in _write_serial
    self.write_doc(docname, doctree)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\builders\html.py", line 646, in write_doc
    self.docwriter.write(doctree, destination)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\docutils\writers\__init__.py", line 80, in write
    self.translate()
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\writers\html.py", line 59, in translate
    self.document.walkabout(visitor)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\docutils\nodes.py", line 174, in walkabout
    if child.walkabout(visitor):
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\docutils\nodes.py", line 166, in walkabout
    visitor.dispatch_visit(self)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\docutils\nodes.py", line 1882, in dispatch_visit
    return method(node)
  File "c:\users\madteddy\appdata\local\programs\python\python37-32\lib\site-packages\sphinx\writers\html5.py", line 850, in visit_field
    self._fieldlist_row_index += 1
AttributeError: 'HTML5Translator' object has no attribute '_fieldlist_row_index'

Environment info

  • OS: Windows 10 x64
  • Python version: 3.7.3
  • Sphinx version: 2.0.0
  • Sphinx extensions: myext.myextension
@tk0miya tk0miya added this to the 2.0.1 milestone Apr 7, 2019
@tk0miya
Copy link
Member

tk0miya commented Apr 7, 2019

I guess your extension has generated a field node not having field_list as a parent.

It seems HTML5 writer does not initialize the variable on constructor. But I feel your extension generates wrong doctrees. Could you check it please?
refs: http://docutils.sourceforge.net/docs/ref/doctree.html#field

@madTeddy
Copy link
Author

madTeddy commented Apr 7, 2019

I guess your extension has generated a field node not having field_list as a parent.

It seems HTML5 writer does not initialize the variable on constructor. But I feel your extension generates wrong doctrees. Could you check it please?
refs: http://docutils.sourceforge.net/docs/ref/doctree.html#field

Yep, i'm using a field without field_list as a parent. But in sphinx 1.8.5 i'm using field like an empty node for another childrens, and it's working fine...

I changed fields on inline nodes and all working fine now.

@madTeddy madTeddy closed this as completed Apr 7, 2019
tk0miya added a commit that referenced this issue Apr 7, 2019
Fix #6263: html: HTML5Translator crashed with invalid field node
@tk0miya
Copy link
Member

tk0miya commented Apr 7, 2019

I just merged #6267 now. So you can use it as before.

But docutils and Sphinx consider a field node is a part of field_list, and it also contains field_name and field_body as children. So it is better to replace it to another kind of nodes.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 5, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants