anchor.diff:      [{Pre,Attr,trim_first_and_last(Content,$\n)} | normalize_space(T)];
   normalize_space([{Block,Attr,Content}|T]) when ?IS_BLOCK(Block) ->
       [{Block,Attr,trim_first_and_last(trim_inline(Content),$ )} | normalize_space(T)];
  +normalize_space([B]) when is_binary(B) ->
  +    trim_first_and_last([B],$ );
   normalize_space([E|T]) ->
       [E|normalize_space(T)];
   normalize_space([]) ->
  
positive.code: render_docs(Headers, DocContents, MD, D = #config{}) ->
      init_ansi(D),
      try
          {Doc,_} = render_docs(DocContents,[],0,2,D),
          [sansi(bold),
           [io_lib:format("~n~ts",[Header]) || Header <- Headers],
           ransi(bold),
  
negative.code: render_element({h3,_,Content},State,Pos,_Ind,D) when Pos =< 2 ->
      trimnlnl(render_element({code,[],Content}, State, Pos, 2, D));
  
  render_element({Elem,_Attr,_Content} = E,State,Pos,Ind,D) when Pos > Ind, ?IS_BLOCK(Elem) ->
      {Docs,NewPos} = render_element(E,State,0,Ind,D),
      {["\n",Docs],NewPos};
  render_element({p,[{class,What}],Content},State,Pos,Ind,D) ->
  