Sloučení testu a webu

This commit is contained in:
2026-05-14 20:18:08 +02:00
parent 154d6bffbc
commit 79ddfd4f3d
14 changed files with 0 additions and 4237 deletions
-9
View File
@@ -1,9 +0,0 @@
MIT License
Copyright (c) 2025 Kankys
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-8
View File
@@ -1,8 +0,0 @@
# 💿 Každý den jedno album. 🎸 Zažíj numetal a grunge každý den.
## 💪 Zvládneš tuto výzvu v roce 2026?
## 🤟 Ukaž že na to máš .
Odkaz na [výzvu](https://music.lukan.cz)
Do konce roku jedeme v testovacím režimu, od 1.1.2026 začínáme na ostro.
-217
View File
@@ -1,217 +0,0 @@
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>O projektu a další žvásty</title>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://music.lukan.cz/" />
<meta property="og:title" content="Hudební Výzva 2026: Grunge & Nu-Metal" />
<meta
property="og:description"
content="Každý den jedno zásadní album. Zvládneš to se mnou? 365 dní, 365 desek."
/>
<meta
property="og:image"
content="https://music.lukan.cz/img/vyzva-EDIT.jpg"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Hudební Výzva 2026: Grunge & Nu-Metal"
/>
<meta
name="twitter:description"
content="Každý den jedno zásadní album. Přidej se!"
/>
<meta
name="twitter:image"
content="https://music.lukan.cz/img/vyzva-EDIT.jpg"
/>
<meta
name="Hudební kalendář"
content="Každý den jedno album. Zažíj numetal a grunge každý den."
/>
<link rel="stylesheet" href="styleabout.css" />
<link rel="shortcut icon" href="img/electric-guitar_12494348.png" />
<link rel="stylesheet" href="style.css" />
<style>
/* Specifické styly pro textovou stránku */
.about-container {
max-width: 800px;
margin: 0 auto;
text-align: left;
background: white;
padding: 40px;
border-radius: 10px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
line-height: 1.6;
}
.about-container h1 {
text-align: center;
text-transform: uppercase;
color: #d32f2f; /* Trochu agresivní červená */
font-size: 2.5em;
margin-bottom: 10px;
}
.subtitle {
text-align: center;
color: #666;
font-style: italic;
margin-bottom: 40px;
font-size: 1.2em;
}
.about-section {
margin-bottom: 30px;
border-bottom: 1px solid #eee;
padding-bottom: 20px;
}
.about-section:last-child {
border-bottom: none;
}
h3 {
color: #222;
font-weight: 900; /* Extra tučné */
}
.back-btn {
display: block;
width: fit-content;
margin: 40px auto 0;
text-align: center;
}
footer {
text-align: center;
}
</style>
</head>
<body>
<div class="about-container">
<h1>🎸 Zažij numetal a grunge každý den, po celý rok. 💿</h1>
<p class="subtitle">
<strong
>💿 Každý den jedno album. 💪 Zvládneš tuto výzvu v roce 2026? 🤟 Ukaž
že na to máš.</strong
>
</p>
<div class="about-section">
<h3>O projektu</h3>
<p>
Všimli jste si, jak nás algoritmy Spotify a dalších hudebních stream
služeb neustále točí v kruhu? Nabízejí nám pořád to samé, co už známe.
Řekl jsem si to není pro mne. Chtěl jsem se vrátit k poslechu od
první do poslední skladby. A tak vznikl můj projekt: Hudební výzva
2026.
</p>
<br />
<p>
Každý den jedno album. To nejšpinavější a nejupřímnější, co hudba za
posledních 30 let nabídla: Grunge a Nu-Metal.
</p>
<p>
Mnoho lidí tyto dva žánry odděluje. Grunge je pro ně "ta stará hudba v
kostkovaných košilích" a Nu-Metal jsou "ti týpci v kšiltovkách a
širokých kalhotách". Ale když se zaposloucháte pozorně, zjistíte, že
jsou to pokrevní bratři.
</p>
<br />
<p>
Když Seattle zhasnul světla Grunge (Nirvana, Soundgarden, Pearl Jam)
na začátku 90. let smetl nablýskaný rock. Byla to hudba deště, deprese
a reality. Žádná póza, jen syrová emoce a kytary, které zněly jako by
je někdo tahal bahnem.
</p>
<p>
Jenže v polovině 90. let grunge s smrtí Kurta Cobaina a rozpadem scény
utichl. Vzniklo ticho. A v tom tichu se začalo rodit něco nového,
agresivnějšího.
</p>
<br />
<p>
Nástup Nu-Metalu: Vzteklý mladší brácha Zatímco grunge byl o smutku a
apatii, Nu-Metal (Korn, Linkin Park, Limp Bizkit, Slipknot) byl o
čistém vzteku. Vzali ty podladěné, těžké kytary z grunge, ale místo
pomalého tempa přidali rytmiku hip-hopu a elektroniku.
</p>
<p>
Kytarista Alice in Chains Jerry Cantrell nebo soundgardenovský Kim
Thayil položili základy pro zvuk, který později kapely jako Korn
dotáhly do extrému sedmistrunnými kytarami.
</p>
<br />
<p>
Ta energie je nenahraditelná. V dnešní době vyžehleného popu chybí ta
lidská nedokonalost a dravost.
</p>
<br />
<p>
Vytvořil jsem jednoduchou webovou aplikaci, která mi (a teď i vám)
každý den servíruje jedno zásadní album z této éry. Někdy je to
depresivní grungeová balada, jindy agresivní nu-metalová smršť.
</p>
<br />
<p>
Zvu vás, abyste do toho šli se mnou. Nemusíte hledat, co si pustit.
Stačí otevřít aplikaci a nechat se vést.
</p>
<br />
<p>
(PS: Aplikaci jsem si naprogramoval sám, tak buďte shovívaví, jde
hlavně o tu hudbu! 🤘 Budu velmi rád za sdílení 🙏)
</p>
</div>
<div class="back-btn">
<a href="index.html" class="btn-main" style="text-decoration: none"
>🎸 Zpět na hudbu</a
>
</div>
<div class="footer-section>">
<footer>
<p style="padding-top: 30px;">Líbí se ti výběr? Sleduj mě:</p>
<div class="socials">
<a
href="https://bsky.app/profile/kankys.bsky.social"
target="_blank" class="links"
>Bluesky</a
>
<br />
<a href="https://codeberg.org/Kankys" target="_blank" class="links">Codeberg</a>
<br />
<a
href="https://lukaskanka.cz/index/about/index.html"
target="_blank" class="links"
>Pokud chčeš podpořit tento projekt veškeré informace najdeš
zde.</a
>
<p class="hastag">
#GrungeMetalRok #HudebniVyzva #NuMetal #AlbumDne #TipNaHudbu
#DnesPosloucham #Tidal #Spotify #KazdyDenJednoAlbum
</p>
</div>
<p class="copyright">&copy; 2025 - 2026 Tvůj Hudební Kurátor Kankys</p>
<p style="font-size: 0.8em; margin-top: 10px">
<a href="gdpr.html" class="links"
>Ochrana soukromí a jiné žvásty (GDPR)</a
>
</p>
<section class="photo">
<img
id="vyzva"
class="zoom"
src="./img/vyzva-EDIT.jpg"
alt="Výzva"
/>
</section>
<a href="https://www.facebook.com/groups/1802260010492466" target="_blank" style="color: rgb(88, 88, 227);"><h3>FACEBOOK</h3></a>
</footer>
</div>
</div>
<script src="scriptabout.js"></script>
</body>
</html>
-96
View File
@@ -1,96 +0,0 @@
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GDPR | Nikoho nezajímáš</title>
<link rel="stylesheet" href="style.css">
<style>
/* Specifické styly pro textovou stránku */
.gdpr-container {
max-width: 800px;
margin: 0 auto;
text-align: left;
background: white;
padding: 40px;
border-radius: 10px;
box-shadow: 0 4px 15px rgba(0,0,0,0.1);
line-height: 1.6;
}
.gdpr-container h1 {
text-align: center;
text-transform: uppercase;
color: #d32f2f; /* Trochu agresivní červená */
font-size: 2.5em;
margin-bottom: 10px;
}
.subtitle {
text-align: center;
color: #666;
font-style: italic;
margin-bottom: 40px;
font-size: 1.2em;
}
.gdpr-section {
margin-bottom: 30px;
border-bottom: 1px solid #eee;
padding-bottom: 20px;
}
.gdpr-section:last-child {
border-bottom: none;
}
h3 {
color: #222;
font-weight: 900; /* Extra tučné */
}
.back-btn {
display: block;
width: fit-content;
margin: 40px auto 0;
text-align: center;
}
</style>
</head>
<body>
<div class="gdpr-container">
<h1>GDPR & Soukromí</h1>
<p class="subtitle">Aneb: "We don't care about your data, we care about the music."</p>
<div class="gdpr-section">
<h3>1. Kdo jsem?</h3>
<p>Jsem Lukáš. Mám rád hudbu, kódování a klid. Nejsem korporát, nemám právní oddělení a nemám zájem tě špehovat. Mark Zuckerberg o tobě ví všechno, já nevím nic. A tak to zůstane.</p>
</div>
<div class="gdpr-section">
<h3>2. Sbírám Cookies?</h3>
<p><strong>Ne.</strong> Jediné cookies, které mě zajímají, jsou ty čokoládové, co jsem snědl, když jsem tuhle stránku programoval ve tři ráno. Limp Bizkit sice zpívali "Do it all for the Nookie", ale nedělám to pro Cookie.</p>
<p>Tato stránka nepoužívá Google Analytics, Facebook Pixel, ani žádné jiné šmírovací nástroje. </p>
</div>
<div class="gdpr-section">
<h3>3. Co o tobě vím?</h3>
<p>Vlastně nic. Tato aplikace běží ve tvém prohlížeči. </p>
<p><em>Technická vsuvka pro rýpaly:</em> Web běží na běžném hostingu (Lukan.cz). Hostingové servery si ze zákona a z bezpečnostních důvodů mohou ukládat do logů tvoji IP adresu, aby věděly, kam tu stránku poslat. Já ty logy nečtu. Je v nich nuda.</p>
</div>
<div class="gdpr-section">
<h3>4. Spotify, Tidal a ti druzí</h3>
<p>Na webu jsou tlačítka, která vedou na Spotify, Tidal. Jakmile na ně klikneš a odejdeš z mého webu, jsi v jejich teritoriu. </p>
<p>Oni už data sbírají. Vědí, že tajně posloucháš Britney Spears, i když tvrdíš, že jsi drsňák. To už je mezi tebou a jimi. Já za to nemůžu.</p>
</div>
<div class="gdpr-section">
<h3>5. Kontakt</h3>
<p>Pokud máš pocit, že jsem narušil tvou auru nebo máš dotaz:</p>
<p>📧 Napiš mi. <a href="https://lukaskanka.cz/index/about/index.html" target="_blank" class="links">Kontakt</a> najdeš na mém hlavním <a href="https://lukaskanka.cz/index/about/index.html" target="_blank" class="links">webu</a>. Nebo na <a href="https://bsky.app/profile/kankys.bsky.social" target="_blank" class="links">Bluesky</a>. Nebo si prostě pusť Nirvanu a neřeš to.</p>
</div>
<div class="back-btn">
<a href="index.html" class="btn-main" style="text-decoration: none;">🎸 Zpět na hudbu</a>
</div>
</div>
</body>
</html>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 KiB

-68
View File
@@ -1,68 +0,0 @@
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8" />
<title>Zažij numetal a grunge každý den, po celý rok.</title>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://music.lukan.cz/" />
<meta property="og:title" content="Hudební Výzva 2026: Grunge & Nu-Metal" />
<meta
property="og:description"
content="Každý den jedno zásadní album. Zvládneš to se mnou? 365 dní, 365 desek."
/>
<meta
property="og:image"
content="https://music.lukan.cz/img/vyzva-EDIT.jpg"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta
name="twitter:title"
content="Hudební Výzva 2026: Grunge & Nu-Metal"
/>
<meta
name="twitter:description"
content="Každý den jedno zásadní album. Přidej se!"
/>
<meta
name="twitter:image"
content="https://music.lukan.cz/img/vyzva-EDIT.jpg"
/>
<meta
name="Hudební kalendář"
content="Každý den jedno album. Zažíj numetal a grunge každý den."
/>
<link rel="stylesheet" href="style.css" />
<link rel="shortcut icon" href="img/electric-guitar_12494348.png" />
<script defer src="https://analytics.oscloud.cz/script.js" data-website-id="b3fabb08-c07e-4436-93d8-5e4f2524e719"></script>
</head>
<body>
<h1>🎸 Zažij numetal a grunge každý den, po celý rok. 💿</h1>
<p>
<strong
>💿 Každý den jedno album. 💪 Zvládneš tuto výzvu v roce 2026? 🤟 Ukaž
že na to máš.</strong
>
</p>
<div id="zobrazeni-alba"></div>
<div style="margin-top: 30px; margin-bottom: 20px">
<button id="btn-archiv" class="btn-main">
📂 Zobrazit předchozí alba
</button>
</div>
<div id="archiv-container" class="archiv-grid"></div>
<div style="margin-top: 30px; margin-bottom: 20px">
<button id="btn-footer" class="btn-footer"><br/>
<a href="gdpr.html" class="link-footer"
>Ochrana soukromí a jiné žvásty (GDPR)
<p class="copyright">&copy; 2025 - 2026 Tvůj Hudební Kurátor Kankys</p></a
>
</button>
</div>
<section class="photo">
<img id="vyzva" class="zoom" src="./img/vyzva-EDIT.jpg" alt="Výzva" />
</section>
<script src="musicData.js"></script>
<script src="script.js"></script>
</body>
</html>
-3557
View File
File diff suppressed because it is too large Load Diff
-104
View File
@@ -1,104 +0,0 @@
// --- 2. ZJIŠTĚNÍ DNEŠNÍHO DATA ---
// objekt s aktuálním časem
const datum = new Date();
// rok, měsíc a den podle LOKÁLNÍHO času počítače
const rok = datum.getFullYear();
// Leden je v JS 0, proto přičíst 1.
// .padStart(2, '0') zajistí, že před jednociferné číslo se dá nula (např. "05")
const mesic = String(datum.getMonth() + 1).padStart(2, '0');
const den = String(datum.getDate()).padStart(2, '0');
// formát "RRRR-MM-DD"
const dnes = `${rok}-${mesic}-${den}`;
// výpis do konzole
// console.log("Opravené datum (lokální):", dnes);
// Pro testování:
// const dnes = "2026-07-25";
console.log("Dnes je:", dnes);
// --- 3. HLEDÁNÍ V SEZNAMU ---
// Funkce .find() projde pole 'kalendarAlb' a hledá shodu data
const dnesniAlbum = kalendarAlb.find(album => album.datum === dnes);
// --- 4. ZOBRAZENÍ NA STRÁNCE ---
const vystup = document.getElementById('zobrazeni-alba');
if (dnesniAlbum) {
// Dnešní album
vystup.innerHTML = `
<div class="album-card">
<div class="datum">🗓️ ${dnesniAlbum.datum}</div>
<img src="${dnesniAlbum.img}" alt="Obal alba">
<h2>${dnesniAlbum.umelec}</h2>
<h3>${dnesniAlbum.nazev}</h3>
<p><strong>Vyšlo</strong> ${dnesniAlbum.vydano}</p>
<p>${dnesniAlbum.recenze}</p>
<a href="${dnesniAlbum.tidal}" target="_blank" class="btn tidal">Tidal</a> - <a href="${dnesniAlbum.spotify}" target="_blank" class="btn spotify">Spotify</a>
<p><a href="./about.html" class="btn about">👉🏻 O projektu 👈🏻</a></p>
</div>
`;
} else {
// Alert bez alba
vystup.innerHTML = `
<div class="album-card">
<h3>Dnes není v plánu žádné album 🎵</h3>
<p>Zkus se podívat zítra!</p>
</div>
`;
}
// --- 6. LOGIKA PRO ARCHIV (Předchozí alba) ---
const btnArchiv = document.getElementById('btn-archiv');
const divArchiv = document.getElementById('archiv-container');
btnArchiv.addEventListener('click', () => {
// A. Zkontrolujeme, jestli je archiv už otevřený
if (divArchiv.innerHTML !== "") {
divArchiv.innerHTML = ""; // Pokud ano, vymažeme ho (zavřeme)
btnArchiv.textContent = "📂 Zobrazit předchozí alba";
return; // Ukončíme funkci
}
// B. Vyfiltrujeme alba, která jsou starší než dnešek
// (Předpokládá, že proměnná 'dnes' a 'kalendarAlb' existují z předchozího kódu)
const minulaAlba = kalendarAlb.filter(album => album.datum < dnes);
// C. Seřadíme je, aby nahoře bylo to nejnovější z minulosti
minulaAlba.sort((a, b) => b.datum.localeCompare(a.datum));
// D. Pokud žádná minulá alba nejsou
if (minulaAlba.length === 0) {
divArchiv.innerHTML = "<p>Zatím tu žádná historie není. Přijď zítra! ⏳</p>";
return;
}
// E. Vykreslíme kartičky
let htmlObsah = "";
minulaAlba.forEach(album => {
htmlObsah += `
<div class="archiv-item">
<div class="datum">${album.datum}</div>
<img src="${album.img}" alt="${album.nazev}">
</a>
<h3>${album.umelec}</h3>
<div>${album.nazev}</div>
<br>
<div>${album.recenze}</div>
</div>
`;
});
divArchiv.innerHTML = htmlObsah;
btnArchiv.textContent = "❌ Zavřít archiv";
});
-10
View File
@@ -1,10 +0,0 @@
// --- 5. Photo Gallery -> section (zoom)
const img = document.querySelector(".zoom");
img.addEventListener("mouseenter", () => {
img.style.transform = "scale(10.2)";
});
img.addEventListener("mouseleave", () => {
img.style.transform = "scale(1)";
});
-168
View File
@@ -1,168 +0,0 @@
body {
font-family: sans-serif;
text-align: center;
padding: 50px;
background-image: url(./img/4525586.jpg);
/* Tímto zajistíte, že se tapeta při scrollování nehýbe */
background-attachment: fixed;
/* Tímto zakážete opakování obrázku "dokola" */
background-repeat: no-repeat;
/* DOPORUČENÉ: Roztáhne obrázek přes celou obrazovku */
background-size: cover;
/* Vycentruje obrázek, aby byl vždy uprostřed */
background-position: center;
}
.album-card {
background: grey;
padding: 20px;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
display: inline-block;
max-width: 400px;
}
img {
width: 100%;
border-radius: 5px;
margin-bottom: 15px;
}
h1 {
color: black;
}
h2 {
color: black;
}
.smile {
color: black;
}
.datum {
color: red;
font-size: 0.9em;
margin-bottom: 10px;
font-weight: bold;
}
.hastag {
color: black;
}
#vyzva {
width: 7%;
height: auto;
}
/* Styl pro tlačítka streamovacích služeb */
.btn {
display: inline-block; /* Aby měly rozměry */
text-decoration: none; /* Zruší podtržení */
padding: 10px 20px; /* Vnitřní odsazení (prostor kolem textu) */
border-radius: 25px; /* Kulaté rohy */
color: white; /* Bílé písmo */
font-weight: bold;
margin: 5px; /* Mezera mezi tlačítky */
transition: transform 0.2s; /* Animace při najetí */
}
/* Barvy pro konkrétní služby */
.tidal {
background-color: #000000;
} /* Černá pro Tidal */
.spotify {
background-color: #1db954;
} /* Zelená pro Spotify */
.about {
background-color: #333;
} /* Hmědá o projektu */
.btn:hover {
transform: scale(1.05); /* Při najetí myší se tlačítko trochu zvětší */
opacity: 0.9;
}
@media (max-width: 768px) {
body {
padding: 10px;
}
/* .album-card {
width: 90%;
margin: 0 auto;
padding: 20px;
background-color: #f0f0f0;
} */
}
/*Archív alb */
/* Styl pro hlavní tlačítko archivu */
.btn-main {
background-color: #333;
color: white;
padding: 15px 30px;
border: none;
border-radius: 50px;
font-size: 1.1em;
cursor: pointer;
transition: background 0.3s;
font-weight: bold;
}
.btn-main:hover {
background-color: #555;
}
/* Mřížka pro archiv (aby byly kartičky vedle sebe) */
.archiv-grid {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
max-width: 1000px;
margin: 0 auto;
}
/* Menší kartička pro archiv */
.archiv-item {
background: white;
padding: 15px;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
width: 250px; /* Pevná šířka */
text-align: center;
}
.archiv-item img {
width: 100%;
border-radius: 4px;
margin-bottom: 10px;
}
.archiv-item h3 {
font-size: 1em;
margin: 5px 0;
}
.archiv-item .datum {
font-size: 0.8em;
color: #888;
}
.btn-footer {
/* background-color: #333;
color: white;
padding: 15px 30px; */
border: none;
border-radius: 20px;
/* font-size: 1.1em; */
cursor: pointer;
transition: background 0.3s;
font-weight: bold;
background-color: violet;
}
.link-footer {
text-decoration: none; /* Zruší podtržení */
color: black;
}
/* odkazy */
.links {
color: blueviolet; text-decoration: none;
}