| 127 | ] |
| 128 | |
| 129 | def run(self) -> list[nodes.paragraph]: |
| 130 | name = self.arguments[0] |
| 131 | if len(self.arguments) >= 2 and self.arguments[1]: |
| 132 | args = [ |
| 133 | arg |
| 134 | for argument in self.arguments[1].strip("'\"").split(",") |
| 135 | if (arg := argument.strip()) |
| 136 | ] |
| 137 | else: |
| 138 | args = [] |
| 139 | ids = [] |
| 140 | try: |
| 141 | target = self.arguments[2].strip("\"'") |
| 142 | except (IndexError, TypeError): |
| 143 | target = None |
| 144 | if not target: |
| 145 | target = self.env.audit_events.id_for(name) |
| 146 | ids.append(target) |
| 147 | self.env.audit_events.add_event(name, args, (self.env.docname, target)) |
| 148 | |
| 149 | node = nodes.paragraph("", classes=["audit-hook"], ids=ids) |
| 150 | self.set_source_info(node) |
| 151 | if self.content: |
| 152 | node.rawsource = '\n'.join(self.content) # for gettext |
| 153 | self.state.nested_parse(self.content, self.content_offset, node) |
| 154 | else: |
| 155 | num_args = min(2, len(args)) |
| 156 | text = self._label[num_args].format( |
| 157 | name=f"``{name}``", |
| 158 | args=", ".join(f"``{a}``" for a in args), |
| 159 | ) |
| 160 | node.rawsource = text # for gettext |
| 161 | parsed, messages = self.state.inline_text(text, self.lineno) |
| 162 | node += parsed |
| 163 | node += messages |
| 164 | return [node] |
| 165 | |
| 166 | |
| 167 | class audit_event_list(nodes.General, nodes.Element): # noqa: N801 |