@@ -83,7 +83,7 @@ def _build_object(self) -> Object:
8383
8484 def _setup_nodes (self , obj :Object ,
8585 sectnode :nodes .Element ,
86- ahrnode :nodes .Element ,
86+ ahrnode :nodes .Element | None ,
8787 contnode :nodes .Element ) -> None :
8888 """
8989 Attach necessary informations to nodes and note them.
@@ -105,20 +105,21 @@ def _setup_nodes(self, obj:Object,
105105 sectnode ['classes' ].append (domain .name )
106106
107107 # Setup anchor
108- _ , objid = self .schema .identifier_of (obj )
109- ahrid = make_id (self .env , self .state .document , prefix = objtype , term = objid )
110- ahrnode ['ids' ].append (ahrid )
111- # Add object name to node's names attribute.
112- # 'names' is space-separated list containing normalized reference
113- # names of an element.
114- name = self .schema .name_of (obj )
115- if isinstance (name , str ):
116- ahrnode ['names' ].append (fully_normalize_name (name ))
117- elif isinstance (name , list ):
118- ahrnode ['names' ].extend ([fully_normalize_name (x ) for x in name ])
119- self .state .document .note_explicit_target (ahrnode )
120- # Note object by docu fields
121- domain .note_object (self .env .docname , ahrid , self .schema , obj ) # FIXME: Cast to AnyDomain
108+ if ahrnode is not None :
109+ _ , objid = self .schema .identifier_of (obj )
110+ ahrid = make_id (self .env , self .state .document , prefix = objtype , term = objid )
111+ ahrnode ['ids' ].append (ahrid )
112+ # Add object name to node's names attribute.
113+ # 'names' is space-separated list containing normalized reference
114+ # names of an element.
115+ name = self .schema .name_of (obj )
116+ if isinstance (name , str ):
117+ ahrnode ['names' ].append (fully_normalize_name (name ))
118+ elif isinstance (name , list ):
119+ ahrnode ['names' ].extend ([fully_normalize_name (x ) for x in name ])
120+ self .state .document .note_explicit_target (ahrnode )
121+ # Note object by docu fields
122+ domain .note_object (self .env .docname , ahrid , self .schema , obj ) # FIXME: Cast to AnyDomain
122123
123124 # Parse description
124125 nested_parse_with_titles (self .state ,
@@ -157,20 +158,20 @@ def _run_section(self, obj:Object) -> list[nodes.Node]:
157158
158159 def _run_objdesc (self , obj :Object ) -> list [nodes .Node ]:
159160 descnode = addnodes .desc ()
161+
160162 # Generate signature node
161163 title = self .schema .title_of (obj )
162164 if title is None :
163165 # Use non-generated object ID as replacement of title
164166 idfield , objid = self .schema .identifier_of (obj )
165- if idfield is not None :
166- # ID is not generated
167- title = objid
168- else :
169- # ID is auto-generated, Use '' is better than None
170- title = ''
171- signode = addnodes .desc_signature (title , '' )
172- signode += addnodes .desc_name (title , title )
173- descnode .append (signode )
167+ title = objid if idfield is not None else None
168+ if title is not None :
169+ signode = addnodes .desc_signature (title , '' )
170+ signode += addnodes .desc_name (title , title )
171+ descnode .append (signode )
172+ else :
173+ signode = None
174+
174175 # Generate content node
175176 contnode = addnodes .desc_content ()
176177 descnode .append (contnode )
0 commit comments