code: func (s *Action) showHandleOutput(ctx context.Context, name, key string, sec store.Secret) error {
  	var content string
  
  	switch {
  	case key != "":
  		val, err := sec.Value(key)
  		if err != nil {
  			return s.showHandleYAMLError(ctx, name, key, err)
  		}
  		if IsClip(ctx) {
  			return clipboard.CopyTo(ctx, name, []byte(val))
  		}
  		content = val
  	case IsPrintQR(ctx):
  		return s.showPrintQR(ctx, name, sec.Password())
  	case IsClip(ctx):
  		return clipboard.CopyTo(ctx, name, []byte(sec.Password()))
  	default:
  		switch {
  		case IsPasswordOnly(ctx):
  			content = sec.Password()
  		case ctxutil.IsShowSafeContent(ctx) && !IsForce(ctx):
  			content = sec.Body()
  			if content == "" {
  				if ctxutil.IsAutoClip(ctx) {
  					out.Yellow(ctx, "No safe content to display, you can force display with show -f.\nCopying password instead.")
  					return clipboard.CopyTo(ctx, name, []byte(sec.Password()))
  				}
  				return ExitError(ctx, ExitNotFound, store.ErrNoBody, store.ErrNoBody.Error())
  			}
  		default:
  			buf, err := sec.Bytes()
  			if err != nil {
  				return ExitError(ctx, ExitUnknown, err, "failed to encode secret: %s", err)
  			}
  			content = string(buf)
  		}
  	}
  
  	ctx = out.WithNewline(ctx, ctxutil.IsTerminal(ctx) && !strings.HasSuffix(content, "\n"))
  	out.Yellow(ctx, content)
  	return nil
  }
docs: // showHandleOutput displays a secret