def render_component(self, declaration):
        """ Render a row of all the attributes """
        items = ["""<tr><td>{name}</td><td>{type}</td></tr>"""
                 .format(name=m.name,
                         type=self.render_component_types(declaration, m))
                 for m in self.get_component_members(declaration)]

        info = []
        parent = declaration.__mro__[1]
        #: Superclass
        info.append("<tr><td>extends component</td>"
                    "<td><a href='#component-{id}'>{name}</a></td></td>"
                    .format(id=parent.__name__.lower(), name=parent.__name__))

        #: Source and example, only works with enamlnative builtins
        source_path = inspect.getfile(declaration).replace(
                        ".pyo", ".py").replace(".pyc", ".py")
        if 'enamlnative' in source_path:
            source_link = "https://github.com/frmdstryr/" \
                          "enaml-native/tree/master/src/{}".format(
                source_path.split("assets/python")[1]
            )
            info.append("<tr><td>source code</td>"
                        "<td><a href='{}' target='_blank'>show</a></td></td>"
                        .format(source_link))

            #: Examples link
            example_link = "https://www.codelv.com/projects/" \
                           "enaml-native/docs/components#{}" \
                .format(declaration.__name__.lower())
            info.append("<tr><td>example usage</td>"
                        "<td><a href='{}' target='_blank'>view</a></td></td>"
                        .format(example_link))

        return COMPONENT_TMPL.format(id=declaration.__name__.lower(),
                                     name=declaration.__name__,
                                     info="".join(info),
                                     items="".join(items))
Render a row of all the attributes