'>>> t = Textile()
>>> t.fBlock("bq", "", None, "", "Hello BlockQuote")
(\'\t<blockquote>\n\', \'\t\t<p>\', \'Hello BlockQuote\', \'</p>\', \'\n\t</blockquote>\')
>>> t.fBlock("bq", "", None, "http://google.com", "Hello BlockQuote")
(\'\t<blockquote cite="http://google.com">\n\', \'\t\t<p>\', \'Hello BlockQuote\', \'</p>\', \'\n\t</blockquote>\')
>>> t.fBlock("bc", "", None, "", \'printf "Hello, World";\') # doctest: +ELLIPSIS
(\'<pre>\', \'<code>\', ..., \'</code>\', \'</pre>\')
>>> t.fBlock("h1", "", None, "", "foobar")
(\'\', \'\t<h1>\', \'foobar\', \'</h1>\', \'\')'

def fBlock(self, tag, atts, ext, cite, content):

    atts = self.pba(atts)
    o1 = o2 = c2 = c1 = ''
    m = re.search('fn(\\d+)', tag)
    if m:
        tag = 'p'
        if (m.group(1) in self.fn):
            fnid = self.fn[m.group(1)]
        else:
            fnid = m.group(1)
        atts = (atts + ('    id="fn%s"' % fnid))
        if (atts.find('class=') < 0):
            atts = (atts + '    class="footnote"')
        content = (('<sup>%s</sup>' % m.group(1)) + content)
    if (tag == 'bq'):
        cite = self.checkRefs(cite)
        if cite:
            cite = ('    cite="%s"' % cite)
        else:
            cite = ''
        o1 = (' DCTB <blockquote%s%s>\n' % (cite, atts))
        o2 = (' DCTB  DCTB <p%s>' % atts)
        c2 = '</p>'
        c1 = '\n DCTB </blockquote>'
    elif (tag == 'bc'):
        o1 = ('<pre%s>' % atts)
        o2 = ('<code%s>' % atts)
        c2 = '</code>'
        c1 = '</pre>'
        content = self.shelve(self.encode_html((content.rstrip('\n') + '\n')))
    elif (tag == 'notextile'):
        content = self.shelve(content)
        o1 = o2 = ''
        c1 = c2 = ''
    elif (tag == 'pre'):
        content = self.shelve(self.encode_html((content.rstrip('\n') + '\n')))
        o1 = ('<pre%s>' % atts)
        o2 = c2 = ''
        c1 = '</pre>'
    else:
        o2 = (' DCTB <%s%s>' % (tag, atts))
        c2 = ('</%s>' % tag)
    content = self.graf(content)
    return (o1, o2, content, c2, c1)
