|
|
@ -3,6 +3,7 @@
|
|
|
|
# https://www.sphinx-doc.org/en/master/development/tutorials/recipe.html
|
|
|
|
# https://www.sphinx-doc.org/en/master/development/tutorials/recipe.html
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#rst-directives
|
|
|
|
# https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#rst-directives
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from collections import defaultdict
|
|
|
|
import logging
|
|
|
|
import logging
|
|
|
|
import os
|
|
|
|
import os
|
|
|
|
import re
|
|
|
|
import re
|
|
|
@ -171,9 +172,10 @@ class DFHackToolDirective(DFHackToolDirectiveBase):
|
|
|
|
'refwarn': True,
|
|
|
|
'refwarn': True,
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
nodes.inline(text=' | '),
|
|
|
|
nodes.inline(text=' | '),
|
|
|
|
indexdata = (self.env.docname)
|
|
|
|
|
|
|
|
self.env.domaindata[tag]['objects'].append(indexdata)
|
|
|
|
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
name = self.get_name_or_docname()
|
|
|
|
|
|
|
|
indexdata = (name, self.options.get('summary', ''), '', self.env.docname, '', 0)
|
|
|
|
|
|
|
|
self.env.domaindata[tag]['objects'].append(indexdata)
|
|
|
|
tag_paragraph.pop()
|
|
|
|
tag_paragraph.pop()
|
|
|
|
|
|
|
|
|
|
|
|
ret_nodes = [tag_paragraph]
|
|
|
|
ret_nodes = [tag_paragraph]
|
|
|
@ -231,10 +233,22 @@ def tag_domain_get_objects(self):
|
|
|
|
yield(obj)
|
|
|
|
yield(obj)
|
|
|
|
|
|
|
|
|
|
|
|
def tag_domain_merge_domaindata(self, docnames: List[str], otherdata: Dict) -> None:
|
|
|
|
def tag_domain_merge_domaindata(self, docnames: List[str], otherdata: Dict) -> None:
|
|
|
|
self.data['objects'].extend(otherdata['objects'])
|
|
|
|
seen = set()
|
|
|
|
|
|
|
|
objs = self.data['objects']
|
|
|
|
|
|
|
|
for obj in objs:
|
|
|
|
|
|
|
|
seen.add(obj[0])
|
|
|
|
|
|
|
|
for obj in otherdata['objects']:
|
|
|
|
|
|
|
|
if obj[0] not in seen:
|
|
|
|
|
|
|
|
objs.append(obj)
|
|
|
|
|
|
|
|
objs.sort()
|
|
|
|
|
|
|
|
|
|
|
|
def tag_index_generate(self, docnames: Optional[Iterable[str]] = None) -> Tuple[List[Tuple[str, List[IndexEntry]]], bool]:
|
|
|
|
def tag_index_generate(self, docnames: Optional[Iterable[str]] = None) -> Tuple[List[Tuple[str, List[IndexEntry]]], bool]:
|
|
|
|
return [('G', [['gui/blueprint', 0, 'docs/tools/gui/blueprint', 'gui-blueprint', '', '', '']])], False
|
|
|
|
content = defaultdict(list)
|
|
|
|
|
|
|
|
for name, desc, _, docname, _, _ in self.domain.data['objects']:
|
|
|
|
|
|
|
|
first_letter = name[0].lower()
|
|
|
|
|
|
|
|
content[first_letter].append(
|
|
|
|
|
|
|
|
IndexEntry(name, 0, docname, '', '', '', desc))
|
|
|
|
|
|
|
|
return (sorted(content.items()), False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def init_tag_indices(app):
|
|
|
|
def init_tag_indices(app):
|
|
|
@ -256,7 +270,7 @@ def init_tag_indices(app):
|
|
|
|
})
|
|
|
|
})
|
|
|
|
index_class = type(tag+'Index', (Index, ), {
|
|
|
|
index_class = type(tag+'Index', (Index, ), {
|
|
|
|
'name': 'tag-index',
|
|
|
|
'name': 'tag-index',
|
|
|
|
'localname': tag + ' tag index',
|
|
|
|
'localname': '"' + tag + '" tag index',
|
|
|
|
'shortname': tag,
|
|
|
|
'shortname': tag,
|
|
|
|
'desc': desc,
|
|
|
|
'desc': desc,
|
|
|
|
'generate': tag_index_generate,
|
|
|
|
'generate': tag_index_generate,
|
|
|
|