05d292b2 (kx 2023-03-24 03:51:10 +0300 1)
05d292b2 (kx 2023-03-24 03:51:10 +0300 2) function get_query_parameter( name, url = window.location.href )
05d292b2 (kx 2023-03-24 03:51:10 +0300 3) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 4) name = name.replace( /[\[\]]/g, '\\$&' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 5) var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
05d292b2 (kx 2023-03-24 03:51:10 +0300 6) if( !results ) return null;
05d292b2 (kx 2023-03-24 03:51:10 +0300 7) if( !results[2] ) return '';
05d292b2 (kx 2023-03-24 03:51:10 +0300 8) return decodeURIComponent( results[2].replace(/\+/g, ' ') );
05d292b2 (kx 2023-03-24 03:51:10 +0300 9) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 10)
05d292b2 (kx 2023-03-24 03:51:10 +0300 11) function removeParam( query_string, param ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 12) if( query_string !== "" )
05d292b2 (kx 2023-03-24 03:51:10 +0300 13) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 14) var query = "";
05d292b2 (kx 2023-03-24 03:51:10 +0300 15) var params = decodeURIComponent(query_string).split('&');
05d292b2 (kx 2023-03-24 03:51:10 +0300 16) var i, name;
05d292b2 (kx 2023-03-24 03:51:10 +0300 17) for( i = 0; i < params.length; ++i ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 18) name = params[i].split('=');
05d292b2 (kx 2023-03-24 03:51:10 +0300 19) if( name[0] !== param ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 20) query = query + name[0] + '=' + name[1] + '&';
05d292b2 (kx 2023-03-24 03:51:10 +0300 21) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 22) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 23) if( query !== "" ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 24) query = query.substring( 0, query.length - 1 );
05d292b2 (kx 2023-03-24 03:51:10 +0300 25) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 26) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 27) return query;
05d292b2 (kx 2023-03-24 03:51:10 +0300 28) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 29)
05d292b2 (kx 2023-03-24 03:51:10 +0300 30) function search() {
05d292b2 (kx 2023-03-24 03:51:10 +0300 31)
05d292b2 (kx 2023-03-24 03:51:10 +0300 32) var text = document.querySelector( '.search-form input' ).value;
05d292b2 (kx 2023-03-24 03:51:10 +0300 33)
05d292b2 (kx 2023-03-24 03:51:10 +0300 34) if( page_type === "repo" && text )
05d292b2 (kx 2023-03-24 03:51:10 +0300 35) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 36) var path = window.location.pathname;
05d292b2 (kx 2023-03-24 03:51:10 +0300 37) var query_string = window.location.search;
05d292b2 (kx 2023-03-24 03:51:10 +0300 38) var revision = encodeURIComponent( text );
05d292b2 (kx 2023-03-24 03:51:10 +0300 39)
05d292b2 (kx 2023-03-24 03:51:10 +0300 40) if( query_string ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 41) query_string = query_string.substring( 1, query_string.length );
05d292b2 (kx 2023-03-24 03:51:10 +0300 42) query_string = removeParam( query_string, "rev" );
05d292b2 (kx 2023-03-24 03:51:10 +0300 43) query_string = removeParam( query_string, "op" );
05d292b2 (kx 2023-03-24 03:51:10 +0300 44) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 45)
05d292b2 (kx 2023-03-24 03:51:10 +0300 46) revision = revision.toLowerCase();
05d292b2 (kx 2023-03-24 03:51:10 +0300 47) if( revision === "head" ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 48) revision = "0";
05d292b2 (kx 2023-03-24 03:51:10 +0300 49) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 50)
05d292b2 (kx 2023-03-24 03:51:10 +0300 51) document.querySelector( '.search-form input' ).value = "";
05d292b2 (kx 2023-03-24 03:51:10 +0300 52)
05d292b2 (kx 2023-03-24 03:51:10 +0300 53) window.location.pathname = path;
05d292b2 (kx 2023-03-24 03:51:10 +0300 54) if( query_string ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 55) window.location.search = "?rev=" + revision + "&" + query_string;
05d292b2 (kx 2023-03-24 03:51:10 +0300 56) } else {
05d292b2 (kx 2023-03-24 03:51:10 +0300 57) window.location.search = "?rev=" + revision;
05d292b2 (kx 2023-03-24 03:51:10 +0300 58) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 59) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 60) if( page_type === "repolist" && text )
05d292b2 (kx 2023-03-24 03:51:10 +0300 61) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 62) var path = window.location.pathname;
05d292b2 (kx 2023-03-24 03:51:10 +0300 63) var query_string = window.location.search;
05d292b2 (kx 2023-03-24 03:51:10 +0300 64) var repo_path = encodeURIComponent( text );
05d292b2 (kx 2023-03-24 03:51:10 +0300 65)
05d292b2 (kx 2023-03-24 03:51:10 +0300 66) if( query_string ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 67) query_string = query_string.substring( 1, query_string.length );
05d292b2 (kx 2023-03-24 03:51:10 +0300 68) query_string = removeParam( query_string, "search" );
05d292b2 (kx 2023-03-24 03:51:10 +0300 69) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 70)
05d292b2 (kx 2023-03-24 03:51:10 +0300 71) document.querySelector( '.search-form input' ).value = "";
05d292b2 (kx 2023-03-24 03:51:10 +0300 72)
05d292b2 (kx 2023-03-24 03:51:10 +0300 73) window.location.pathname = path;
05d292b2 (kx 2023-03-24 03:51:10 +0300 74) if( query_string ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 75) window.location.search = "?search=" + repo_path + "&" + query_string;
05d292b2 (kx 2023-03-24 03:51:10 +0300 76) } else {
05d292b2 (kx 2023-03-24 03:51:10 +0300 77) window.location.search = "?search=" + repo_path;
05d292b2 (kx 2023-03-24 03:51:10 +0300 78) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 79) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 80) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 81)
05d292b2 (kx 2023-03-24 03:51:10 +0300 82) function show_hide_direction() {
05d292b2 (kx 2023-03-24 03:51:10 +0300 83) var direction = document.querySelector( '.direction' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 84) var prev = document.querySelector( '.prev-direction' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 85) var next = document.querySelector( '.next-direction' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 86) var ofs = get_query_parameter( 'ofs' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 87)
05d292b2 (kx 2023-03-24 03:51:10 +0300 88) if( direction )
05d292b2 (kx 2023-03-24 03:51:10 +0300 89) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 90) if( num_of_repos < page_size ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 91) direction.style.display = 'none';
05d292b2 (kx 2023-03-24 03:51:10 +0300 92) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 93) else {
05d292b2 (kx 2023-03-24 03:51:10 +0300 94) direction.style.display = 'block';
05d292b2 (kx 2023-03-24 03:51:10 +0300 95)
05d292b2 (kx 2023-03-24 03:51:10 +0300 96) if( (num_of_repos - ofs) < page_size ) { next.style.display = 'none'; }
05d292b2 (kx 2023-03-24 03:51:10 +0300 97) else { next.style.display = 'block'; }
05d292b2 (kx 2023-03-24 03:51:10 +0300 98)
05d292b2 (kx 2023-03-24 03:51:10 +0300 99) if( ofs > 0 ) { prev.style.display = 'block'; }
05d292b2 (kx 2023-03-24 03:51:10 +0300 100) else { prev.style.display = 'none'; }
05d292b2 (kx 2023-03-24 03:51:10 +0300 101) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 102) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 103) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 104)
05d292b2 (kx 2023-03-24 03:51:10 +0300 105) /***************************************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 106) We dont want to use tooltips from any foreign engine.
05d292b2 (kx 2023-03-24 03:51:10 +0300 107) NOTE:
05d292b2 (kx 2023-03-24 03:51:10 +0300 108) All tooltips we attached to the '.pusher' element.
05d292b2 (kx 2023-03-24 03:51:10 +0300 109) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 110) function fade_out( element ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 111) /* постепенно исчезать */
05d292b2 (kx 2023-03-24 03:51:10 +0300 112) var op = 1; /* initial opacity */
05d292b2 (kx 2023-03-24 03:51:10 +0300 113) var timer = setInterval( function() {
05d292b2 (kx 2023-03-24 03:51:10 +0300 114) if( op <= 0.1 ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 115) clearInterval( timer );
05d292b2 (kx 2023-03-24 03:51:10 +0300 116) element.style.display = 'none';
05d292b2 (kx 2023-03-24 03:51:10 +0300 117) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 118) element.style.opacity = op;
05d292b2 (kx 2023-03-24 03:51:10 +0300 119) element.style.filter = 'alpha(opacity=' + op * 100 + ")";
05d292b2 (kx 2023-03-24 03:51:10 +0300 120) op -= op * 0.1;
05d292b2 (kx 2023-03-24 03:51:10 +0300 121) }, 10);
05d292b2 (kx 2023-03-24 03:51:10 +0300 122) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 123)
05d292b2 (kx 2023-03-24 03:51:10 +0300 124) function fade_in( element ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 125) /* постепенно появляться */
05d292b2 (kx 2023-03-24 03:51:10 +0300 126) var op = 0.1; /* initial opacity */
05d292b2 (kx 2023-03-24 03:51:10 +0300 127) element.style.display = 'block';
05d292b2 (kx 2023-03-24 03:51:10 +0300 128) var timer = setInterval( function() {
05d292b2 (kx 2023-03-24 03:51:10 +0300 129) if( op >= 1 ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 130) clearInterval( timer );
05d292b2 (kx 2023-03-24 03:51:10 +0300 131) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 132) element.style.opacity = op;
05d292b2 (kx 2023-03-24 03:51:10 +0300 133) element.style.filter = 'alpha(opacity=' + op * 100 + ")";
05d292b2 (kx 2023-03-24 03:51:10 +0300 134) op += op * 0.1;
05d292b2 (kx 2023-03-24 03:51:10 +0300 135) }, 10);
05d292b2 (kx 2023-03-24 03:51:10 +0300 136) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 137)
05d292b2 (kx 2023-03-24 03:51:10 +0300 138) function simple_tooltip( target_items, name ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 139) var pusher = document.querySelector( '.pusher' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 140) var items = document.querySelectorAll( target_items );
05d292b2 (kx 2023-03-24 03:51:10 +0300 141)
05d292b2 (kx 2023-03-24 03:51:10 +0300 142) items.forEach( function( item, i, array ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 143) var html = "<div class='" + name +
05d292b2 (kx 2023-03-24 03:51:10 +0300 144) "' id='" + name + "-" + i +
05d292b2 (kx 2023-03-24 03:51:10 +0300 145) "'><p>" + item.getAttribute('title') +
05d292b2 (kx 2023-03-24 03:51:10 +0300 146) "</p></div>";
05d292b2 (kx 2023-03-24 03:51:10 +0300 147) pusher.insertAdjacentHTML( 'beforeend', html );
05d292b2 (kx 2023-03-24 03:51:10 +0300 148)
05d292b2 (kx 2023-03-24 03:51:10 +0300 149) var tooltip = document.querySelector( "#" + name + "-" + i );
05d292b2 (kx 2023-03-24 03:51:10 +0300 150)
05d292b2 (kx 2023-03-24 03:51:10 +0300 151) item.removeAttribute( 'title' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 152) item.addEventListener( "mouseover", function( event ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 153) fade_in( tooltip );
05d292b2 (kx 2023-03-24 03:51:10 +0300 154) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 155) item.addEventListener( "mousemove", function( kmouse ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 156) /***********************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 157) c - client is a browser window;
05d292b2 (kx 2023-03-24 03:51:10 +0300 158) o - offset from page (document) coordinate.
05d292b2 (kx 2023-03-24 03:51:10 +0300 159) t - tooltip;
05d292b2 (kx 2023-03-24 03:51:10 +0300 160) ***********************************************/
05d292b2 (kx 2023-03-24 03:51:10 +0300 161) var cW = window.innerWidth;
05d292b2 (kx 2023-03-24 03:51:10 +0300 162) var cH = window.innerHeight;
05d292b2 (kx 2023-03-24 03:51:10 +0300 163) var cX = kmouse.clientX;
05d292b2 (kx 2023-03-24 03:51:10 +0300 164) var cY = kmouse.clientY;
05d292b2 (kx 2023-03-24 03:51:10 +0300 165) var tW = tooltip.offsetWidth;
05d292b2 (kx 2023-03-24 03:51:10 +0300 166) var tH = tooltip.offsetHeight;
05d292b2 (kx 2023-03-24 03:51:10 +0300 167) var oX;
05d292b2 (kx 2023-03-24 03:51:10 +0300 168) var oY;
05d292b2 (kx 2023-03-24 03:51:10 +0300 169) if( ( cW - cX ) < ( tW + 15) ) { oX = - 15 - tW; } else { oX = 15; }
05d292b2 (kx 2023-03-24 03:51:10 +0300 170) if( ( cH - cY ) < ( tH + 15) ) { oY = - 15 - tH; } else { oY = 15; }
05d292b2 (kx 2023-03-24 03:51:10 +0300 171) tooltip.style.left = kmouse.pageX + oX + 'px';
05d292b2 (kx 2023-03-24 03:51:10 +0300 172) tooltip.style.top = kmouse.pageY + oY - pusher.offsetTop + 'px';
05d292b2 (kx 2023-03-24 03:51:10 +0300 173) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 174) item.addEventListener( "mouseout", function( event ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 175) fade_out( tooltip );
05d292b2 (kx 2023-03-24 03:51:10 +0300 176) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 177) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 178) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 179)
05d292b2 (kx 2023-03-24 03:51:10 +0300 180) /*******************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 181) Truncate descriptions or commit messages:
05d292b2 (kx 2023-03-24 03:51:10 +0300 182) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 183) function trunc(el) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 184) if( el.classList.contains('trunc') )
05d292b2 (kx 2023-03-24 03:51:10 +0300 185) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 186) el.classList.remove('trunc');
05d292b2 (kx 2023-03-24 03:51:10 +0300 187) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 188) else
05d292b2 (kx 2023-03-24 03:51:10 +0300 189) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 190) el.classList.add('trunc');
05d292b2 (kx 2023-03-24 03:51:10 +0300 191) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 192) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 193)
05d292b2 (kx 2023-03-24 03:51:10 +0300 194) /*****************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 195) Show/Hide right popup menu:
05d292b2 (kx 2023-03-24 03:51:10 +0300 196) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 197) function show_sidebar(event) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 198) var sidebar = document.querySelector('.cgit-popup-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 199) sidebar.classList.add("visible");
05d292b2 (kx 2023-03-24 03:51:10 +0300 200)
05d292b2 (kx 2023-03-24 03:51:10 +0300 201) /* change icon bars->times */
05d292b2 (kx 2023-03-24 03:51:10 +0300 202) var icon = document.querySelector('.cgit-main-menu-bars .las');
05d292b2 (kx 2023-03-24 03:51:10 +0300 203) icon.classList.remove("la-bars");
05d292b2 (kx 2023-03-24 03:51:10 +0300 204) icon.classList.add("la-times");
05d292b2 (kx 2023-03-24 03:51:10 +0300 205)
05d292b2 (kx 2023-03-24 03:51:10 +0300 206) var sb = document.querySelector('.cgit-main-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 207) sb.onclick = hide_sidebar;
05d292b2 (kx 2023-03-24 03:51:10 +0300 208)
05d292b2 (kx 2023-03-24 03:51:10 +0300 209) if( !event )
05d292b2 (kx 2023-03-24 03:51:10 +0300 210) event = window.event;
05d292b2 (kx 2023-03-24 03:51:10 +0300 211) event.stopPropagation();
05d292b2 (kx 2023-03-24 03:51:10 +0300 212) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 213)
05d292b2 (kx 2023-03-24 03:51:10 +0300 214) function hide_sidebar(event) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 215) var sidebar = document.querySelector('.cgit-popup-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 216) sidebar.classList.remove("visible");
05d292b2 (kx 2023-03-24 03:51:10 +0300 217)
05d292b2 (kx 2023-03-24 03:51:10 +0300 218) /* change icon times->bars */
05d292b2 (kx 2023-03-24 03:51:10 +0300 219) var icon = document.querySelector('.cgit-main-menu-bars .las');
05d292b2 (kx 2023-03-24 03:51:10 +0300 220) icon.classList.remove("la-times");
05d292b2 (kx 2023-03-24 03:51:10 +0300 221) icon.classList.add("la-bars");
05d292b2 (kx 2023-03-24 03:51:10 +0300 222)
05d292b2 (kx 2023-03-24 03:51:10 +0300 223) var sb = document.querySelector('.cgit-main-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 224) sb.onclick = show_sidebar;
05d292b2 (kx 2023-03-24 03:51:10 +0300 225)
05d292b2 (kx 2023-03-24 03:51:10 +0300 226) if( !event )
05d292b2 (kx 2023-03-24 03:51:10 +0300 227) event = window.event;
05d292b2 (kx 2023-03-24 03:51:10 +0300 228) event.stopPropagation();
05d292b2 (kx 2023-03-24 03:51:10 +0300 229) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 230)
05d292b2 (kx 2023-03-24 03:51:10 +0300 231) /********************
05d292b2 (kx 2023-03-24 03:51:10 +0300 232) on Document Ready:
05d292b2 (kx 2023-03-24 03:51:10 +0300 233) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 234) document.addEventListener('DOMContentLoaded', function() {
05d292b2 (kx 2023-03-24 03:51:10 +0300 235)
05d292b2 (kx 2023-03-24 03:51:10 +0300 236) /* initialy show main popup menu on click */
05d292b2 (kx 2023-03-24 03:51:10 +0300 237) var sb = document.querySelector('.cgit-main-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 238) sb.onclick = show_sidebar;
05d292b2 (kx 2023-03-24 03:51:10 +0300 239)
05d292b2 (kx 2023-03-24 03:51:10 +0300 240) var items = document.querySelectorAll('.cgit-popup-menu-bars > .item');
05d292b2 (kx 2023-03-24 03:51:10 +0300 241) items.forEach( function(item) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 242) /* each item should hide main popup menu */
05d292b2 (kx 2023-03-24 03:51:10 +0300 243) item.onclick = hide_sidebar;
05d292b2 (kx 2023-03-24 03:51:10 +0300 244) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 245)
05d292b2 (kx 2023-03-24 03:51:10 +0300 246) window.addEventListener('resize', function(event) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 247) var width = window.innerWidth;
05d292b2 (kx 2023-03-24 03:51:10 +0300 248) if( width > 768 ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 249) /* change icon times->bars */
05d292b2 (kx 2023-03-24 03:51:10 +0300 250) var icon = document.querySelector('.cgit-main-menu-bars .las');
05d292b2 (kx 2023-03-24 03:51:10 +0300 251) icon.classList.remove("la-times");
05d292b2 (kx 2023-03-24 03:51:10 +0300 252) icon.classList.add("la-bars");
05d292b2 (kx 2023-03-24 03:51:10 +0300 253)
05d292b2 (kx 2023-03-24 03:51:10 +0300 254) /* hide main popup menu */
05d292b2 (kx 2023-03-24 03:51:10 +0300 255) var sidebar = document.querySelector('.cgit-popup-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 256) sidebar.classList.remove("visible");
05d292b2 (kx 2023-03-24 03:51:10 +0300 257) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 258) else {
05d292b2 (kx 2023-03-24 03:51:10 +0300 259) /* show main popup menu on click after resize */
05d292b2 (kx 2023-03-24 03:51:10 +0300 260) var sb = document.querySelector('.cgit-main-menu-bars');
05d292b2 (kx 2023-03-24 03:51:10 +0300 261) sb.onclick = show_sidebar;
05d292b2 (kx 2023-03-24 03:51:10 +0300 262) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 263) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 264)
05d292b2 (kx 2023-03-24 03:51:10 +0300 265)
05d292b2 (kx 2023-03-24 03:51:10 +0300 266) /*************************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 267) Skip line numbering in the Markdown content:
05d292b2 (kx 2023-03-24 03:51:10 +0300 268) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 269) var mdcode = document.querySelectorAll('.markdown-content code');
05d292b2 (kx 2023-03-24 03:51:10 +0300 270) mdcode.forEach( function( block ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 271) block.classList.add('nohljsln');
05d292b2 (kx 2023-03-24 03:51:10 +0300 272) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 273)
05d292b2 (kx 2023-03-24 03:51:10 +0300 274) /*************************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 275) Skip line numbering in the Blame content:
05d292b2 (kx 2023-03-24 03:51:10 +0300 276) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 277) var blame = document.querySelectorAll('.blame code');
05d292b2 (kx 2023-03-24 03:51:10 +0300 278) blame.forEach( function( block ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 279) block.classList.add('nohljsln');
05d292b2 (kx 2023-03-24 03:51:10 +0300 280) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 281)
05d292b2 (kx 2023-03-24 03:51:10 +0300 282) /*************************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 283) Initialize highlight.js with hljs line numbers:
05d292b2 (kx 2023-03-24 03:51:10 +0300 284) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 285) hljs.configure({
05d292b2 (kx 2023-03-24 03:51:10 +0300 286) useBR: false,
05d292b2 (kx 2023-03-24 03:51:10 +0300 287) /* languages: 'Makefile Bash C Perl',*/
05d292b2 (kx 2023-03-24 03:51:10 +0300 288) tabReplace: '<span class="tab"><------></span>'
05d292b2 (kx 2023-03-24 03:51:10 +0300 289) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 290)
05d292b2 (kx 2023-03-24 03:51:10 +0300 291) var preformated = document.querySelectorAll('pre code');
05d292b2 (kx 2023-03-24 03:51:10 +0300 292) preformated.forEach( function( block ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 293) hljs.highlightBlock( block ); /* init hljs */
05d292b2 (kx 2023-03-24 03:51:10 +0300 294) if( false === block.classList.contains('nohljsln') )
05d292b2 (kx 2023-03-24 03:51:10 +0300 295) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 296) hljs.lineNumbersBlock( block, { /* init hljs line numbers with options: */
05d292b2 (kx 2023-03-24 03:51:10 +0300 297) startFrom: 0,
05d292b2 (kx 2023-03-24 03:51:10 +0300 298) singleLine: false
05d292b2 (kx 2023-03-24 03:51:10 +0300 299) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 300) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 301) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 302)
05d292b2 (kx 2023-03-24 03:51:10 +0300 303)
05d292b2 (kx 2023-03-24 03:51:10 +0300 304) /***************************************************************
05d292b2 (kx 2023-03-24 03:51:10 +0300 305) Pseudo paragraphs inserted before headers to skip the stiky
05d292b2 (kx 2023-03-24 03:51:10 +0300 306) Main Menu Bar height when we going to anchor in a Markdown
05d292b2 (kx 2023-03-24 03:51:10 +0300 307) document.
05d292b2 (kx 2023-03-24 03:51:10 +0300 308) */
05d292b2 (kx 2023-03-24 03:51:10 +0300 309) var mdheaders = document.querySelectorAll('.markdown-content h1,h2,h3,h4,h5,h6');
05d292b2 (kx 2023-03-24 03:51:10 +0300 310) mdheaders.forEach( function( header ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 311) var content = header.textContent;
05d292b2 (kx 2023-03-24 03:51:10 +0300 312) var id = content.toLowerCase().replaceAll( ' ', '-' ).replaceAll( ':', '' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 313)
05d292b2 (kx 2023-03-24 03:51:10 +0300 314) var ph = document.createElement( 'p' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 315) ph.setAttribute( 'class', 'headers-anchor' )
05d292b2 (kx 2023-03-24 03:51:10 +0300 316) ph.setAttribute( 'id', id );
05d292b2 (kx 2023-03-24 03:51:10 +0300 317) header.parentNode.insertBefore( ph, header );
05d292b2 (kx 2023-03-24 03:51:10 +0300 318) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 319)
05d292b2 (kx 2023-03-24 03:51:10 +0300 320) var input = document.querySelector( '.search-form input' );
05d292b2 (kx 2023-03-24 03:51:10 +0300 321) input.addEventListener( "keyup", function( event ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 322) if( event.key === "Enter" ) {
05d292b2 (kx 2023-03-24 03:51:10 +0300 323) search();
05d292b2 (kx 2023-03-24 03:51:10 +0300 324) }
05d292b2 (kx 2023-03-24 03:51:10 +0300 325) });
05d292b2 (kx 2023-03-24 03:51:10 +0300 326)
05d292b2 (kx 2023-03-24 03:51:10 +0300 327) simple_tooltip( "[title]", "tooltip" );
05d292b2 (kx 2023-03-24 03:51:10 +0300 328) show_hide_direction();
05d292b2 (kx 2023-03-24 03:51:10 +0300 329) });