anchor.diff:  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),
  -    sanitize1(Html, ExtraElts, ExtraAttrs, 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).
  
positive.code:             Tag = { Elt, 
                      Attrs1,
                      [ sanitize(Encl, Stack1, ExtraElts, ExtraAttrs, Options) || Encl <- Enclosed ]},
              sanitize_callback(Tag, Stack, Options);
          false ->
              case skip_contents(Elt) of
                  false ->
  
negative.code:             end
      end.
  
  sanitize_element(Element, Stack, Options) ->
      Callback = proplists:get_value(element, Options, fun(E) -> E end),
      sanitize_element(Callback, Element, Stack, Options).
  
  sanitize_element(F, Element, _Stack, _Options) when is_function(F, 1) ->
      F(Element);
  sanitize_element(F, Element, _Stack, Options) when is_function(F, 2) ->
      F(Element, Options);
  sanitize_element(F, Element, Stack, Options) when is_function(F, 3) ->
      F(Element, Stack, Options);
  sanitize_element({M, F, A}, Element, Stack, _Options) ->
      erlang:apply(M, F, [Element, Stack|A]).
  
  
  %% @doc Flatten the sanitized html tree to a binary 
  