window.onload = function () { let script = document.createElement("script"); script.src = "https://cdnjs.cloudflare.com/ajax/libs/showdown/2.1.0/showdown.min.js"; document.body.appendChild(script); const sortOnKey = (key, desc) => { return (a, b) => { a = a[key]; b = b[key]; return desc ? b - a : a - b; } }; String.prototype.replaceAt = function (index, replacement) { return this.substr(0, index) + replacement + this.substr(index + replacement.length); } fetch("https://api.github.com/users/fraujulian/repos?per_page=999") .then(response => response.json()) .then(projects => { projects = projects.sort(sortOnKey("stargazers_count", true)); let projectsDiv = document.getElementById("github_projects"); projectsDiv.innerHTML = ""; projectsDiv.classList = ""; for (let i = 0; i < 16; i++) { let projectDiv = document.createElement("div"); projectDiv.classList = "card hoverable"; let project = projects[i]; if (project != undefined) { if (project.description == null) project.description = "This project has no description"; if (project.language == null) project.language = "No language stored!"; project.name = project.name.replaceAll('_', ' ').replaceAll('-', ' '); projectDiv.innerHTML = `
${project.description}