jekyll build from Action ecf64c679fcd2c217ae821ef7b65d3520b269bfb

This commit is contained in:
Florian Weber 2025-03-20 10:46:34 +00:00
parent 24afdc22b7
commit ad0b72a99a
13 changed files with 908 additions and 188 deletions

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
@ -106,13 +112,7 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -126,6 +126,18 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -138,30 +150,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

View File

@ -1,6 +1,7 @@
const CACHE_NAME = "cyberpunk-cache-v1";
const OFFLINE_URL = "/offline.html"; // Diese Seite wird angezeigt, wenn offline
const BASE_PATH = "/cpred/";
const SITEMAP_URL = BASE_PATH + "sitemap.json";
const urlsToCache = [
BASE_PATH,
@ -30,7 +31,9 @@ const urlsToCache = [
BASE_PATH + "/assets/game-data/characters/carver.json",
];
// Installations-Event: Dateien werden in den Cache geladen
/**
* Install-Event: Cache Standarddateien
*/
self.addEventListener("install", (event) => {
event.waitUntil(
caches.open(CACHE_NAME).then((cache) => {
@ -39,18 +42,45 @@ self.addEventListener("install", (event) => {
);
});
// Fetch-Event: Prüft, ob eine Datei im Cache ist, bevor sie aus dem Netz geladen wird
/**
* Fetch-Event: Cache-First Strategie mit Offline-Fallback
*/
self.addEventListener("fetch", (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request).catch(() => {
return caches.match(OFFLINE_URL); // Falls offline, lade offline.html
return caches.match(OFFLINE_URL);
});
})
);
});
// Aktivierungs-Event: Löscht alten Cache, wenn sich Dateien geändert haben
/**
* Wenn die Startseite geladen wird, lade automatisch alle Seiten aus der Sitemap in den Cache
*/
self.addEventListener("sync", (event) => {
if (event.tag === "cache-all-pages") {
event.waitUntil(
fetch(SITEMAP_URL)
.then((response) => response.json())
.then((data) => {
return caches.open(CACHE_NAME).then((cache) => {
return Promise.all(
data.pages.map((page) => {
return fetch(page.url)
.then((response) => cache.put(page.url, response))
.catch((err) => console.error("Fehler beim Cachen:", err));
})
);
});
})
);
}
});
/**
* Aktivierungs-Event: Löscht alten Cache
*/
self.addEventListener("activate", (event) => {
event.waitUntil(
caches.keys().then((cacheNames) => {

222
characters/chase.html Normal file
View File

@ -0,0 +1,222 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Chase Révolte - ThePhoenixDivision</title>
<link rel="manifest" href="/cpred/assets/manifest.json">
<meta name="theme-color" content="#ff003c">
<!-- Stylesheets -->
<link rel="stylesheet" href="/cpred/assets/css/normalize.css">
<link rel="stylesheet" href="/cpred/assets/css/main.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="/cpred/assets/css/cyberpunk.css">
</head>
<body>
<header>
<div class="navbar-fixed">
<nav class="cyber-razor-bottom bg-black">
<div class="nav-wrapper">
<a href="/cpred/" class="cyberpunk-font-og f-x2-5">ThePhoenixDivision</a>
<ul id="nav-mobile" class="right hide-on-med-and-down desktop-only">
<li><a href="/cpred/" class="cyber-a">Home</a></li>
<li><a href="/cpred/characters/" class="cyber-a">Charaktere</a></li>
<li><a href="/cpred/players-guide/" class="cyber-a">Spielerguide</a></li>
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
</ul>
</div>
</nav>
</div>
<!-- WIP: Breadcrumb
<div class="cyber-att">
<a href="/cpred/">Home</a>
<span>characters</span>
<a href="/cpred/characters/chase">Chase Révolte</a>
</div>
-->
</header>
<main class="container">
<h1 class="cyber-h">Chase Révolte</h1>
<div class="row">
<div class="col s6 m4 l1">
<img src="/cpred/assets/img/Netrunner.png" />
</div>
<div class="col s6 m8 l11">
<p>
<strong class="cyberpunk-font-og">Straßenname:</strong>
<span id="streetname" class="cyberpunk-font"></span>
</p>
<p>
<strong class="cyberpunk-font-og">Alter:</strong>
<span id="age" class="cyberpunk-font"></span>
</p>
<p>
<strong class="cyberpunk-font-og">Rolle:</strong>
<span id="role" class="cyberpunk-font"></span>
</p>
<p>
<strong class="cyberpunk-font-og">Rollenfähigkeit:</strong>
<span id="role-ability" class="cyberpunk-font"></span>
</p>
<p>
<strong class="cyberpunk-font-og">Unterkunft:</strong>
<span id="housing" class="cyberpunk-font"></span>
</p>
<p>
<strong class="cyberpunk-font-og">Lebensstil:</strong>
<span id="lifestyle" class="cyberpunk-font"></span>
</p>
<p>
<strong class="cyberpunk-font-og">Lebenskosten:</strong>
<span id="costs" class="cyberpunk-font"></span>
</p>
</div>
</div>
<p>Test</p>
<script>
fetch("/cpred/assets/game-data/characters/chase.json")
.then(response => response.json())
.then(character => {
document.getElementById('streetname').innerText = character.handle;
document.getElementById('age').innerText = character.age;
document.getElementById('role').innerText = character.role[0].name + " Rang: " + character.role[0].rank;
document.getElementById('housing').innerText = character.housing.type;
document.getElementById('lifestyle').innerText = character.lifestyle;
});
</script>
</main>
<footer class="cyber-razor-top bg-black">
<ul class="tabs mobile-tabs">
<li class="tab col s1 bg-dark"><a href="/cpred/" class="cyber-a"><i class="material-icons">home</i></a></li>
<li class="tab col s1 bg-dark">
<a href="/cpred/characters/" target="_self" class="cyber-a">
<i class="material-icons">account_circle</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/players-guide/" target="_self" class="cyber-a">
<i class="material-icons">description</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
<i class="material-icons">manage_accounts</i>
</a>
</li>
</ul>
<span></span>
</footer>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>
</body>
</html>

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
@ -109,13 +115,7 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -129,6 +129,18 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -141,30 +153,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

View File

@ -1 +1 @@
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://phoenixdivision.morlana.space/cpred/feed.xml" rel="self" type="application/atom+xml" /><link href="https://phoenixdivision.morlana.space/cpred/" rel="alternate" type="text/html" /><updated>2025-03-20T08:35:12+00:00</updated><id>https://phoenixdivision.morlana.space/cpred/feed.xml</id><title type="html">ThePhoenixDivision</title><subtitle>We will share our adventures in Cyberpunk Red here.</subtitle></feed>
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://phoenixdivision.morlana.space/cpred/feed.xml" rel="self" type="application/atom+xml" /><link href="https://phoenixdivision.morlana.space/cpred/" rel="alternate" type="text/html" /><updated>2025-03-20T10:46:33+00:00</updated><id>https://phoenixdivision.morlana.space/cpred/feed.xml</id><title type="html">ThePhoenixDivision</title><subtitle>We will share our adventures in Cyberpunk Red here.</subtitle></feed>

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
@ -80,13 +86,7 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -100,6 +100,18 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -112,30 +124,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a fg-yellow">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a fg-yellow">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
@ -68,7 +74,7 @@
<main class="container">
<h1 class="cyber-h">Lebensweg</h1>
<ul class="cyber-ul" style="align-self: start;">
<ul>
<li><a href="#kulturelle-herkunft">Kulturelle Herkunft</a></li>
<li><a href="#deine-persönlichkeit">Deine Persönlichkeit</a></li>
<li><a href="#kleidung-und-persönlicher-stil">Kleidung und persönlicher Stil</a></li>
@ -750,13 +756,7 @@
<li class="tab col s1 bg-red">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -770,6 +770,18 @@
<li class="tab col s1 bg-red">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -782,30 +794,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
@ -92,13 +98,7 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -112,6 +112,18 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -124,30 +136,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
@ -87,13 +93,7 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -107,6 +107,18 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -119,30 +131,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

View File

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Netrunner Guide - ThePhoenixDivision</title>
<link rel="manifest" href="/cpred/assets/manifest.json">
<meta name="theme-color" content="#ff003c">
<!-- Stylesheets -->
<link rel="stylesheet" href="/cpred/assets/css/normalize.css">
<link rel="stylesheet" href="/cpred/assets/css/main.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="/cpred/assets/css/cyberpunk.css">
</head>
<body>
<header>
<div class="navbar-fixed">
<nav class="cyber-razor-bottom bg-black">
<div class="nav-wrapper">
<a href="/cpred/" class="cyberpunk-font-og f-x2-5">ThePhoenixDivision</a>
<ul id="nav-mobile" class="right hide-on-med-and-down desktop-only">
<li><a href="/cpred/" class="cyber-a">Home</a></li>
<li><a href="/cpred/characters/" class="cyber-a">Charaktere</a></li>
<li><a href="/cpred/players-guide/" class="cyber-a">Spielerguide</a></li>
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
</ul>
</div>
</nav>
</div>
<!-- WIP: Breadcrumb
<div class="cyber-att">
<a href="/cpred/">Home</a>
<span>players-guide</span>
<a href="/cpred/players-guide/netrunner">Netrunner Guide</a>
</div>
-->
</header>
<main class="container">
<h1 class="cyber-h">Netrunner Guide</h1>
<p>TBD</p>
</main>
<footer class="cyber-razor-top bg-black">
<ul class="tabs mobile-tabs">
<li class="tab col s1 bg-dark"><a href="/cpred/" class="cyber-a"><i class="material-icons">home</i></a></li>
<li class="tab col s1 bg-dark">
<a href="/cpred/characters/" target="_self" class="cyber-a">
<i class="material-icons">account_circle</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/players-guide/" target="_self" class="cyber-a">
<i class="material-icons">description</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
<i class="material-icons">manage_accounts</i>
</a>
</li>
</ul>
<span></span>
</footer>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>
</body>
</html>

172
players-guide/tech.html Normal file
View File

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tech Guide - ThePhoenixDivision</title>
<link rel="manifest" href="/cpred/assets/manifest.json">
<meta name="theme-color" content="#ff003c">
<!-- Stylesheets -->
<link rel="stylesheet" href="/cpred/assets/css/normalize.css">
<link rel="stylesheet" href="/cpred/assets/css/main.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="/cpred/assets/css/cyberpunk.css">
</head>
<body>
<header>
<div class="navbar-fixed">
<nav class="cyber-razor-bottom bg-black">
<div class="nav-wrapper">
<a href="/cpred/" class="cyberpunk-font-og f-x2-5">ThePhoenixDivision</a>
<ul id="nav-mobile" class="right hide-on-med-and-down desktop-only">
<li><a href="/cpred/" class="cyber-a">Home</a></li>
<li><a href="/cpred/characters/" class="cyber-a">Charaktere</a></li>
<li><a href="/cpred/players-guide/" class="cyber-a">Spielerguide</a></li>
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a">Rollen</a></li>
</ul>
</div>
</nav>
</div>
<!-- WIP: Breadcrumb
<div class="cyber-att">
<a href="/cpred/">Home</a>
<span>players-guide</span>
<a href="/cpred/players-guide/tech">Tech Guide</a>
</div>
-->
</header>
<main class="container">
<h1 class="cyber-h">Tech Guide</h1>
<p>TBD</p>
</main>
<footer class="cyber-razor-top bg-black">
<ul class="tabs mobile-tabs">
<li class="tab col s1 bg-dark"><a href="/cpred/" class="cyber-a"><i class="material-icons">home</i></a></li>
<li class="tab col s1 bg-dark">
<a href="/cpred/characters/" target="_self" class="cyber-a">
<i class="material-icons">account_circle</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/players-guide/" target="_self" class="cyber-a">
<i class="material-icons">description</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-dark">
<a href="/cpred/roles/" target="_self" class="cyber-a">
<i class="material-icons">manage_accounts</i>
</a>
</li>
</ul>
<span></span>
</footer>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>
</body>
</html>

View File

@ -31,7 +31,7 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
@ -39,6 +39,12 @@
<li><a href="/cpred/lifepaths/" class="cyber-a">Lebensweg</a></li>
<li><a href="/cpred/roles/" class="cyber-a fg-yellow">Rollen</a></li>
@ -87,13 +93,7 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
@ -107,6 +107,18 @@
<li class="tab col s1 bg-dark">
<a href="/cpred/lifepaths/" target="_self" class="cyber-a">
<i class="material-icons">merge</i>
</a>
</li>
<li class="tab col s1 bg-red">
<a href="/cpred/roles/" target="_self" class="cyber-a">
@ -119,30 +131,33 @@
</ul>
<span></span>
</footer>
<script
src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin="anonymous"></script>
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
<script src="/cpred/assets/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var sidenavElems = document.querySelectorAll('.sidenav');
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
});
});
</script>
document.querySelectorAll("button").forEach(button => {
const href = button.getAttribute("data-href");
if (!href) return;
button.addEventListener("click", () => {
window.location.href = button.getAttribute("data-href");
});
});
</script>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/cpred/assets/js/service-worker.js")
.then(() => console.log("✅ Service Worker registriert"))
.then((reg) => {
console.log("✅ Service Worker registriert");
if ('SyncManager' in window) {
reg.sync.register('cache-all-pages')
.then(() => console.log("✅ Alle Seiten werden gecached"))
.catch(err => console.error("❌ Fehler beim Sync:", err));
}
})
.catch(error => console.log("❌ Service Worker Fehler:", error));
}
</script>

19
sitemap.json Normal file
View File

@ -0,0 +1,19 @@
{
"pages": [
{ "url": "/cpred/characters/" },
{ "url": "/cpred/characters/chase" },
{ "url": "/cpred/lifepaths/" },
{ "url": "/cpred/players-guide/netrunner" },
{ "url": "/cpred/players-guide/" },
{ "url": "/cpred/roles/" },
{ "url": "/cpred/players-guide/tech" }
]
}