def process_image_field(self, data):
        """
        Process perseus fields like questions and hints, which look like:

        .. code-block:: python

          {
             "content": "md string including imgs like ![](URL-key) and ![](URL-key2)",
             "images": {
                "URL-key":  {"width": 425, "height": 425},
                "URL-key2": {"width": 425, "height": 425}
             }
          }

        Replaces `content` attribute and returns (images_dict, image_files), where

           - `images_dict` is a replacement for the old `images` key
           - `image_files` is a list image files for the URLs found

        Note it is possible for assesment items to include images links `content`
        that are not listed under `images`, so code must handle that case too,
        see https://github.com/learningequality/ricecooker/issues/178 for details.
        """
        new_images_dict = copy.deepcopy(data['images'])
        image_files = []

        # STEP 1. Compile dict of {old_url-->new_url} image URL replacements
        image_replacements = {}

        # STEP 1A. get all images specified in data['images']
        for old_url, image_settings in data['images'].items():
            new_url, new_image_files = self.set_image(old_url)
            image_files += new_image_files
            new_images_dict[new_url] = new_images_dict.pop(old_url)
            image_replacements[old_url] = new_url

        # STEP 1B. look for additional `MARKDOWN_IMAGE_REGEX`-like link in `content` attr.
        img_link_pat = re.compile(MARKDOWN_IMAGE_REGEX, flags=re.IGNORECASE)
        img_link_matches = img_link_pat.findall(data['content'])
        for match in img_link_matches:
            old_url = match[1]
            if old_url not in image_replacements.keys():
                new_url, new_image_files = self.set_image(old_url)
                image_files += new_image_files
                image_replacements[old_url] = new_url

        # Performd content replacent for all URLs in image_replacements
        for old_url, new_url in image_replacements.items():
            data['content'] = data['content'].replace(old_url, new_url)

        return new_images_dict, image_files