public String generateTOCItemTag(LinkDatabase linkDatabase, boolean isInlineTag,
			int indentLevel) {
		StringBuilder buildy = new StringBuilder();
		buildy.append(INDENTS[indentLevel]);
		buildy.append('<').append(TOC_TAG_NAME).append(' ');

		// text attribute
		// NOTE: we do not put our display text in this attribute.  This is because JavaHelp uses
		//       this attribute for sorting.  We want to separate sorting from display, so we
		//       manipulate the JavaHelp software by setting this attribute the desired sort value.
		//       We have overridden JavaHelp to use a custom renderer that will paint the display
		//       text with the attribute we set below.
		buildy.append(TEXT).append("=\"").append(sortPreference).append("\" ");

		// target attribute
		if (targetAttribute != null) {
			// this can be null if no html file is specified for a TOC item (like a parent folder)
			String ID = linkDatabase.getIDForLink(targetAttribute);
			if (ID == null) {
				ID = targetAttribute; // this can happen for things we do not map, like raw URLs
			}
			buildy.append(TARGET).append("=\"").append(ID).append("\" ");
		}

		// mergetype attribute
		buildy.append(MERGE_TYPE_ATTRIBUTE);

		// our custom display text attribute
		buildy.append(' ').append("display").append("=\"").append(textAttribute).append("\"");

		// our custom toc id attribute
		buildy.append(' ').append("toc_id").append("=\"").append(IDAttribute).append("\"");

		if (isInlineTag) {
			buildy.append(" />");
		}
		else {
			buildy.append(">");
		}

		return buildy.toString();
	}
True if the two items are the same, except that they come from a different source file.
@param other the other item
@return true if equivalent
Ghidra/Framework/Help/src/main/java/help/validator/model/TOCItem.java