示例#1
0
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"})
示例#2
0
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"})
示例#3
0
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
示例#4
0
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")
示例#5
0
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")
示例#6
0
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)
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)
示例#10
0
def _convertDocToHtml(html, elem, cls="doc"):
    doc = elem.get('doc')
    if doc:
        p = SubElement(html, "p", {"class": cls})
        p.text = doc
示例#11
0
def _convertDocToHtml(html, elem, cls="doc"):
    doc = elem.get('doc')
    if doc:
        p = SubElement(html, "p", {"class": cls})
        p.text = doc