docs: def to_text(self, digest, blob, mime_type):
          """Convert a file to plain text.
  
          Useful for full-text indexing. Returns a Unicode string.
          """
          # Special case, for now (XXX).
          if mime_type.startswith("image/"):
              return ""
  
          cache_key = "txt:" + digest
  
          text = self.cache.get(cache_key)
          if text:
              return text
  
          # Direct conversion possible
          for handler in self.handlers:
              if handler.accept(mime_type, "text/plain"):
                  text = handler.convert(blob)
                  self.cache[cache_key] = text
                  return text
  
          # Use PDF as a pivot format
          pdf = self.to_pdf(digest, blob, mime_type)
          for handler in self.handlers:
              if handler.accept("application/pdf", "text/plain"):
                  text = handler.convert(pdf)
                  self.cache[cache_key] = text
                  return text
  
          raise HandlerNotFound(f"No handler found to convert from {mime_type} to text")