[Mlir-commits] [mlir] [mlir][docgen] Display full attribute descriptions in expandable regions (PR #67009)
Scott Todd
llvmlistbot at llvm.org
Tue Oct 10 09:19:04 PDT 2023
================
@@ -192,16 +199,35 @@ static void emitOpDoc(const Operator &op, raw_ostream &os) {
// Emit attributes.
if (op.getNumAttributes() != 0) {
- // TODO: Attributes are only documented by TableGen name, with no further
- // info. This should be improved.
os << "\n#### Attributes:\n\n";
- os << "| Attribute | MLIR Type | Description |\n"
- << "| :-------: | :-------: | ----------- |\n";
+ // Note: This table is HTML rather than markdown so the attribute's
+ // description can appear in an expandable region. The description may be
+ // multiple lines, which is not supported in a markdown table cell.
+ os << "<table>\n";
+ // Header.
+ os << "<tr><th>Attribute</th><th>MLIR Type</th><th>Description</th></tr>\n";
for (const auto &it : op.getAttributes()) {
StringRef storageType = it.attr.getStorageType();
- os << "| `" << it.name << "` | " << storageType << " | "
- << it.attr.getSummary() << "\n";
+ // Name and storage type.
+ os << "<tr>";
+ os << "<td><code>" << it.name << "</code></td><td>" << storageType
+ << "</td><td>";
+ StringRef description = resolveAttrDescription(it.attr);
+ if (!description.empty()) {
+ // Expandable description.
+ // This appears as just the summary, but when clicked shows the full
+ // description.
+ os << "<details>"
+ << "<summary>" << it.attr.getSummary() << "</summary>"
+ << "{{% markdown %}}" << description << "{{% /markdown %}}"
+ << "</details>";
+ } else {
+ // Fallback: Single-line summary.
+ os << it.attr.getSummary();
+ }
+ os << "</td></tr>\n";
}
+ os << "<table>\n";
----------------
ScottTodd wrote:
This is not valid HTML/markdown. Tags must be _closed_ (`</table>`), not opened twice.
https://github.com/llvm/llvm-project/pull/67009
More information about the Mlir-commits
mailing list