示例#1
0
def get_stack_items(macro, repo_data):
    f = macro.formatter
    p, url, div, br = f.paragraph, f.url, f.div, f.linebreak
    em, strong = f.emphasis, f.strong
    h, li, ul = f.heading, f.listitem, f.bullet_list
    text, rawHTML = f.text, f.rawHTML

    items = []
    vcs_config = repo_data['vcs']
    stacks = repo_data['stacks']
    for name in sorted(stacks.iterkeys()):
        data = stacks[name]
        data['vcs'] = vcs_config['type']

        # keys
        authors = data.get('authors', 'unknown')
        try:
            if type(authors) != unicode:
                authors = unicode(authors, 'utf-8')
        except UnicodeDecodeError:
            authors = ''
        license = data.get('license', 'unknown')
        description = data.get('description', '')
        try:
            if type(description) != unicode:
                description = unicode(description, 'utf-8')
        except UnicodeDecodeError:
            description = ''
        packages = data.get('packages', [])

        # filter out test packages
        packages = [s for s in packages if not s.startswith('test_')]
        packages.sort()

        package_links = []
        for pkg in packages:
            package_links.append(wiki_url(macro, pkg))

        # don't include vcs link for git/bzr/hg/etc... as URI cannot point
        # to stack directly in a DVCS, i.e. it's only useful for SVN
        # stacks.
        if vcs_config['type'] == 'svn':
            vcs_li = get_vcs_li(macro, data)
        else:
            vcs_li = ''
        stack_html = \
            rawHTML('<a name="%s">'%(name))+\
            h(1,3)+rawHTML(wiki_url(macro, name))+h(0,3)+\
            p(1,id="package-info")+rawHTML(description)+p(0)+\
            p(1,id="package-info")+ul(1)+\
            li(1)+text("Author: "+authors)+li(0)+\
            li(1)+text("License: "+license)+li(0)+\
            li(1)+text("Packages: ")+rawHTML(", ".join(package_links))+li(0)+\
            vcs_li+\
            ul(0)+p(0)
        items.append(stack_html)
    return items
示例#2
0
def get_stack_items(macro, repo_data):
    f = macro.formatter
    p, url, div, br = f.paragraph, f.url, f.div, f.linebreak
    em, strong = f.emphasis, f.strong
    h, li, ul = f.heading, f.listitem, f.bullet_list
    text, rawHTML = f.text, f.rawHTML
    
    items = []
    vcs_config = repo_data['vcs']
    stacks = repo_data['stacks']
    for name in sorted(stacks.iterkeys()):
        data = stacks[name]
        data['vcs'] = vcs_config['type']
  
        # keys
        authors = data.get('authors', 'unknown')
        try:
            if type(authors) != unicode:
                authors = unicode(authors, 'utf-8')
        except UnicodeDecodeError:
            authors = ''
        license = data.get('license', 'unknown')
        description = data.get('description', '')
        try:
            if type(description) != unicode:
                description = unicode(description, 'utf-8')
        except UnicodeDecodeError:
            description = ''
        packages = data.get('packages', [])
  
        # filter out test packages
        packages = [s for s in packages if not s.startswith('test_')]
        packages.sort()
  
        package_links = []
        for pkg in packages:
            package_links.append(wiki_url(macro, pkg))
  
        # don't include vcs link for git/bzr/hg/etc... as URI cannot point
        # to stack directly in a DVCS, i.e. it's only useful for SVN
        # stacks.
        if vcs_config['type'] == 'svn':
            vcs_li = get_vcs_li(macro, data)
        else:
            vcs_li = ''
        stack_html = \
            rawHTML('<a name="%s">'%(name))+\
            h(1,3)+rawHTML(wiki_url(macro, name))+h(0,3)+\
            p(1,id="package-info")+rawHTML(description)+p(0)+\
            p(1,id="package-info")+ul(1)+\
            li(1)+text("Author: "+authors)+li(0)+\
            li(1)+text("License: "+license)+li(0)+\
            li(1)+text("Packages: ")+rawHTML(", ".join(package_links))+li(0)+\
            vcs_li+\
            ul(0)+p(0)
        items.append(stack_html)
    return items
示例#3
0
def get_nav(macro, stack_name, packages, distro=None):
    nav = ''
    strong, em, text = macro.formatter.strong, macro.formatter.emphasis, macro.formatter.text

    if not stack_name or stack_name == 'sandbox':
        # ignore sandbox and non-stacked packages
        return nav
    elif [stack_name] == packages:
        # unary stack header
        return nav
        # return nav+strong(1)+text(stack_name)+strong(0)

    distro_query = None
    if distro:
        distro_query = "distro=%s" % distro

    page_name = macro.formatter.page.page_name

    # create navigation elements for stack name
    if stack_name == page_name:
        top = strong(1) + text(stack_name) + strong(0)
    else:
        top = strong(1) + wiki_url(macro, stack_name,
                                   querystr=distro_query) + strong(0)

    # create navigation elements for packages
    packages = [s for s in packages if not s.startswith('test_')]
    packages.sort()
    parts = []
    for pkg in packages:
        if pkg == 'catkin':
            continue
        if pkg == page_name:
            parts.append(text(pkg))
        else:
            parts.append(wiki_url(macro, pkg, querystr=distro_query))

    # assemble nav elements
    nav = nav + em(1) + top
    if parts:
        nav += text(': ') + parts[0]
        for part in parts[1:]:
            nav += text(' | ') + part
    nav += em(0)
    return nav
示例#4
0
def get_dependency_list(macro, data, css_prefix='', distro=None):
    f = macro.formatter
    li, ul, strong, div = f.listitem, f.bullet_list, f.strong, f.div

    depends = data.get('depends', [])
    depends_on = data.get('depends_on', [])

    distro_query = None
    if distro:
        distro_query = "distro=%s" % distro

    links = ''
    if depends:
        depends.sort()
        links += (
            strong(1) +
            '<a href="#" onClick="toggleExpandable(\'%sdependencies-list\'); return false;">'
            'Dependencies'
            '</a> (%s)' % (css_prefix, len(depends)) +
            strong(0) +
            '<br />' +
            '<div id="%sdependencies-list" style="display:none">' % (css_prefix) +
            ul(1)
        )
        for d in depends:
            links += li(1) + wiki_url(macro, d, shorten=20, querystr=distro_query, raw=True) + li(0)
        links += ul(0)+div(0)
    if depends_on:
        depends_on.sort()
        links += (
            strong(1) +
            '<a href="#" onClick="toggleExpandable(\'%sused-by-list\'); return false;">'
            'Used by'
            '</a> (%s)' % (css_prefix, len(depends_on)) +
            strong(0) + "<br />" +
            '<div id="%sused-by-list" style="display:none">' % (css_prefix) + ul(1))
        for d in depends_on:
            links += li(1) + wiki_url(macro, d, shorten=20, querystr=distro_query, raw=True) + li(0)
        links += ul(0) + div(0)

    if links:
        links = '<script type="text/javascript" src="/custom/js/roswiki.js"></script>' + links

    return links
示例#5
0
def get_nav(macro, stack_name, packages, distro=None):
    nav = ''
    strong, em, text = macro.formatter.strong, macro.formatter.emphasis, macro.formatter.text

    if not stack_name or stack_name == 'sandbox':
        # ignore sandbox and non-stacked packages
        return nav
    elif [stack_name] == packages:
        # unary stack header
        return nav
        # return nav+strong(1)+text(stack_name)+strong(0)

    distro_query = None
    if distro:
        distro_query = "distro=%s" % distro

    page_name = macro.formatter.page.page_name

    # create navigation elements for stack name
    if stack_name == page_name:
        top = strong(1)+text(stack_name)+strong(0)
    else:
        top = strong(1)+wiki_url(macro, stack_name, querystr=distro_query)+strong(0)

    # create navigation elements for packages
    packages = [s for s in packages if not s.startswith('test_')]
    packages.sort()
    parts = []
    for pkg in packages:
        if pkg == 'catkin':
            continue
        if pkg == page_name:
            parts.append(text(pkg))
        else:
            parts.append(wiki_url(macro, pkg, querystr=distro_query))

    # assemble nav elements
    nav = nav + em(1) + top
    if parts:
        nav += text(': ')+parts[0]
        for part in parts[1:]:
            nav += text(' | ')+part
    nav += em(0)
    return nav
示例#6
0
def get_dependency_list(macro, data, css_prefix='', distro=None):
    f = macro.formatter
    li, ul, strong, div = f.listitem, f.bullet_list, f.strong, f.div

    depends = data.get('depends', [])
    depends_on = data.get('depends_on', [])

    distro_query = None
    if distro:
        distro_query = "distro=%s" % distro

    links = ''
    if depends:
        depends.sort()
        links += (
            strong(1) +
            '<a href="#" onClick="toggleExpandable(\'%sdependencies-list\'); return false;">'
            'Dependencies'
            '</a> (%s)' % (css_prefix, len(depends)) +
            strong(0) +
            '<br />' +
            '<div id="%sdependencies-list" style="display:none">' % (css_prefix) +
            ul(1)
        )
        for d in depends:
            links += li(1) + wiki_url(macro, d, shorten=20, querystr=distro_query, raw=True) + li(0)
        links += ul(0)+div(0)
    if depends_on:
        depends_on.sort()
        links += (
            strong(1) +
            '<a href="#" onClick="toggleExpandable(\'%sused-by-list\'); return false;">'
            'Used by'
            '</a> (%s)' % (css_prefix, len(depends_on)) +
            strong(0) + "<br />" +
            '<div id="%sused-by-list" style="display:none">' % (css_prefix) + ul(1))
        for d in depends_on:
            links += li(1) + wiki_url(macro, d, shorten=20, querystr=distro_query, raw=True) + li(0)
        links += ul(0) + div(0)

    if links:
        links = '<script type="text/javascript" src="/custom/js/roswiki.js"></script>' + links

    return links
示例#7
0
def get_dependency_list(macro, data, css_prefix="", distro=None):
    f = macro.formatter
    li, ul, strong, div = f.listitem, f.bullet_list, f.strong, f.div

    depends = data.get("depends", [])
    depends_on = data.get("depends_on", [])

    distro_query = None
    if distro:
        distro_query = "distro=%s" % distro

    links = ""
    if depends:
        depends.sort()
        links += (
            strong(1)
            + '<a href="#" onClick="toggleExpandable(\'%sdependencies-list\');">Dependencies</a> (%s)'
            % (css_prefix, len(depends))
            + strong(0)
            + "<br />"
            + '<div id="%sdependencies-list" style="display:none">' % (css_prefix)
            + ul(1)
        )
        for d in depends:
            links += li(1) + wiki_url(macro, d, shorten=20, querystr=distro_query) + li(0)
        links += ul(0) + div(0)
    if depends_on:
        depends_on.sort()
        links += (
            strong(1)
            + '<a href="#" onClick="toggleExpandable(\'%sused-by-list\');">Used by</a> (%s)'
            % (css_prefix, len(depends_on))
            + strong(0)
            + "<br />"
            + '<div id="%sused-by-list" style="display:none">' % (css_prefix)
            + ul(1)
        )
        for d in depends_on:
            links += li(1) + wiki_url(macro, d, shorten=20, querystr=distro_query) + li(0)
        links += ul(0) + div(0)

    return links
示例#8
0
def get_nav(macro, stack_name, packages, distro=None):
    nav = '<script type="text/javascript" src="/js/roswiki.js"></script>'
    strong, em, text = macro.formatter.strong, macro.formatter.emphasis, macro.formatter.text

    if not stack_name or stack_name == "sandbox":
        # ignore sandbox and non-stacked packages
        return nav
    elif [stack_name] == packages:
        # unary stack header
        return nav
        # return nav+strong(1)+text(stack_name)+strong(0)

    distro_query = None
    if distro:
        distro_query = "distro=%s" % distro

    page_name = macro.formatter.page.page_name

    # create navigation elements for stack name
    if stack_name == page_name:
        top = strong(1) + text(stack_name) + strong(0)
    else:
        top = strong(1) + wiki_url(macro, stack_name, querystr=distro_query) + strong(0)

    # create navigation elements for packages
    packages = [s for s in packages if not s.startswith("test_")]
    packages.sort()
    parts = []
    for pkg in packages:
        if pkg == page_name:
            parts.append(text(pkg))
        else:
            parts.append(wiki_url(macro, pkg, querystr=distro_query))

    # assemble nav elements
    nav = nav + em(1) + top
    if parts:
        nav += text(": ") + parts[0]
        for part in parts[1:]:
            nav += text(" | ") + part
    nav += em(0)
    return nav
        license = data.get("license", "unknown")
        description = data.get("description", "")
        try:
            if type(description) != unicode:
                description = unicode(description, "utf-8")
        except UnicodeDecodeError:
            description = ""
        packages = data.get("packages", [])

        # filter out test packages
        packages = [s for s in packages if not s.startswith("test_")]
        packages.sort()

        package_links = []
        for pkg in packages:
            package_links.append(wiki_url(macro, pkg))

        # don't include vcs link for git/bzr/hg/etc... as URI cannot point
        # to stack directly in a DVCS, i.e. it's only useful for SVN
        # stacks.
        if vcs_config["type"] == "svn":
            # we strip this redundant tag from the stack data and have to reinsert
            vcs_li = get_vcs_li(macro, data)
        else:
            vcs_li = ""
        stack_html = (
            rawHTML('<a name="%s">' % (stack_name))
            + h(1, 3)
            + rawHTML(wiki_url(macro, stack_name))
            + h(0, 3)
            + p(1, id="package-info")
示例#10
0
        license = data.get('license', 'unknown')
        description = data.get('description', '')
        try:
            if type(description) != unicode:
                description = unicode(description, 'utf-8')
        except UnicodeDecodeError:
            description = ''
        packages = data.get('packages', [])

        # filter out test packages
        packages = [s for s in packages if not s.startswith('test_')]
        packages.sort()

        package_links = []
        for pkg in packages:
            package_links.append(wiki_url(macro, pkg))

        # don't include vcs link for git/bzr/hg/etc... as URI cannot point
        # to stack directly in a DVCS, i.e. it's only useful for SVN
        # stacks.
        if vcs_config['type'] == 'svn':
            # we strip this redundant tag from the stack data and have to reinsert
            vcs_li = get_vcs_li(macro, data)
        else:
            vcs_li = ''
        stack_html = \
            rawHTML('<a name="%s">'%(stack_name))+\
            h(1,3)+rawHTML(wiki_url(macro, stack_name))+h(0,3)+\
            p(1,id="package-info")+rawHTML(description)+p(0)+\
            p(1,id="package-info")+ul(1)+\
            li(1)+text("Author: "+authors)+li(0)+\
示例#11
0
    stack_items = get_stack_items(macro, repo_data)

    toc = ''
    # stack index
    stack_names = sorted(repo_data['stacks'].iterkeys())
    if stack_names:
        toc += li(1) + text('Stacks') + ul(1)
        for name in sorted(stack_names):
            toc += li(1) + rawHTML('<a href="#%s">%s</a>' %
                                   (name, name)) + li(0)
        toc += ul(0) + li(0)

    package_names = sorted(
        repo_data['packages'].iterkeys()) if display_packages else []
    if package_names:
        toc += li(1) + text('Packages') + ul(1)
        for name in package_names:
            toc += li(1) + wiki_url(macro, name) + li(0)
        toc += ul(0) + li(0)

    vcs_config = repo_data['vcs']
    uri = vcs_config['uri']
    repo_desc = h(1,2)+text(repo_name)+h(0,2)+\
        ul(1)+\
        li(1)+text('Version Control: %s '%(vcs_config['type']))+rawHTML('<a href="%s">%s</a>'%(uri, uri))+li(0)+\
        toc+\
        ul(0)

    return repo_desc + '\n'.join(stack_items)
示例#12
0
    text, rawHTML = f.text, f.rawHTML
  
    stack_items = get_stack_items(macro, repo_data) 
    
    toc = ''
    # stack index
    stack_names = sorted(repo_data['stacks'].iterkeys())
    if stack_names:
        toc += li(1)+text('Stacks')+ul(1)
        for name in sorted(stack_names):
            toc += li(1)+rawHTML('<a href="#%s">%s</a>'%(name, name))+li(0)
        toc += ul(0)+li(0)

    package_names = sorted(repo_data['packages'].iterkeys()) if display_packages else []
    if package_names:
        toc += li(1)+text('Packages')+ul(1)
        for name in package_names:
            toc += li(1)+wiki_url(macro, name)+li(0)
        toc += ul(0)+li(0)
    
    vcs_config = repo_data['vcs']
    uri = vcs_config['uri']
    repo_desc = h(1,2)+text(repo_name)+h(0,2)+\
        ul(1)+\
        li(1)+text('Version Control: %s '%(vcs_config['type']))+rawHTML('<a href="%s">%s</a>'%(uri, uri))+li(0)+\
        toc+\
        ul(0)
  

    return repo_desc+'\n'.join(stack_items)