@@ -155,8 +155,8 @@ def _object_hierarchy_parts(self, sig_node: desc_signature) -> tuple[str, ...]:
155155 def add_target_and_index (
156156 self , name_obj : tuple [str , str ], sig : str , signode : desc_signature
157157 ) -> None :
158- mod_name = self .env .ref_context .get ('js:module' )
159- fullname = (mod_name + ' .' if mod_name else '' ) + name_obj [0 ]
158+ mod_name = self .env .ref_context .get ('js:module' , '' )
159+ fullname = (f' { mod_name } .' if mod_name else '' ) + name_obj [0 ]
160160 node_id = make_id (self .env , self .state .document , '' , fullname )
161161 signode ['ids' ].append (node_id )
162162 self .state .document .note_explicit_target (signode )
@@ -165,11 +165,10 @@ def add_target_and_index(
165165 domain .note_object (fullname , self .objtype , node_id , location = signode )
166166
167167 if 'no-index-entry' not in self .options :
168- indextext = self .get_index_text (mod_name , name_obj ) # type: ignore[arg-type]
169- if indextext :
168+ if index_text := self .get_index_text (mod_name , name_obj ):
170169 self .indexnode ['entries' ].append ((
171170 'single' ,
172- indextext ,
171+ index_text ,
173172 node_id ,
174173 '' ,
175174 None ,
@@ -333,6 +332,7 @@ class JSModule(SphinxDirective):
333332 final_argument_whitespace = False
334333 option_spec : ClassVar [OptionSpec ] = {
335334 'no-index' : directives .flag ,
335+ 'no-index-entry' : directives .flag ,
336336 'no-contents-entry' : directives .flag ,
337337 'no-typesetting' : directives .flag ,
338338 'noindex' : directives .flag ,
@@ -365,9 +365,12 @@ def run(self) -> list[Node]:
365365 )
366366
367367 # The node order is: index node first, then target node
368- indextext = _ ('%s (module)' ) % mod_name
369- inode = addnodes .index (entries = [('single' , indextext , node_id , '' , None )])
370- ret .append (inode )
368+ if 'no-index-entry' not in self .options :
369+ index_text = _ ('%s (module)' ) % mod_name
370+ inode = addnodes .index (
371+ entries = [('single' , index_text , node_id , '' , None )]
372+ )
373+ ret .append (inode )
371374 target = nodes .target ('' , '' , ids = [node_id ], ismod = True )
372375 self .state .document .note_explicit_target (target )
373376 ret .append (target )
0 commit comments