export function renderGitHub(data, username) { if (!data) { const card = createErrorCard('GitHub', username, 'Profile data not available'); return card; } const card = createProfileCard('github', 'GitHub'); // Profile header and avatar card.querySelector('.user-info').innerHTML = `
${data.name || ''}
@${data.login || ''}
${data.profile_url}
${data.bio ? `
${data.bio}
` : ''} ${data.location ? `
Location: ${data.location}
` : ''} ${data.blog ? `
Website: ${data.blog}
` : ''} ${data.email ? `
Email: ${data.email}
` : ''} ${data.twitter ? `
Twitter: @${data.twitter}
` : ''}
Joined: ${data.created_at?.slice(0,10)}
`; const statsGrid = card.querySelector('.stats-grid'); statsGrid.innerHTML = `
${data.public_repos || 0}
Repositories
${data.public_gists || 0}
Gists
${data.followers || 0}
Followers
${data.following || 0}
Following
`; // Orgs if (data.orgs?.length) { const orgSection = document.createElement('div'); orgSection.innerHTML = '

Organizations

'; const tagsContainer = document.createElement('div'); tagsContainer.className = 'tags-container'; data.orgs.slice(0, 8).forEach(org => { tagsContainer.innerHTML += ` ${org.login} `; }); if (data.orgs.length > 8) { tagsContainer.innerHTML += `+${data.orgs.length - 8} more`; } orgSection.appendChild(tagsContainer); card.querySelector('.profile-body').appendChild(orgSection); } // Pinned repos if (data.pinned_repos?.length) { const pinnedSection = document.createElement('div'); pinnedSection.innerHTML = '

Pinned Repositories

'; const pinList = document.createElement('ul'); pinList.className = 'content-list'; data.pinned_repos.forEach(pr => { pinList.innerHTML += `
  • ${pr.repo} ${pr.description ? pr.description.substring(0,40) : ''}
  • `; }); pinnedSection.appendChild(pinList); card.querySelector('.profile-body').appendChild(pinnedSection); } // Top Repositories if (data.repos?.length) { const repoSection = document.createElement('div'); repoSection.innerHTML = '

    Top Repositories

    '; const reposList = document.createElement('ul'); reposList.className = 'content-list'; data.repos.forEach(repo => { reposList.innerHTML += `
  • ${repo.name} ★ ${repo.stargazers_count} ${repo.language ? `${repo.language}` : ''}
  • `; }); repoSection.appendChild(reposList); card.querySelector('.profile-body').appendChild(repoSection); } // Events/Activity if (data.events?.length) { const eventSection = document.createElement('div'); eventSection.innerHTML = '

    Recent Public Activity

    '; const eventList = document.createElement('ul'); eventList.className = 'content-list'; data.events.forEach(ev => { let evt = `${ev.type || 'Activity'} → `; evt += ev.repo?.name || ''; if (ev.created_at) evt += ' @ ' + ev.created_at.split('T')[0]; eventList.innerHTML += `
  • ${evt}
  • `; }); eventSection.appendChild(eventList); card.querySelector('.profile-body').appendChild(eventSection); } // Profile README preview if present if (data.user_readme) { const readmeSection = document.createElement('div'); readmeSection.innerHTML = `

    README Preview

    ${data.user_readme.substring(0, 1000)}${data.user_readme.length > 1000 ? '...' : ''}
    `; card.querySelector('.profile-body').appendChild(readmeSection); } // Set profile picture const profilePic = card.querySelector('.profile-pic'); profilePic.src = data.avatar_url || ''; profilePic.onerror = () => { profilePic.src = 'https://github.com/apple-touch-icon.png'; }; return card; } // Added missing functions directly to this file function createProfileCard(platform, title) { const card = document.createElement('div'); card.className = `profile-card ${platform}-card`; card.innerHTML = `
    ${title.charAt(0)}

    ${title} Profile

    Profile
    `; return card; } function createErrorCard(platform, username, message) { const card = document.createElement('div'); card.className = `profile-card ${platform}-card`; card.innerHTML = `
    ${platform.charAt(0).toUpperCase()}

    ${platform.charAt(0).toUpperCase() + platform.slice(1)} Profile

    ⚠️
    Error loading ${platform} profile for "${username}": ${message}
    `; return card; }