| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -115,20 +115,23 @@ class DFHackToolDirectiveBase(sphinx.directives.ObjectDescription):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    required_arguments = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    optional_arguments = 1
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def get_tool_name_from_docname(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        parts = self.env.docname.split('/')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if 'tools' in parts:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return '/'.join(parts[parts.index('tools') + 1:])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        else:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return parts[-1]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def get_name_or_docname(self):
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if self.arguments:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            return self.arguments[0]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        else:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            parts = self.env.docname.split('/')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if 'tools' in parts:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return '/'.join(parts[parts.index('tools') + 1:])
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            else:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                return parts[-1]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        return self.get_tool_name_from_docname()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    def add_index_entries(self, name) -> None:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        docname = self.env.docname
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        anchor = self.get_tool_name_from_docname().replace('/', '-')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        tags = self.env.domaindata['tag-repo']['doctags'][docname]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        indexdata = (name, self.options.get('summary', ''), '', docname, '', 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        indexdata = (name, self.options.get('summary', ''), '', docname, anchor, 0)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        self.env.domaindata['all']['objects'].append(indexdata)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        for tag in tags:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            self.env.domaindata[tag]['objects'].append(indexdata)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -247,10 +250,10 @@ def tag_domain_merge_domaindata(self, docnames: List[str], otherdata: Dict) -> N
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				def tag_index_generate(self, docnames: Optional[Iterable[str]] = None) -> Tuple[List[Tuple[str, List[IndexEntry]]], bool]:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    content = defaultdict(list)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    for name, desc, _, docname, _, _ in self.domain.data['objects']:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    for name, desc, _, docname, anchor, _ in self.domain.data['objects']:
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        first_letter = name[0].lower()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        content[first_letter].append(
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            IndexEntry(name, 0, docname, '', '', '', desc))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            IndexEntry(name, 0, docname, anchor, '', '', desc))
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    return (sorted(content.items()), False)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				def register_index(app, tag, title):
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |