def _convertClassToHtml(html, elem): html = SubElement(html, "div", {"class": "class"}) span = SubElement(html, "span", {"class": "class"}) span.text = "class %s" % (elem.get("name")) _convertDocToHtml(html, elem) variables = sorted([x for x in elem if x.tag == "variable"], _elemCompare) functions = sorted([x for x in elem if x.get("ilk") == "function"], _elemCompare) constructors = [ x for x in functions if "__ctor__" in x.get("attributes", "").split(" ") ] if constructors: h3 = SubElement(html, "h3", {"class": "class"}) h3.text = "Constructor" div = SubElement(html, "div", {"class": "class_variables"}) for ctor_elem in constructors: functions.remove(ctor_elem) _convertFunctionToHtml(div, ctor_elem) SubElement(div, "hr", {"class": "constructor_separator"}) if variables: h3 = SubElement(html, "h3", {"class": "class"}) h3.text = "Class variables" div = SubElement(html, "div", {"class": "class_variables"}) for var_elem in variables: _convertVariableToHtml(div, var_elem) SubElement(div, "hr", {"class": "variable_separator"}) if functions: h3 = SubElement(html, "h3", {"class": "class"}) h3.text = "Class functions" div = SubElement(html, "div", {"class": "class_functions"}) for var_elem in functions: _convertFunctionToHtml(div, var_elem) SubElement(div, "hr", {"class": "function_separator"})
def _convertClassToHtml(html, elem): html = SubElement(html, "div", {"class": "class"}) span = SubElement(html, "span", {"class": "class"}) span.text = "class %s" % (elem.get("name")) _convertDocToHtml(html, elem) variables = sorted([x for x in elem if x.tag == "variable"], _elemCompare) functions = sorted([x for x in elem if x.get( "ilk") == "function"], _elemCompare) constructors = [x for x in functions if "__ctor__" in x.get( "attributes", "").split(" ")] if constructors: h3 = SubElement(html, "h3", {"class": "class"}) h3.text = "Constructor" div = SubElement(html, "div", {"class": "class_variables"}) for ctor_elem in constructors: functions.remove(ctor_elem) _convertFunctionToHtml(div, ctor_elem) SubElement(div, "hr", {"class": "constructor_separator"}) if variables: h3 = SubElement(html, "h3", {"class": "class"}) h3.text = "Class variables" div = SubElement(html, "div", {"class": "class_variables"}) for var_elem in variables: _convertVariableToHtml(div, var_elem) SubElement(div, "hr", {"class": "variable_separator"}) if functions: h3 = SubElement(html, "h3", {"class": "class"}) h3.text = "Class functions" div = SubElement(html, "div", {"class": "class_functions"}) for var_elem in functions: _convertFunctionToHtml(div, var_elem) SubElement(div, "hr", {"class": "function_separator"})
def _convertFunctionToHtml(html, elem): elem_name = elem.get("name") elem_type = elem.get('ilk') or elem.tag div = SubElement(html, "div", {"class": "function"}) span = SubElement(div, "span", {"class": elem_type}) codeElements = elem.get('attributes', "").split(" ") isCtor = False if "__ctor__" in codeElements: isCtor = True codeElements.remove("__ctor__") #else: # codeElements.push("void") if not isCtor: #span.text = "%s %s %s" % (elem_type, " ".join(codeElements), # elem.get('signature') or elem_name + "()") span.text = "%s %s" % (" ".join(codeElements), elem.get('signature') or elem_name + "()") _convertDocToHtml(div, elem) else: span.text = "%s" % (elem.get('signature') or elem_name + "()") function_arguments = [ x for x in elem if x.get("ilk") == "argument" and (x.get("citdl") or x.get("doc")) ] if function_arguments: arg_div = SubElement(div, "div", {"class": "function_arguments"}) arg_div.text = "Arguments" for arg_elem in function_arguments: #sys.stderr.write("function arg: %r\n" % (arg_elem)) _convertArgumentToHtml(arg_div, arg_elem) returns = elem.get('returns') if returns: ret_div = SubElement(div, "div", {"class": "function_returns"}) ret_p = SubElement(ret_div, "p") ret_p.text = "Returns - " span = SubElement(ret_p, "span", {"class": "function_returns"}) span.text = returns
def _convertArgumentToHtml(html, elem): elem_name = elem.get("name") elem_type = elem.get('ilk') or elem.tag para = SubElement(html, "p") span = SubElement(para, "span", {"class": elem_type}) span.text = elem_name citdl = elem.get("citdl") if citdl: citdl_span = SubElement(para, "span", {"class": "citdl"}) citdl_span.text = " - %s" % (citdl, ) _convertDocToHtml(html, elem, "doc_for_argument")
def _convertArgumentToHtml(html, elem): elem_name = elem.get("name") elem_type = elem.get('ilk') or elem.tag para = SubElement(html, "p") span = SubElement(para, "span", {"class": elem_type}) span.text = elem_name citdl = elem.get("citdl") if citdl: citdl_span = SubElement(para, "span", {"class": "citdl"}) citdl_span.text = " - %s" % (citdl, ) _convertDocToHtml(html, elem, "doc_for_argument")
def _convertVariableToHtml(html, elem): """Convert cix elements into html documentation elements Generally this will operate on blobs and variables with citdl="Object". """ elem_name = elem.get("name") elem_type = elem.get('ilk') or elem.tag div = SubElement(html, "div", {"class": "variable"}) para = SubElement(div, "p") span = SubElement(para, "span", {"class": elem_type}) span.text = elem_name citdl = elem.get("citdl") if citdl: citdl_span = SubElement(para, "span", {"class": "variable_cidtl"}) citdl_span.text = " - %s" % (citdl, ) _convertDocToHtml(div, elem)
def _convertVariableToHtml(html, elem): """Convert cix elements into html documentation elements Generally this will operate on blobs and variables with citdl="Object". """ elem_name = elem.get("name") elem_type = elem.get('ilk') or elem.tag div = SubElement(html, "div", {"class": "variable"}) para = SubElement(div, "p") span = SubElement(para, "span", {"class": elem_type}) span.text = elem_name citdl = elem.get("citdl") if citdl: citdl_span = SubElement(para, "span", {"class": "variable_cidtl"}) citdl_span.text = " - %s" % (citdl, ) _convertDocToHtml(div, elem)
def _convertScopeToHtml(html, scope, namespace, namespace_elements): name = scope.get('name') if namespace: namespace += ".%s" % (name) else: namespace = name # sys.stderr.write("namespace: %s\n" % (namespace, )) a_href = SubElement(html, "a", name=namespace) # This is to fix a bug where firefox displays all elements with the same # css style as set in "a", like underline etc... a_href.text = " " div = SubElement(html, "div", {"name": namespace, "class": "namespace"}) namespace_elements.append((namespace, div)) h2 = SubElement(div, "h2", {"name": namespace, "class": "namespace"}) h2.text = namespace _convertDocToHtml(div, scope, "doc_for_namespace") variables = set([x for x in scope if x.tag == "variable"]) functions = set([x for x in scope if x.get("ilk") == "function"]) classes = set([x for x in scope if x.get("ilk") == "class"]) subscopes = set([x for x in variables if x.get("citdl") == "Object"]) variables.difference_update(subscopes) if variables: h3 = SubElement(div, "h3") h3.text = "Variables" for elem in sorted(variables, _elemCompare): _convertVariableToHtml(div, elem) SubElement(div, "hr", {"class": "variable_separator"}) if functions: h3 = SubElement(div, "h3") h3.text = "Functions" for elem in sorted(functions, _elemCompare): _convertFunctionToHtml(div, elem) SubElement(div, "hr", {"class": "function_separator"}) if classes: h3 = SubElement(div, "h3") h3.text = "Classes" for elem in sorted(classes, _elemCompare): _convertClassToHtml(div, elem) SubElement(div, "hr", {"class": "class_separator"}) for elem in sorted(subscopes, _elemCompare): _convertScopeToHtml(div, elem, namespace, namespace_elements)
def _convertScopeToHtml(html, scope, namespace, namespace_elements): name = scope.get('name') if namespace: namespace += ".%s" % (name) else: namespace = name # sys.stderr.write("namespace: %s\n" % (namespace, )) a_href = SubElement(html, "a", name=namespace) # This is to fix a bug where firefox displays all elements with the same # css style as set in "a", like underline etc... a_href.text = " " div = SubElement(html, "div", {"name": namespace, "class": "namespace"}) namespace_elements.append((namespace, div)) h2 = SubElement(div, "h2", {"name": namespace, "class": "namespace"}) h2.text = namespace _convertDocToHtml(div, scope, "doc_for_namespace") variables = set([x for x in scope if x.tag == "variable"]) functions = set([x for x in scope if x.get("ilk") == "function"]) classes = set([x for x in scope if x.get("ilk") == "class"]) subscopes = set([x for x in variables if x.get("citdl") == "Object"]) variables.difference_update(subscopes) if variables: h3 = SubElement(div, "h3") h3.text = "Variables" for elem in sorted(variables, _elemCompare): _convertVariableToHtml(div, elem) SubElement(div, "hr", {"class": "variable_separator"}) if functions: h3 = SubElement(div, "h3") h3.text = "Functions" for elem in sorted(functions, _elemCompare): _convertFunctionToHtml(div, elem) SubElement(div, "hr", {"class": "function_separator"}) if classes: h3 = SubElement(div, "h3") h3.text = "Classes" for elem in sorted(classes, _elemCompare): _convertClassToHtml(div, elem) SubElement(div, "hr", {"class": "class_separator"}) for elem in sorted(subscopes, _elemCompare): _convertScopeToHtml(div, elem, namespace, namespace_elements)
def _convertDocToHtml(html, elem, cls="doc"): doc = elem.get('doc') if doc: p = SubElement(html, "p", {"class": cls}) p.text = doc
def _convertDocToHtml(html, elem, cls="doc"): doc = elem.get('doc') if doc: p = SubElement(html, "p", {"class": cls}) p.text = doc