anchor.diff:    ENDMETHOD.                    "_add_htm
   
   ENDCLASS.                    "lcl_html_helper IMPLEMENTATION
  +
  +*----------------------------------------------------------------------*
  +*       CLASS lcl_html_toolbar DEFINITION
  +*----------------------------------------------------------------------*
  +CLASS lcl_html_toolbar DEFINITION FINAL.
  +  PUBLIC SECTION.
  +    METHODS add    IMPORTING  iv_txt TYPE string
  +                              iv_cmd TYPE string.
  +    METHODS render IMPORTING  iv_tag TYPE string DEFAULT 'span'
  +                              ib_right TYPE abap_bool OPTIONAL
  +                   RETURNING VALUE(ro_html) TYPE REF TO lcl_html_helper.
  +
  +  PRIVATE SECTION.
  +    TYPES:  BEGIN OF ty_item,
  +              txt TYPE string,
  +              cmd TYPE string,
  +            END OF ty_item.
  +    TYPES:  tt_items TYPE STANDARD TABLE OF ty_item.
  +
  +    DATA    mt_items TYPE tt_items.
  +
  +ENDCLASS. "lcl_html_toolbar DEFINITION
  +
  +*----------------------------------------------------------------------*
  +*       CLASS lcl_html_toolbar IMPLEMENTATION
  +*----------------------------------------------------------------------*
  +CLASS lcl_html_toolbar IMPLEMENTATION.
  +
  +  METHOD add.
  +    DATA ls_item TYPE ty_item.
  +
  +    ls_item-txt = iv_txt.
  +    ls_item-cmd = iv_cmd.
  +    APPEND ls_item TO mt_items.
  +  ENDMETHOD.
  +
  +  METHOD render.
  +    DATA lo_html  TYPE REF TO lcl_html_helper.
  +    DATA lv_class TYPE string.
  +    FIELD-SYMBOLS <item> TYPE ty_item.
  +
  +    CREATE OBJECT lo_html.
  +
  +    IF iv_tag IS INITIAL.
  +      RETURN.
  +    ENDIF.
  +
  +    lv_class = 'menu'.
  +    IF ib_right = abap_true.
  +      lv_class = lv_class && ' right'.
  +    ENDIF.
  +
  +    lo_html->add( |<{ iv_tag } class="{ lv_class }">| ).
  +
  +    LOOP AT mt_items ASSIGNING <item>.
  +      CLEAR lv_class.
  +      AT LAST.
  +        lv_class = ' class="menu_end"'.
  +      ENDAT.
  +
  +      lo_html->add( |<a{ lv_class } href="{ <item>-cmd }">{ <item>-txt }</a>| ).
  +
  +    ENDLOOP.
  +
  +    lo_html->add( |</{ iv_tag }>| ).
  +    ro_html = lo_html.
  +
  +  ENDMETHOD.
  +
  +ENDCLASS. "lcl_html_toolbar IMPLEMENTATION
  +
   
   CLASS lcl_log DEFINITION.
   
  
positive.code: 
    METHOD render_menu.
  
      DATA: lv_install TYPE string.
  
  
      IF needs_installation( ) = abap_true.
        lv_install = '<a href="sapevent:abapgit_installation">Install</a>' && gc_newline.
      ENDIF.
  
      CREATE OBJECT ro_html.
  
      ro_html->add( '<div id="header">' ).
      ro_html->add( '<table class="mixedbar logobar">' ).
  
negative.code:   METHOD render_toc.
  
      DATA: lo_repo  LIKE LINE OF it_list,
            lo_toolbar TYPE REF TO lcl_html_toolbar,
            lv_class TYPE string.
  
      CREATE OBJECT ro_html.
      CREATE OBJECT lo_toolbar.
  
      IF lines( it_list ) = 0.
        RETURN.
      ENDIF.
  
      LOOP AT it_list INTO lo_repo.
        lo_toolbar->add( iv_txt = lo_repo->get_name( ) iv_cmd = |#{ lo_repo->get_name( ) }| ).
      ENDLOOP.
  
      ro_html->add( '<div id="toc">' ) ##NO_TEXT.
      ro_html->add( lo_toolbar->render( ) ).
      ro_html->add( '</div>' ).
  
    ENDMETHOD.
  