'The heart of content parsing, iterates over the
list of split contents and looks at its kind
to decide what to do with it. Should yield a
bunch of precompiled and/or rendered hunks.'

def hunks(self, forced=False):

    enabled = (settings.COMPRESS_ENABLED or forced)
    for (kind, value, basename, elem) in self.split_contents():
        precompiled = False
        attribs = self.parser.elem_attribs(elem)
        charset = attribs.get(u'charset', self.charset)
        options = {u'method': METHOD_INPUT, u'elem': elem, u'kind': kind, u'basename': basename, u'charset': charset}
        if (kind == SOURCE_FILE):
            options = dict(options, filename=value)
            value = self.get_filecontent(value, charset)
        if self.precompiler_mimetypes:
            (precompiled, value) = self.precompile(value, **options)
        if enabled:
            (yield self.filter(value, self.cached_filters, **options))
        elif precompiled:
            if (CssAbsoluteFilter in self.cached_filters):
                value = self.filter(value, [CssAbsoluteFilter], **options)
            elif (CssRelativeFilter in self.cached_filters):
                value = self.filter(value, [CssRelativeFilter], **options)
            (yield self.handle_output(kind, value, forced=True, basename=basename))
        else:
            (yield self.parser.elem_str(elem))
