docs: def preview(pid, record, template=None, **kwargs):
      """Preview file for given record.
  
      Plug this method into your ``RECORDS_UI_ENDPOINTS`` configuration:
  
      .. code-block:: python
  
          RECORDS_UI_ENDPOINTS = dict(
              recid=dict(
                  # ...
                  route='/records/<pid_value/preview/<path:filename>',
                  view_imp='invenio_previewer.views.preview',
                  record_class='invenio_records_files.api:Record',
              )
          )
      """
      # Get file from record
      fileobj = current_previewer.record_file_factory(
          pid, record, request.view_args.get(
              'filename', request.args.get('filename', type=str))
      )
      if not fileobj:
          abort(404)
  
      # Try to see if specific previewer is requested?
      try:
          file_previewer = fileobj['previewer']
      except KeyError:
          file_previewer = None
  
      # Find a suitable previewer
      fileobj = PreviewFile(pid, record, fileobj)
      for plugin in current_previewer.iter_previewers(
              previewers=[file_previewer] if file_previewer else None):
          if plugin.can_preview(fileobj):
              try:
                  return plugin.preview(fileobj)
              except Exception:
                  current_app.logger.warning(
                      ('Preview failed for {key}, in {pid_type}:{pid_value}'
                       .format(key=fileobj.file.key,
                               pid_type=fileobj.pid.pid_type,
                               pid_value=fileobj.pid.pid_value)),
                      exc_info=True)
      return default.preview(fileobj)