anchor.diff:      end;
   escape_value_check(B) when is_binary(B) ->
       escape_check(B);
  -escape_value_check(V) -> 
  +escape_value_check(V) ->
       V.
   
   
  
positive.code: -spec escape(list()|binary()|{trans, list()}) -> binary() | undefined.
  escape({trans, Tr}) ->
      {trans, [{Lang, escape(V)} || {Lang,V} <- Tr]};
  escape(undefined) -> 
      undefined;
  escape(<<>>) -> 
      <<>>;
  escape([]) ->
      <<>>;
  
negative.code: 
  
  %% @doc Escape all properties used for an update statement. Only leaves the body property intact.
  -spec escape_props(list() | map()) -> list() | map().
  escape_props(Props) ->
      escape_props(Props, []).
  
  -spec escape_props(list() | map(), Options::list()) -> list() | map().
  escape_props(Props, Options) when is_list(Props) ->
      lists:map(
          fun({P, V}) ->
              V1 = escape_props1(z_convert:to_binary(P), V, Options),
              {P, V1}
          end,
          Props);
  escape_props(Props, Options) when is_map(Props) ->
      maps:map(
          fun(K, V) ->
              escape_props1(z_convert:to_binary(K), V, Options)
          end,
          Props).
  
  escape_props1(_K, V, _Options) when is_float(V); is_integer(V); is_atom(V) ->
      V;
  escape_props1(<<"body", _/binary>>, V, Options) ->
      sanitize(V, Options);
  escape_props1(<<"summary">>, Summary, _Options) ->
      nl2br(escape_value(Summary));
  escape_props1(<<"blocks">>, V, Options) when is_list(V) ->
      [ escape_props(L, Options) || L <- V ];
  escape_props1(<<"website">>, V, _Options) ->
      escape_value(sanitize_uri(V));
  escape_props1(<<"is_", _/binary>>, V, _Options) ->
      z_convert:to_bool(V);
  escape_props1(_K, V, Options) when is_map(V) ->
      escape_props(V, Options);
  escape_props1(K, V, Options) ->
      Type = lists:last(binary:split(K, <<"_">>, [global])),
      case Type of
          <<"html">> -> sanitize(V, Options);
          <<"uri">> -> escape_value(sanitize_uri(V));
          <<"url">> -> escape_value(sanitize_uri(V));
          _ -> escape_value(V)
      end.
  
  escape_value({trans, _Ts} = Tr) ->
      escape(Tr);
  