code: def _show_markdown(diff, show_hash=False, hide_missing=False):
      headers = (
          ["Status", "Hash", "Path"]
          if show_hash
          else ["Status", "Path"]
      )
      rows = []
      statuses = ["added", "deleted", "renamed", "modified"]
      if not hide_missing:
          statuses.append("not in cache")
  
      for status in statuses:
          entries = diff.get(status, [])
          if not entries:
              continue
          for entry in entries:
              path = entry["path"]
              if isinstance(path, dict):
                  path = f"{path['old']} -> {path['new']}"
              if show_hash:
                  check_sum = _digest(entry.get("hash", ""))
                  rows.append([status, check_sum, path])
              else:
                  rows.append([status, path])
  
      ui.table(rows, headers=headers, markdown=True)
  
file_path: dvc/dvc/commands/diff.py
imports: import os
  from dvc.cli import completion, formatter
  from dvc.cli.command import CmdBase
  from dvc.cli.utils import append_doc_link
  from dvc.log import logger
  from dvc.ui import ui
label_desc: Use image node_id 2 for calling a global function with example usage: _show_markdown(diff, show_hash, hide_missing) without return types