| 57 | self._std_domain: StandardDomain = cast("StandardDomain", self.env.get_domain("std")) |
| 58 | |
| 59 | def run(self) -> list[Node]: |
| 60 | self.env.note_reread() # this document needs to be always updated |
| 61 | |
| 62 | line = paragraph() |
| 63 | line += Text("■" if "constant" in self.options else "⚙️") |
| 64 | for key in (i.strip() for i in self.options["keys"].split(",")): |
| 65 | line += Text(" ") |
| 66 | self._mk_key(line, key) |
| 67 | if "default" in self.options: |
| 68 | default = self.options["default"] |
| 69 | line += Text(" with default value of ") |
| 70 | line += literal(default, default) |
| 71 | if "version_added" in self.options: |
| 72 | line += Text(" 📢 added in ") |
| 73 | ver = self.options["version_added"] |
| 74 | line += literal(ver, ver) |
| 75 | if "version_changed" in self.options: |
| 76 | line += Text(" 🔄 changed in ") |
| 77 | ver = self.options["version_changed"] |
| 78 | line += literal(ver, ver) |
| 79 | if "version_deprecated" in self.options: |
| 80 | line += Text(" ⚠️ deprecated in ") |
| 81 | ver = self.options["version_deprecated"] |
| 82 | line += literal(ver, ver) |
| 83 | |
| 84 | p = container("") |
| 85 | self.state.nested_parse(StringList(string2lines("\n".join(f" {i}" for i in self.content))), 0, p) |
| 86 | line += p |
| 87 | |
| 88 | return [line] |
| 89 | |
| 90 | def _mk_key(self, line: paragraph, key: str) -> None: |
| 91 | ref_id = key if "ref_suffix" not in self.options else f"{key}-{self.options['ref_suffix']}" |