String convertHtml(HtmlDocTree tag, Element el, ListIterator<? extends DocTree> it) {
		StartElementTree start = tag.getStartTag();
		return switch (tag.getHtmlKind()) {
			case A -> convertAnchor(tag, el);
			case B -> "**" + convertTree(el, tag.getBody()) + "**";
			case BIG -> ""; // not in rst
			case BLOCKQUOTE -> convertBlockQuote(tag, el);
			case BR -> "\n";
			case CAPTION -> {
				logError(el, start, "<caption> outside of table");
				yield start.toString();
			}
			case CITE -> "*" + convertTree(el, tag.getBody()) + "*";
			case CODE -> "``" + convertTree(el, tag.getBody()) + "``";
			case DD -> {
				logError(el, start, "<dd> outside of list");
				yield start.toString();
			}
			case DEL -> "~~" + convertTree(el, tag.getBody()) + "~~";
			// rarely used, not bothering with id attribute
			case DFN -> "*" + convertTree(el, tag.getBody()) + "*";
			case DIV -> convertTree(el, tag.getBody()); // do nothing
			case DL -> convertDescriptionList(tag, el);
			case DT -> {
				logError(el, start, "<dt> outside of list");
				yield start.toString();
			}
			case EM -> "*" + convertTree(el, tag.getBody()) + "*";
			case H1 -> convertHeader(tag, el, '#');
			case H2 -> convertHeader(tag, el, '*');
			case H3 -> convertHeader(tag, el, '=');
			case H4 -> convertHeader(tag, el, '-');
			case H5 -> convertHeader(tag, el, '^');
			case H6 -> convertHeader(tag, el, '\'');
			case HR -> "---\n";
			case I -> "*" + convertTree(el, tag.getBody()) + "*";
			case IMG -> ""; // not supported because the images wouldn't be available
			case INS -> convertTree(el, tag.getBody()); // no underline in rst
			case LI -> {
				logError(el, start, "<li> outside of list");
				yield start.toString();
			}
			case OL -> convertOrderedList(tag, el);
			case P -> "\n";
			case PRE -> convertTree(el, tag.getBody()); // do nothing
			case SMALL -> ""; // not in rst
			case SPAN -> convertTree(el, tag.getBody()); // no colored text in rst
			case STRONG -> "**" + convertTree(el, tag.getBody()) + "**";
			case SUB -> ""; // no subscript in rst
			case SUP -> ""; // no superscript in rst
			case TABLE -> convertTable(tag, el);
			case TBODY -> {
				logError(el, start, "<tbody> outside of table");
				yield start.toString();
			}
			case TD -> {
				logError(el, start, "<td> outside of table");
				yield start.toString();
			}
			case TFOOT -> {
				logError(el, start, "<tfoot> outside of table");
				yield start.toString();
			}
			case TH -> {
				logError(el, start, "<th> outside of table");
				yield start.toString();
			}
			case THEAD -> {
				logError(el, start, "<thead> outside of table");
				yield start.toString();
			}
			case TR -> {
				logError(el, start, "<tr> outside of table");
				yield start.toString();
			}
			case TT -> "``" + convertTree(el, tag.getBody()) + "``";
			case U -> convertTree(el, tag.getBody()); // no underline in rst
			case UL -> convertUnorderedList(tag, el);
			case UNSUPPORTED -> {
				logWarning(el, start, "unsupported html tag");
				yield start.toString();
			}
			case VAR -> "*" + convertTree(el, tag.getBody()) + "*";
		};
	}
Converts the provided HTML to reStructuredText where possible

@param tag the html
@param el the element containing the html
@param it the Javadoc tree iterator
@return the converted string
GhidraBuild/BuildFiles/Doclets/src/main/java/ghidra/doclets/typestubs/HtmlConverter.java