That works for me. Thank you for your help.
On Thursday, February 6, 2020 at 7:48:52 AM UTC-8, Komiya Takeshi wrote: > > Sorry, my last comment was incorrect. > > >2. To enable the name of hyperlink target, you need to call > >`self.state.document.note_implicit_target(container_node)`. > > Please use `note_explicit_target()` instead. > You can see the difference between implicit and explicit targets here: > > https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#implicit-hyperlink-targets > > > In addition, please use `lambda node: node[0].astext(),` for > add_enumerable_node() instead. > With current Sphinx, node['names'] was removed on transformation of > doctree. (This would be fixed in future release) > > Thanks, > Takeshi KOMIYA > > 2020年2月6日(木) 14:16 Myne <[email protected] <javascript:>>: > > > > Hi Takeshi KOMIYA, > > > > I tried those steps here > > > > https://github.com/jtrakk/sphinx-demo (commit: > https://github.com/jtrakk/sphinx-demo/commit/cf699f43e29e39af312f182df3a332454b6b7b8b) > > > > > > but I get an error > > > > > > Traceback (most recent call last): > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/cmd/build.py", > > line 276, in build_main > > app.build(args.force_all, filenames) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/application.py", > > line 353, in build > > self.builder.build_update() > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/builders/__init__.py", > > line 299, in build_update > > len(to_build)) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/builders/__init__.py", > > line 311, in build > > updated_docnames = set(self.read()) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/builders/__init__.py", > > line 418, in read > > self._read_serial(docnames) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/builders/__init__.py", > > line 439, in _read_serial > > self.read_doc(docname) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/builders/__init__.py", > > line 479, in read_doc > > doctree = read_doc(self.app, self.env, self.env.doc2path(docname)) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/io.py", > > line 350, in read_doc > > pub.publish() > > File "/home/user/Documents/docutils/docutils/docutils/core.py", line > 219, in publish > > self.apply_transforms() > > File "/home/user/Documents/docutils/docutils/docutils/core.py", line > 200, in apply_transforms > > self.document.transformer.apply_transforms() > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/transforms/__init__.py", > > line 86, in apply_transforms > > super().apply_transforms() > > File > "/home/user/Documents/docutils/docutils/docutils/transforms/__init__.py", > line 171, in apply_transforms > > transform.apply(**kwargs) > > File > "/home/user/.cache/pypoetry/virtualenvs/sphinx-demo-4JCgFyEV-py3.7/lib/python3.7/site-packages/sphinx/transforms/__init__.py", > > line 177, in apply > > self.document.note_implicit_target(node) > > File "/home/user/Documents/docutils/docutils/docutils/nodes.py", line > 1489, in note_implicit_target > > self.set_name_id_map(target, id, msgnode, explicit=None) > > File "/home/user/Documents/docutils/docutils/docutils/nodes.py", line > 1436, in set_name_id_map > > self.set_duplicate_name_id(node, id, name, msgnode, explicit) > > File "/home/user/Documents/docutils/docutils/docutils/nodes.py", line > 1475, in set_duplicate_name_id > > dupname(node, name) > > File "/home/user/Documents/docutils/docutils/docutils/nodes.py", line > 2290, in dupname > > node['names'].remove(name) > > ValueError: list.remove(x): x not in list > > > > > > Did I miss something? > > > > On Sunday, February 2, 2020 at 5:46:50 AM UTC-8, Komiya Takeshi wrote: > >> > >> Sounds good. I just saw your extension and I found some problem. > >> > >> 1. It assigned the value of `name` to `container_node.names`. > >> Correctly, it should be stored into `container_node['names']`. > >> 2. To enable the name of hyperlink target, you need to call > >> `self.state.document.note_implicit_target(container_node)`. > >> 3. At present, Sphinx does not support assigning numbers to container > >> node. So you should inherit another node (ex. Element) instead. > >> > >> With I rewrite your extension by above rules, I got a number of > >> container_node via `:numref:` role. > >> Please try it. > >> > >> Thanks, > >> Takeshi KOMIYA > >> > >> 2020年2月2日(日) 8:37 Myne <[email protected]>: > >> > > >> > Hi, > >> > > >> > I tried to make an extension which will number and reference the > containers but did not succeed. > >> > https://github.com/jtrakk/sphinx-demo > >> > > >> > How can I fix it? > >> > > >> > Thanks. > >> > > >> > On Saturday, February 1, 2020 at 3:22:52 AM UTC-8, Komiya Takeshi > wrote: > >> >> > >> >> Hi, > >> >> > >> >> "numref" only does referring by number as it named. To refer > something > >> >> by number, you need to assign numbers to each object before > >> >> referencing. But Sphinx does not have a feature to assign numbers to > >> >> containers. So you need to write some extensions to do that. > >> >> > >> >> Personally, I can't imagine how containers get numbered. How is it > displayed? > >> >> > >> >> Thanks, > >> >> Takeshi KOMIYA > >> >> > >> >> 2020年2月1日(土) 13:36 Myne <[email protected]>: > >> >> > > >> >> > Hi, > >> >> > > >> >> > I want to make a numref to a container. > >> >> > > >> >> > > >> >> > .. container:: > >> >> > :name: mycontainer > >> >> > > >> >> > > >> >> > spam eggs > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > Bar > >> >> > ----- > >> >> > > >> >> > > >> >> > Let's reference :numref:`mycontainer` . > >> >> > > >> >> > > >> >> > I want it to appear as "Let's reference Cont. 1" . In my conf.py I > put > >> >> > > >> >> > > >> >> > numfig_format = {'container': 'Cont. %s'} > >> >> > > >> >> > > >> >> > > >> >> > But that doesn't seem to work, I get > >> >> > > >> >> > WARNING: undefined label: mycontainer > >> >> > > >> >> > I am wondering how to make numref work on containers and other > types. > >> >> > > >> >> > -- > >> >> > You received this message because you are subscribed to the Google > Groups "sphinx-users" group. > >> >> > To unsubscribe from this group and stop receiving emails from it, > send an email to [email protected]. > >> >> > To view this discussion on the web visit > https://groups.google.com/d/msgid/sphinx-users/f6167e37-ef86-416a-9355-7138bfa82345%40googlegroups.com. > > > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > Groups "sphinx-users" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send an email to [email protected]. > >> > To view this discussion on the web visit > https://groups.google.com/d/msgid/sphinx-users/7dfe936b-8b9c-4b73-8fc4-88229d1ed703%40googlegroups.com. > > > > > > -- > > You received this message because you are subscribed to the Google > Groups "sphinx-users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected] <javascript:>. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sphinx-users/e90bf62d-420e-44ad-90e4-65652add714d%40googlegroups.com. > > > -- You received this message because you are subscribed to the Google Groups "sphinx-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sphinx-users/7f7b3ce0-0a59-4366-80ff-eca5672bad00%40googlegroups.com.
