anchor.diff:              Tag = { Elt, 
                       Attrs1,
                       [ sanitize(Encl, Stack1, ExtraElts, ExtraAttrs, Options) || Encl <- Enclosed ]},
  -            sanitize_callback(Tag, Stack, Options);
  +            sanitize_element(Tag, Stack, Options);
           false ->
               case skip_contents(Elt) of
                   false ->
  
positive.code:             end
      end.
  
  sanitize_callback(Element, _Stack, Context) when is_tuple(Context), element(1, Context) =:= context ->
      z_notifier:foldl(sanitize_element, Element, Context);
  sanitize_callback(Element, Stack, Options) ->
      case proplists:get_value(element, Options) of
          undefined -> Element;
          {M,F,A} -> erlang:apply(M, F, [Element,Stack|A]);
          F when is_function(F,1) -> F(Element);
          F when is_function(F,2) -> F(Element,Options);
          F when is_function(F,3) -> F(Element,Stack,Options)
      end.
  
  
  %% @doc Flatten the sanitized html tree to a binary 
  
negative.code: sanitize_opts(Html, Context) when is_tuple(Context), element(1, Context) =:= context ->
      ExtraElts = m_config:get_value(site, html_elt_extra, <<>>, Context),
      ExtraAttrs = m_config:get_value(site, html_attr_extra, <<>>, Context),
      Options = [{element, fun(Element) -> z_notifier:foldl(sanitize_element, Element, Context) end}],
      sanitize1(Html, ExtraElts, ExtraAttrs, Options);
  sanitize_opts(Html, Options) ->
      sanitize1(Html, proplists:get_value(elt_extra, Options, []), 
          proplists:get_value(attr_extra, Options, []), Options).
  