(
builder: Builder,
docname: str,
name: str,
args: list[str],
sources: Set[tuple[str, str]],
)
| 214 | |
| 215 | @staticmethod |
| 216 | def _make_row( |
| 217 | builder: Builder, |
| 218 | docname: str, |
| 219 | name: str, |
| 220 | args: list[str], |
| 221 | sources: Set[tuple[str, str]], |
| 222 | ) -> nodes.row: |
| 223 | row = nodes.row() |
| 224 | name_node = nodes.paragraph("", nodes.Text(name)) |
| 225 | row += nodes.entry("", name_node) |
| 226 | |
| 227 | args_node = nodes.paragraph() |
| 228 | for arg in args: |
| 229 | args_node += nodes.literal(arg, arg) |
| 230 | args_node += nodes.Text(", ") |
| 231 | if len(args_node.children) > 0: |
| 232 | args_node.children.pop() # remove trailing comma |
| 233 | row += nodes.entry("", args_node) |
| 234 | |
| 235 | backlinks_node = nodes.paragraph() |
| 236 | backlinks = enumerate(sorted(sources), start=1) |
| 237 | for i, (doc, label) in backlinks: |
| 238 | if isinstance(label, str): |
| 239 | ref = nodes.reference("", f"[{i}]", internal=True) |
| 240 | try: |
| 241 | target = ( |
| 242 | f"{builder.get_relative_uri(docname, doc)}#{label}" |
| 243 | ) |
| 244 | except NoUri: |
| 245 | continue |
| 246 | else: |
| 247 | ref["refuri"] = target |
| 248 | backlinks_node += ref |
| 249 | row += nodes.entry("", backlinks_node) |
| 250 | return row |
| 251 | |
| 252 | |
| 253 | def setup(app: Sphinx): |
no test coverage detected