Skip to content

Commit e7e2a39

Browse files
committed
feat: inject YouTube videos section into music.html
1 parent d2337ea commit e7e2a39

1 file changed

Lines changed: 93 additions & 2 deletions

File tree

music.html

Lines changed: 93 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,64 @@
3333
<!-- Style principal -->
3434
<link rel="stylesheet" href="assets/css/style.css">
3535
<script src="https://cdn.jsdelivr.net/npm/howler@2.2.3/dist/howler.core.min.js"></script>
36+
37+
<style>
38+
.youtube-section {
39+
margin: 2rem auto;
40+
max-width: 900px;
41+
padding: 0 1rem;
42+
}
43+
.youtube-section h3 {
44+
font-family: 'Russo One', sans-serif;
45+
color: var(--primary-color, #ff0000);
46+
font-size: 1.4rem;
47+
margin-bottom: 1.2rem;
48+
text-transform: uppercase;
49+
letter-spacing: 0.05em;
50+
display: flex;
51+
align-items: center;
52+
gap: 0.5rem;
53+
justify-content: center;
54+
}
55+
.youtube-grid {
56+
display: grid;
57+
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
58+
gap: 1.2rem;
59+
}
60+
.youtube-card {
61+
background: rgba(255,255,255,0.05);
62+
border: 1px solid rgba(255,255,255,0.1);
63+
border-radius: 10px;
64+
overflow: hidden;
65+
transition: transform 0.2s ease, box-shadow 0.2s ease;
66+
text-decoration: none;
67+
display: block;
68+
}
69+
.youtube-card:hover {
70+
transform: translateY(-4px);
71+
box-shadow: 0 8px 24px rgba(255,0,0,0.2);
72+
}
73+
.youtube-card img {
74+
width: 100%;
75+
aspect-ratio: 16/9;
76+
object-fit: cover;
77+
display: block;
78+
}
79+
.youtube-card-body {
80+
padding: 0.7rem 0.9rem;
81+
}
82+
.youtube-card-title {
83+
color: #fff;
84+
font-size: 0.9rem;
85+
font-weight: 600;
86+
line-height: 1.3;
87+
margin-bottom: 0.3rem;
88+
}
89+
.youtube-card-date {
90+
color: rgba(255,255,255,0.5);
91+
font-size: 0.75rem;
92+
}
93+
</style>
3694
</head>
3795
<body class="home-page">
3896

@@ -75,6 +133,18 @@ <h1 class="main-title">David KRK</h1>
75133
<div class="elfsight-app-0d876127-462b-4b8f-95a5-33ec1a5916f8" data-elfsight-app-lazy></div>
76134

77135
<!-- YOUTUBE-AUTO-START -->
136+
<section class="youtube-section">
137+
<h3><i class="fab fa-youtube" style="color:#ff0000;"></i> Dernières vidéos YouTube</h3>
138+
<div class="youtube-grid" id="youtube-grid">
139+
<!-- Les vidéos sont chargées dynamiquement depuis youtube-videos.json -->
140+
</div>
141+
<div style="margin-top:1.2rem;">
142+
<a href="https://www.youtube.com/@DavidKRKofficial" target="_blank" rel="noopener noreferrer"
143+
style="display:inline-flex;align-items:center;gap:0.5rem;background:#ff0000;color:#fff;padding:0.6rem 1.4rem;border-radius:6px;font-family:'Russo One',sans-serif;font-size:0.9rem;text-decoration:none;transition:background 0.2s;">
144+
<i class="fab fa-youtube"></i> Voir toutes les vidéos
145+
</a>
146+
</div>
147+
</section>
78148
<!-- YOUTUBE-AUTO-END -->
79149
</main>
80150

@@ -109,6 +179,28 @@ <h1 class="main-title">David KRK</h1>
109179

110180
<script src="assets/js/main.js"></script>
111181
<script>
182+
// Chargement dynamique des vidéos YouTube depuis youtube-videos.json
183+
fetch('assets/data/youtube-videos.json')
184+
.then(r => r.json())
185+
.then(videos => {
186+
const grid = document.getElementById('youtube-grid');
187+
if (!grid || !videos.length) return;
188+
grid.innerHTML = videos.map(v => `
189+
<a class="youtube-card" href="${v.url}" target="_blank" rel="noopener noreferrer">
190+
<img src="${v.thumbnail}" alt="${v.title}" loading="lazy" width="480" height="270">
191+
<div class="youtube-card-body">
192+
<div class="youtube-card-title">${v.title}</div>
193+
<div class="youtube-card-date">${v.published}</div>
194+
</div>
195+
</a>
196+
`).join('');
197+
})
198+
.catch(() => {
199+
const grid = document.getElementById('youtube-grid');
200+
if (grid) grid.innerHTML = '<p style="color:rgba(255,255,255,0.5);text-align:center;">Vidéos temporairement indisponibles.</p>';
201+
});
202+
203+
// Sélecteur de langue
112204
document.addEventListener('DOMContentLoaded', () => {
113205
const langBtns = document.querySelectorAll('.language-btn');
114206
const langContents = document.querySelectorAll('.lang-content');
@@ -131,8 +223,7 @@ <h1 class="main-title">David KRK</h1>
131223
switchLanguage(btn.dataset.lang);
132224
});
133225
});
134-
135226
});
136-
</script>
227+
</script>
137228
</body>
138229
</html>

0 commit comments

Comments
 (0)