    def render(self):
        indent = self.doc.indent
        inner = self.content or ''
        if not self.safe:
            inner = escape(inner, quote=False)
        inner += ''.join([n.render() for n in self.child_nodes])
        html = self.doc.render_tag(self.tag_name, inner, self.attrs)

        if indent:
            pretty_html = '\n' + (indent * self.level) + html
            if self._is_last():
                pretty_html += '\n' + indent * (self.level - 1)
            html = pretty_html

        return html