$(function () { $('.dropdown-toggle').dropdown(); function setCodeMirrorTheme(theme) { if (gitlist.viewer === undefined) { return; } var actualTheme = theme.split('-')[1] if (window.gitlist.isDark(actualTheme)) { gitlist.viewer.setOption("theme", 'blackboard'); } else { gitlist.viewer.setOption("theme", 'default'); } } window.gitlist.setCodeMirrorTheme = setCodeMirrorTheme; if ($('#sourcecode').length) { var value = $('#sourcecode').text(); var mode = $('#sourcecode').attr('language'); var pre = $('#sourcecode').get(0); gitlist.viewer = CodeMirror(function(elt) { pre.parentNode.replaceChild(elt, pre); }, { value: value, lineNumbers: true, matchBrackets: true, lineWrapping: true, readOnly: true, mode: mode, }); var setCodeMirror = function() { if (gitlist.getThemeCookie !== undefined) { setCodeMirrorTheme(gitlist.getThemeCookie()) } else { setTimeout(function() { setCodeMirror() }, 250) } } setCodeMirror() } // blob/master var markdownRenderer = new marked.Renderer(); var kebabCase = require('lodash/kebabCase') markdownRenderer.heading = function (text, level, raw) { var ref = kebabCase(text).replace(/[^\x00-\xFF]/g, ""); var id = ref + '-parent'; var hover = ' onmouseenter="document.getElementById(\'' + ref + '\').style.display = \'inline\'" onmouseleave="document.getElementById(\'' + ref + '\').style.display = \'none\'" ' var element = '
' + text + ' #
'; return element } markdownRenderer.link = function(href, title, text) { var a; if (href.startsWith('https:/') || href.startsWith('http:/')) { a = '' + text + ''; } else { var start = gitlist.basepath + '/' + gitlist.repo + '/blob/' + gitlist.branch + '/'; if (!location.pathname.startsWith(start)) { href = start + href; } a = '' + text + ''; } return a; } markdownRenderer.image = function(href, title, text) { title = title || ''; text = text || ''; var resultText = title; if (text !== '') { if (title !== '') { resultText += ' - '; } resultText += text; } var result = '' + htmlEncode(resultText) + ''; return result; }; if ($('#md-content').length) { var html = marked($('#md-content').text(), { renderer: markdownRenderer }); $('#md-content').html(twemoji.parse(html, { folder: 'svg', ext: '.svg', })); global.gitlist.scrollHash(location) } var clonePopup = $('#clone-popup') var cloneButtonShow = $('#clone-button-show'); var cloneButtonHide = $('#clone-button-hide'); var cloneButtonSSH = $('#clone-button-ssh'); var cloneButtonHTTP = $('#clone-button-http'); var cloneInputSSH = $('#clone-input-ssh'); var cloneInputHTTP = $('#clone-input-http'); cloneButtonShow.click(function() { clonePopup.fadeIn(); }); cloneButtonHide.click(function() { clonePopup.fadeOut(); }); cloneButtonSSH.click(function() { if(cloneButtonSSH.hasClass('active')) return; cloneButtonSSH.addClass('active'); cloneInputSSH.show(); cloneButtonHTTP.removeClass('active'); cloneInputHTTP.hide(); }); cloneButtonHTTP.click(function() { if(cloneButtonHTTP.hasClass('active')) return; cloneButtonHTTP.addClass('active'); cloneInputHTTP.show(); cloneButtonSSH.removeClass('active'); cloneInputSSH.hide(); }); function paginate() { var $pager = $('.pager'); $pager.find('.next a').one('click', function (e) { e.preventDefault(); $.get(this.href, function (html) { $pager.after(html); $pager.remove(); paginate(); }); }); $pager.find('.previous').remove(); } paginate(); }); if ($('#repositories').length) { var listOptions = { valueNames: ['name'] }; var repoList = new List('repositories', listOptions); } if ($('#branchList').length) { var listBranchOptions = { valueNames: ['item'] }; var repoList = new List('branchList', listBranchOptions); } $('.search').click(function (e) { e.stopPropagation(); }); global.gitlist.scrollHash = function(element, event) { var url = new URL(element.href) var id = url.hash.substring(1) var elfind = document.getElementById(id + '-parent') if (elfind === null) { return true; } elfind.scrollIntoView({ behavior: 'smooth', block: "center", }) if (event !== undefined) { event.preventDefault() if(history.pushState) { var pushState = location.pathname + url.hash; history.pushState(null, null, pushState); } else { location.hash = url.hash; } } return false; } document.addEventListener('DOMContentLoaded', function(){ var es = document.getElementsByTagName('a') for(var i=0; i