@@ -17,22 +17,31 @@ async function loadDescription() {
1717 */
1818async function loadRepos ( ) {
1919 const container = document . querySelector ( '#carrusel-repos' ) ;
20+ const configsWeb = await loadConfigs ( ) ;
2021 try {
2122 const res = await fetch ( 'https://api.github.com/orgs/dev2forge/repos' ) ;
2223 const repos = await res . json ( ) ;
2324 repos . forEach ( ( repo ) => {
24- const card = document . createElement ( 'div' ) ;
25- card . className = 'flex flex-col justify-between items-center w-64 h-64 bg-gray-100 dark:bg-gray-800 p-4 rounded shadow hover:shadow-lg transition snap-start row-span-1' ;
26- card . innerHTML = `
25+ // Skip repositories that are not in the configsWeb list
26+ if ( ! configsWeb . ignoreRepos . includes ( repo . name ) ) {
27+ const card = document . createElement ( 'div' ) ;
28+ card . className = 'flex flex-col justify-between items-center w-64 h-64 bg-gray-100 dark:bg-gray-800 p-4 rounded shadow hover:shadow-lg transition snap-start row-span-1' ;
29+ card . innerHTML = `
2730 <h2 class="text-xl font-semibold text-center w-full mb-2">${ repo . name } </h2>
2831 <div class="flex-1 w-full overflow-y-auto mb-2 no-scrollbar">
2932 <p class="text-sm text-gray-600 dark:text-gray-300 text-center break-words">${ repo . description || 'No description' } </p>
3033 </div>
31- <div class="w-full flex justify-center mt-auto">
32- <a href="${ repo . html_url } " target="_blank" class="btn-repo-link inline-block text-center w-full">View Repo</a>
34+ <div class="w-full flex justify-center mt-auto gap-3">
35+ <a href="${ repo . html_url } " target="_blank" class="btn-repo-link flex items-center justify-center w-12 h-12 rounded-full bg-blue-100 dark:bg-blue-900 shadow hover:scale-110 hover:bg-blue-500 hover:text-white transition border border-blue-300 dark:border-blue-700 mr-0.5">
36+ <img width="24" height="24" src="https://cdn.jsdelivr.net/gh/tutosrive/images-projects-srm-trg@refs/heads/main/svg-icons-flags-cursor/icon/github-logo.svg" alt="GitHub">
37+ </a>
38+ <a href="${ repo . homepage } " target="_blank" class="btn-repo-link flex items-center justify-center w-12 h-12 rounded-full bg-blue-100 dark:bg-blue-900 shadow hover:scale-110 hover:bg-blue-500 hover:text-white transition border border-blue-300 dark:border-blue-700 ml-0.5">
39+ <img width="16" height="16" src="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/icons/box-arrow-up-right.svg" alt="Icon redirect">
40+ </a>
3341 </div>
3442 ` ;
35- container . appendChild ( card ) ;
43+ container . appendChild ( card ) ;
44+ }
3645 } ) ;
3746 } catch ( e ) {
3847 container . innerHTML = '<p class="text-red-500">Failed to load repositories.</p>' ;
@@ -57,3 +66,9 @@ async function loadFollowers() {
5766 container . appendChild ( img ) ;
5867 } ) ;
5968}
69+
70+ async function loadConfigs ( ) {
71+ const req = await fetch ( 'src/assets/json/configs.json' ) ;
72+ const data = await req . json ( ) ;
73+ return data ;
74+ }
0 commit comments