'The concat (concatenation) member function is responsible for
preparing the data to be written to the file. The file is
layed outlike this as requested in the DuckDuckHack docs found
here: http://docs.duckduckhack.com/resources/fathead-overview.html#data-file-format'

def concat(self, name, desc, url, version):

    title = name
    type_ = 'A'
    redirect = ''
    four = ''
    categories = ''
    six = ''
    related_topics = ''
    eight = ''
    external_links = ''
    ten = ''
    image = ''
    nAbstract = u'\n                                                <section    class="prog__container">\n                                                                <p>{0}</p>\n                                                                <pre>\n                                                                                <code>\n                                                                                                opam    install    {1}\n                                                                                </code>\n                                                                </pre>\n                                                                <span    class="prog__sub">Version:    {2}</span>\n                                                </section>\n                                                '.format(desc, name, version)
    abstract = re.sub('\\s+', '    ', nAbstract)
    url = url
    data = [title, type_, redirect, four, categories, six, related_topics, eight, external_links, ten, image, abstract, url]
    line = (' DCTB '.join(data) + '\n')
    return line
