Compare commits
22 Commits
pages
...
revert-ba3
Author | SHA1 | Date | |
---|---|---|---|
7772f697d2 | |||
ba3804df22 | |||
86d7a9215a | |||
40ff7f5be7 | |||
653b2d53e0 | |||
12840382d4 | |||
a83f2c39fd | |||
60e0818b6d | |||
c518cbf550 | |||
344caf5b52 | |||
7857016243 | |||
ecf64c679f | |||
f1cf7f2867 | |||
63de9a9476 | |||
f915dad908 | |||
448b6db79e | |||
7e5dae0620 | |||
fae93a92de | |||
20b46587ee | |||
72158d4464 | |||
95fdd54d46 | |||
4a25e9fadf |
55
.gitea/workflows/pages-deploy.yaml
Normal file
55
.gitea/workflows/pages-deploy.yaml
Normal file
@ -0,0 +1,55 @@
|
||||
name: Deploy Jekyll site to Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- develop
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
env:
|
||||
RUBY_VERSION: "3.3.5"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: "develop"
|
||||
- name: checkout pages
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: "pages"
|
||||
path: "pages"
|
||||
- name: Setup Ruby
|
||||
run: |
|
||||
apt-get update && \
|
||||
apt-get install curl wget tar build-essential zlib1g-dev gpg -y && \
|
||||
curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \
|
||||
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && \
|
||||
curl -sSL https://get.rvm.io | bash -s stable && \
|
||||
source /etc/profile.d/rvm.sh && \
|
||||
rvm mount -r https://raw.morlana.space/morlana/rvm-binaries/@binaries/ubuntu/22.04/aarch64/ruby-$RUBY_VERSION.tar.bz2 && \
|
||||
rvm use $RUBY_VERSION && ruby -v && gem -v && \
|
||||
gem install bundler jekyll webrick
|
||||
- name: Build with Jekyll
|
||||
run: |
|
||||
source /etc/profile.d/rvm.sh && \
|
||||
rvm use $RUBY_VERSION && ruby -v && gem -v && \
|
||||
bundle install && \
|
||||
bundle exec jekyll build --destination pages
|
||||
env:
|
||||
JEKYLL_ENV: production
|
||||
- name: push pages
|
||||
run: |
|
||||
cd pages && \
|
||||
git config user.name "${{ gitea.actor }}" && \
|
||||
git config user.email ""${{ gitea.actor }}"@noreply.git.morlana.online" && \
|
||||
git add . && \
|
||||
git commit -m "jekyll build from Action ${GITHUB_SHA}" && \
|
||||
git push
|
1
.prettierignore
Normal file
1
.prettierignore
Normal file
@ -0,0 +1 @@
|
||||
*.md
|
2
Gemfile
2
Gemfile
@ -9,7 +9,7 @@ source "https://rubygems.org"
|
||||
# Happy Jekylling!
|
||||
gem "jekyll", "~> 4.4.1"
|
||||
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||
gem "jekyll-theme-cyberpunk", "~> 0.1.0"
|
||||
gem "jekyll-theme-cyberpunk", path: "."
|
||||
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||
# gem "github-pages", group: :jekyll_plugins
|
||||
|
10
Gemfile.lock
10
Gemfile.lock
@ -1,3 +1,9 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
jekyll-theme-cyberpunk (0.1.0)
|
||||
jekyll (>= 4.4.1)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
@ -68,8 +74,6 @@ GEM
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-sass-converter (3.1.0)
|
||||
sass-embedded (~> 1.75)
|
||||
jekyll-theme-cyberpunk (0.1.0)
|
||||
jekyll (>= 4.4.1)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
json (2.10.2)
|
||||
@ -155,7 +159,7 @@ DEPENDENCIES
|
||||
http_parser.rb (~> 0.6.0)
|
||||
jekyll (~> 4.4.1)
|
||||
jekyll-feed (~> 0.12)
|
||||
jekyll-theme-cyberpunk (~> 0.1.0)
|
||||
jekyll-theme-cyberpunk!
|
||||
tzinfo (>= 1, < 3)
|
||||
tzinfo-data
|
||||
wdm (~> 0.1)
|
||||
|
38
_config.yml
38
_config.yml
@ -1,17 +1,5 @@
|
||||
# Welcome to Jekyll!
|
||||
#
|
||||
# This config file is meant for settings that affect your whole blog, values
|
||||
# which you are expected to set up once and rarely edit after that. If you find
|
||||
# yourself editing this file very often, consider using Jekyll's data files
|
||||
# feature for the data you need to update frequently.
|
||||
#
|
||||
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
||||
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
||||
#
|
||||
# If you need help with YAML syntax, here are some quick references for you:
|
||||
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
|
||||
# https://learnxinyminutes.com/docs/yaml/
|
||||
#
|
||||
# Site settings
|
||||
# These are used to personalize your new site. If you look in the HTML files,
|
||||
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
||||
@ -22,8 +10,8 @@ title: ThePhoenixDivision
|
||||
email: contact@morlana.net
|
||||
description: >-
|
||||
We will share our adventures in Cyberpunk Red here.
|
||||
baseurl: "/cpred" # the subpath of your site, e.g. /blog
|
||||
url: "https://phoenixdivision.morlana.space" # the base hostname & protocol for your site, e.g. http://example.com
|
||||
baseurl: "/cpred"
|
||||
url: "https://phoenixdivision.morlana.space"
|
||||
twitter_username: abc
|
||||
github_username: abc
|
||||
|
||||
@ -40,22 +28,6 @@ collections:
|
||||
output: true
|
||||
permalink: /:name/
|
||||
|
||||
# Exclude from processing.
|
||||
# The following items will not be processed, by default.
|
||||
# Any item listed under the `exclude:` key here will be automatically added to
|
||||
# the internal "default list".
|
||||
#
|
||||
# Excluded items can be processed by explicitly listing the directories or
|
||||
# their entries' file path in the `include:` list.
|
||||
#
|
||||
# exclude:
|
||||
# - .sass-cache/
|
||||
# - .jekyll-cache/
|
||||
# - gemfiles/
|
||||
# - Gemfile
|
||||
# - Gemfile.lock
|
||||
# - node_modules/
|
||||
# - vendor/bundle/
|
||||
# - vendor/cache/
|
||||
# - vendor/gems/
|
||||
# - vendor/ruby/
|
||||
footer_links:
|
||||
- title: "Impressum"
|
||||
url: "https://legal.thephoenixdi.vision"
|
||||
|
27
_includes/character-profile.html
Normal file
27
_includes/character-profile.html
Normal file
@ -0,0 +1,27 @@
|
||||
<div class="cyber-tile cyber-tile-big {{ include.bg_color }} {{ include.fg_color }} {{ include.class }}" style="min-height: auto;">
|
||||
{% if include.image %}
|
||||
<img class="responsive-img" src="{{ include.image | relative_url }}" alt="Character Picture">
|
||||
{% endif %}
|
||||
<p><span class="cyberpunk-font">Name:</span> <span id="name-{{ include.id }}"></span></p>
|
||||
<p><span class="cyberpunk-font">Handle:</span> <span id="streetname-{{ include.id }}"></span></p>
|
||||
<p><span class="cyberpunk-font">Role:</span> <span id="role-{{ include.id }}"></span></p>
|
||||
<p><span class="cyberpunk-font">Age:</span> <span id="age-{{ include.id }}"></span></p>
|
||||
{% if include.page %}
|
||||
<button class="cyber-button bg-purple fg-white" onclick="window.location.href='{{ include.page | relative_url }}'">
|
||||
Screamsheet
|
||||
<span class="glitchtext">teehsmaercS</span>
|
||||
<span class="tag">NETR</span>
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
<script>
|
||||
fetch("{{ '/assets/game-data/characters/' | append: include.id | append: '.json' | relative_url }}")
|
||||
.then(response => response.json())
|
||||
.then(character => {
|
||||
document.getElementById('name-{{ include.id }}').innerText = character.name;
|
||||
document.getElementById('streetname-{{ include.id }}').innerText = character.handle;
|
||||
document.getElementById('age-{{ include.id }}').innerText = character.age;
|
||||
const mainRole = character.roles.find(role => role.main);
|
||||
document.getElementById('role-{{ include.id }}').innerText = mainRole.name + " Rang: " + mainRole.rank;
|
||||
});
|
||||
</script>
|
@ -1,12 +1,19 @@
|
||||
<div class="cyber-razor-top bg-black" style="width: 100%"></div>
|
||||
<script
|
||||
src="https://code.jquery.com/jquery-3.7.1.min.js"
|
||||
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
|
||||
crossorigin="anonymous"></script>
|
||||
<script src="{{ "/assets/js/materialize.min.js" | relative_url }}"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var sidenavElems = document.querySelectorAll('.sidenav');
|
||||
var sidenavInstances = M.Sidenav.init(sidenavElems, {});
|
||||
});
|
||||
</script>
|
||||
<footer class="cyber-razor-top bg-black">
|
||||
<ul class="tabs mobile-tabs">
|
||||
<li class="tab col s1 {% if page.url == "/" %}bg-red{% else %}bg-dark{% endif %}"><a href="{{ "/" | relative_url }}" class="cyber-a"><i class="material-icons">home</i></a></li>
|
||||
{% for tab in sorted_pages %}
|
||||
{% if tab.title and tab.permalink and tab.nav != false %}
|
||||
<li class="tab col s1 {% if page.url == tab.url %}bg-red{% else %}bg-dark{% endif %}">
|
||||
<a href="{{ tab.url | relative_url }}" target="_self" class="cyber-a">
|
||||
{% if tab.icon %}
|
||||
<i class="material-icons">{{ tab.icon }}</i>
|
||||
{% else %}
|
||||
{{ tab.title }}
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<span></span>
|
||||
</footer>
|
||||
|
@ -2,6 +2,9 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{{ page.title }} - {{ site.title }}</title>
|
||||
|
||||
<link rel="manifest" href="{{ '/assets/manifest.json' | relative_url }}">
|
||||
<meta name="theme-color" content="#ff003c">
|
||||
|
||||
<!-- Stylesheets -->
|
||||
<link rel="stylesheet" href="{{ "/assets/css/normalize.css" | relative_url }}">
|
||||
<link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}">
|
||||
|
@ -1,36 +1,39 @@
|
||||
{% assign menu_pages = site.pages | where_exp: "page", "page.path contains 'pages/'" %}
|
||||
{% assign sorted_pages = menu_pages | sort: "weight" %}
|
||||
<header>
|
||||
<nav class="cyber-razor-bottom bg-black">
|
||||
<div class="nav-wrapper">
|
||||
<a href="{{ "/" | relative_url }}" class="cyberpunk-font-og f-x2-5">{{ site.title }}</a>
|
||||
<a href="#" data-target="mobile-menu" class="sidenav-trigger"><i class="material-icons">menu</i></a>
|
||||
<ul id="nav-mobile" class="right hide-on-med-and-down">
|
||||
<li><a href="{{ "/" | relative_url }}" class="cyber-a">Home</a></li>
|
||||
{% for page in sorted_pages %}
|
||||
{% if page.title and page.permalink and page.nav != false %}
|
||||
<li><a href="{{ page.url | relative_url }}" class="cyber-a">{{ page.title }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="sidenav" id="mobile-menu">
|
||||
<li>
|
||||
<button class="cyber-button bg-red fg-white m-2 vt-bot">
|
||||
Home
|
||||
</button>
|
||||
</li>
|
||||
{% for page in sorted_pages %}
|
||||
{% if page.title and page.permalink and page.nav != false %}
|
||||
<li>
|
||||
<button class="cyber-button bg-red fg-white m-2 vt-bot">
|
||||
{{ page.title }}
|
||||
<span class="glitchtext">$_glitch;</span>
|
||||
<span class="tag"></span>
|
||||
</button>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
<div class="navbar-fixed">
|
||||
<nav class="cyber-razor-bottom bg-black">
|
||||
<div class="nav-wrapper">
|
||||
<a href="{{ "/" | relative_url }}" class="cyberpunk-font-og f-x2-5">{{ site.title }}</a>
|
||||
<ul id="nav-mobile" class="right hide-on-med-and-down desktop-only">
|
||||
<li><a href="{{ "/" | relative_url }}" class="cyber-a{% if page.url == "/" %} fg-yellow{% endif %}">Home</a></li>
|
||||
{% for tab in sorted_pages %}
|
||||
{% if tab.title and tab.permalink and tab.nav != false %}
|
||||
<li><a href="{{ tab.url | relative_url }}" class="cyber-a{% if page.url == tab.url %} fg-yellow{% endif %}">{{ tab.title }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<!-- WIP: Breadcrumb
|
||||
<div class="cyber-att">
|
||||
<a href="{{ "/" | relative_url }}">Home</a>
|
||||
|
||||
{% assign segments = page.url | split: "/" %}
|
||||
{% assign path = "" %}
|
||||
|
||||
{% for segment in segments offset: 1 %}
|
||||
{% assign path = path | append: "/" | append: segment %}
|
||||
{% assign breadcrumb_page = site.pages | where: "url", path | first %}
|
||||
|
||||
{% if breadcrumb_page and breadcrumb_page.title %}
|
||||
› <a href="{{ path | relative_url }}">{{ breadcrumb_page.title }}</a>
|
||||
{% else %}
|
||||
› <span>{{ segment }}</span>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
-->
|
||||
</header>
|
||||
|
55
_layouts/character-sheet.html
Normal file
55
_layouts/character-sheet.html
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
layout: page
|
||||
---
|
||||
|
||||
<div class="row">
|
||||
{% if page.image %}
|
||||
<div class="col s6 m4 l1 responsive-img">
|
||||
<img class="responsive-img" src="{{ page.image | relative_url }}" alt="Picture of {{ page.title }}" />
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="bg-dark fg-yellow cyber-tile col {% if page.image %}s6 m8 l11{% else %}s12 m12 l12{% endif %}">
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Straßenname:</strong>
|
||||
<span id="streetname" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Alter:</strong>
|
||||
<span id="age" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Rolle:</strong>
|
||||
<span id="role" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Rollenfähigkeit:</strong>
|
||||
<span id="role-ability" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Unterkunft:</strong>
|
||||
<span id="housing" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Lebensstil:</strong>
|
||||
<span id="lifestyle" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
<p class="character-details">
|
||||
<strong class="cyberpunk-font-og character-details-title">Lebenskosten:</strong>
|
||||
<span id="costs" class="oxanium-font character-details-value"></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{{ content }}
|
||||
|
||||
<script>
|
||||
fetch("{{ page.datasource | relative_url }}")
|
||||
.then(response => response.json())
|
||||
.then(character => {
|
||||
document.getElementById('streetname').innerText = character.handle;
|
||||
document.getElementById('age').innerText = character.age;
|
||||
const mainRole = character.roles.find(role => role.main);
|
||||
document.getElementById('role').innerText = mainRole.name + " Rang: " + mainRole.rank;
|
||||
document.getElementById('housing').innerText = character.housing.type;
|
||||
document.getElementById('lifestyle').innerText = character.lifestyle;
|
||||
});
|
||||
</script>
|
@ -5,9 +5,38 @@
|
||||
</head>
|
||||
<body>
|
||||
{% include header.html %}
|
||||
<main>
|
||||
<main class="container">
|
||||
{{ content }}
|
||||
</main>
|
||||
{% include footer.html %}
|
||||
<script src="{{ "/assets/js/materialize.min.js" | relative_url }}"></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("{{ '/assets/js/service-worker.js' | relative_url }}")
|
||||
.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>
|
||||
|
@ -2,12 +2,20 @@
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% if site.posts and site.posts.size > 0 %}
|
||||
{% for post in site.posts %}
|
||||
<article>
|
||||
<h1 class="cyber-h" style="margin-bottom: 0;"><a href="{{ post.url | relative_url }}">{{ post.title }}</a></h1>
|
||||
<p style="margin-top: 0;"><small>{{ post.date | date: "%d.%m.%Y" }}</small></p>
|
||||
<p>{{ post.excerpt }}</p>
|
||||
<a href="{{ post.url | relative_url }}">Weiterlesen...</a>
|
||||
<button class="cyber-button bg-red fg-white m-2 vt-bot" data-href="{{ post.url | relative_url }}">
|
||||
Weiterlesen...
|
||||
<span class="glitchtext">$_glitch;</span>
|
||||
<span class="tag"></span>
|
||||
</button>
|
||||
</article>
|
||||
<hr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<div class="cyber-att-2" style="margin: 32px 0;">Es gibt noch keine Neuigkeiten...</div>
|
||||
{% endif %}
|
||||
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
layout: page
|
||||
title: Charaktere
|
||||
permalink: /characters/
|
||||
---
|
||||
|
||||
TBD
|
16
_pages/characters.md
Normal file
16
_pages/characters.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: page
|
||||
title: Charaktere
|
||||
permalink: /characters/
|
||||
icon: account_circle
|
||||
weight: 3
|
||||
---
|
||||
|
||||
<div class="row" style="column-gap: 5px;">
|
||||
<div class="col s12 l6">
|
||||
{% include character-profile.html id="chase" page="/characters/chase" image="/assets/img/Netrunner.png" bg_color="bg-red" fg_color="fg-dark" %}
|
||||
</div>
|
||||
<div class="col s12 l6">
|
||||
{% include character-profile.html id="carver" page="/characters/crash" image="/assets/img/Tech.png" bg_color="bg-red" fg_color="fg-purple" %}
|
||||
</div>
|
||||
</div>
|
10
_pages/chase.md
Normal file
10
_pages/chase.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
layout: character-sheet
|
||||
title: Chase Révolte
|
||||
permalink: /characters/chase
|
||||
image: /assets/img/Netrunner.png
|
||||
datasource: /assets/game-data/characters/chase.json
|
||||
nav: false
|
||||
---
|
||||
|
||||
Test
|
8
_pages/crash.md
Normal file
8
_pages/crash.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
layout: character-sheet
|
||||
title: Carver Wright
|
||||
permalink: /characters/crash
|
||||
image: /assets/img/Tech.png
|
||||
datasource: /assets/game-data/characters/carver.json
|
||||
nav: false
|
||||
---
|
@ -2,8 +2,21 @@
|
||||
layout: page
|
||||
title: Lebensweg
|
||||
permalink: /lifepaths/
|
||||
icon: merge
|
||||
weight: 1
|
||||
---
|
||||
|
||||
- [Kulturelle Herkunft](#kulturelle-herkunft)
|
||||
- [Deine Persönlichkeit](#deine-persönlichkeit)
|
||||
- [Kleidung und persönlicher Stil](#kleidung-und-persönlicher-stil)
|
||||
- [Deine Motivation und Beziehungen](#deine-motivation-und-beziehungen)
|
||||
- [Was du am meisten schätzt](#was-du-am-meisten-schätzt)
|
||||
- [Deine Familiäre Herkunft](#deine-familiäre-herkunft)
|
||||
- [Dein Umfeld](#dein-umfeld)
|
||||
- [Deine Familienkrise](#deine-familienkrise)
|
||||
- [Deine Lebensziele](#deine-lebensziele)
|
||||
- [Deine Freunde, Deine Feinde, Deine tragische(n) Liebschaft(en), Süße Rache](#deine-freunde-deine-feinde-deine-tragischen-liebschaften-süße-rache)
|
||||
|
||||
## Kulturelle Herkunft
|
||||
{:.cyber-h}
|
||||
|
||||
@ -80,25 +93,134 @@ permalink: /lifepaths/
|
||||
## Deine Motivation und Beziehungen
|
||||
{:.cyber-h}
|
||||
|
||||
<strong>Wirf 1W10 für jede Spalte oder wähle eine aus jeder Spalte.</strong>
|
||||
|
||||
| Wurf | Was schätzt du am meisten? | Was hältst du von den meisten Leuten? |
|
||||
| ---- | -------------------------- | ------------------------------------------------------------------------------ |
|
||||
| 1 | Geld | Ich bleibe neutral. |
|
||||
| 2 | Ehre | Ich bleibe neutral. |
|
||||
| 3 | Dein Wort | Ich mag so gut wie alle. |
|
||||
| 4 | Ehrlichkeit | Ich hasse so gut wie alle. |
|
||||
| 5 | Wissen | Menschen sind Werkzeuge. Benutze sie und wirf sie dann weg. |
|
||||
| 6 | Rache | Jeder Mensch ist ein wertvolles Individuum. |
|
||||
| 7 | Liebe | Menschen sind Hindernisse, die vernichtet werden müssen, wenn sie mich nerven. |
|
||||
| 8 | Macht | Man kann Menschen nicht vertrauen. Verlass dich auf niemanden. |
|
||||
| 9 | Familie | Lösch sie alle aus - sollen die Kakerlaken die Macht übernehmen. |
|
||||
| 10 | Freundschaft | Menschen sind wunderbar! |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
### Was du am meisten schätzt
|
||||
{:.cyber-h}
|
||||
|
||||
<strong>Wirf 1W10 oder wähle eine aus.</strong>
|
||||
|
||||
| Wurf | Welche Menschen sind für dich am wertvollsten? |
|
||||
| ---- | ---------------------------------------------- |
|
||||
| 1 | Ein Elternteil |
|
||||
| 2 | Ein Bruder oder eine Schwester |
|
||||
| 3 | Eine Liebschaft |
|
||||
| 4 | Ein Freund |
|
||||
| 5 | Du selbst |
|
||||
| 6 | Ein Haustier |
|
||||
| 7 | Ein Lehrer oder Mentor |
|
||||
| 8 | Eine öffentliche Person |
|
||||
| 9 | Ein persönliches Held |
|
||||
| 10 | Niemand |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
<strong>Wirf 1W10 oder wähle eine aus.</strong>
|
||||
|
||||
| Wurf | Was ist dein wertvollster Besitz? |
|
||||
| ---- | --------------------------------- |
|
||||
| 1 | Eine Waffe |
|
||||
| 2 | Ein Werkzeug |
|
||||
| 3 | Ein Kleidungsstück |
|
||||
| 4 | Eine Fotografie |
|
||||
| 5 | Ein Buch oder Tagebuch |
|
||||
| 6 | Eine Aufnahme |
|
||||
| 7 | Ein Musikinstrument |
|
||||
| 8 | Ein Schmuckstück |
|
||||
| 9 | Ein Spielzeug |
|
||||
| 10 | Ein Brief |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
## Deine Familiäre Herkunft
|
||||
{:.cyber-h}
|
||||
|
||||
<strong>Wirf 1W10 oder wähle eine aus.</strong>
|
||||
|
||||
| Wurf | Ursprünfliche Herkunft | Beschreibung |
|
||||
| ---- | ---------------------- | ------------ |
|
||||
| 1 | Konzerngeschäftsführer | |
|
||||
| 2 | Konzernmanager | |
|
||||
| 3 | Konzerntechniker | |
|
||||
| 4 | Nomadenrudel | |
|
||||
| 5 | Gang-"Familie" | |
|
||||
| 6 | Kriegszonenbewohner | |
|
||||
| 7 | Städtische Obdachlose | |
|
||||
| 8 | Megabauten | |
|
||||
| 9 | Reclaimer | |
|
||||
| 10 | Edgerunner | |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
## Dein Umfeld
|
||||
{:.cyber-h}
|
||||
|
||||
<strong>Wirf 1W10 oder wähle eine aus.</strong>
|
||||
|
||||
| Wurf | Umfeld deiner Herkunft |
|
||||
| ---- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 1 | Auf der Straße rumgetrieben, ohne Aufsicht durch Erwachsene. |
|
||||
| 2 | In einer Konzone verbracht, durch Mauern vom Rest der City getrennt. |
|
||||
| 3 | In einem Nomadenrudel, ständig auf Achse. |
|
||||
| 4 | In einem Nomadenrudel mit Wurzeln im Transport (Schiffe, Flugzeuge, Wohnwagen). |
|
||||
| 5 | In einem verfallenden, früher gehobenen Viertel, das zum Überleben jetzt die Booster zurückschlagen muss. |
|
||||
| 6 | Inmitten einer Kriegszone, Leben in einem zerstörten Gebäude oder in irgendeinem anderen Gemäuer. |
|
||||
| 7 | In einem riesigen "Megabau", der von einem Konzern oder der City kontrolliert wird. |
|
||||
| 8 | In den Ruinen einer verlassenen Stadt, die von Reclaimers übernommen wurde. |
|
||||
| 9 | In einer Schwimmenden Nation (einer treibenden, der Küste vorgelagerten Statd), die ein Treffpunkt für Menschen aller Couleur ist. |
|
||||
| 10 | In einem luxuriösen "Sternenkratzer" eines Konzerns, hoch über dem Rest des wimmelnden Pöbels. |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
## Deine Familienkrise
|
||||
{:.cyber-h}
|
||||
|
||||
## Süße Rache
|
||||
{:.cyber-h}
|
||||
<strong>Wirf 1W10 oder wähle eine aus.</strong>
|
||||
|
||||
| Wurf | Hintergrund |
|
||||
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 1 | Deine Familie hat alles durch Verrat verloren. |
|
||||
| 2 | Deine Familie hat alles durch schlechtes Management verloren. |
|
||||
| 3 | Deine Familie wurde verbannt oder auf anderem Wege aus ihrer Heimat / ihrer Nation / ihrem Konzern vertrieben. |
|
||||
| 4 | Deine Familie wurde gefangen genommen und nur du konntest entkommen. |
|
||||
| 5 | Deine Familie ist verschwunden. Du bist als Einziger übriggeblieben. |
|
||||
| 6 | Deine Familie wurde getötet und nur du hast überlebt. |
|
||||
| 7 | Deine Familie ist in eine Langzeitverschwörung, eine Organisation oder Vereinigung verwickelt, beispielsweise eine Verbrecherfamilie oder eine revolutionäre Gruppe. |
|
||||
| 8 | Aufgrund eines Unglücks ist deine Familie in alle vier Himmelsrichtungen verstreut. |
|
||||
| 9 | Deine Familie trägt die Last einer Erbfehde, die schon Generationen anhält. |
|
||||
| 10 | Du bist Erbe der Familienschulden. Du musst die Schuld begleichen, bevor du dein Leben weiterführen kannst. |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
## Deine Lebensziele
|
||||
{:.cyber-h}
|
||||
|
||||
## Deine Freunde, Deine Feinde, Deine tragische(n) Liebschaft(en)
|
||||
<strong>Wirf 1W10 oder wähle eine aus.</strong>
|
||||
|
||||
| Wurf | Lebensziele |
|
||||
| ---- | ------------------------------------------------------------------------------------------------ |
|
||||
| 1 | Einen schlechten Ruf loswerden. |
|
||||
| 2 | Macht und Kontroller erlangen. |
|
||||
| 3 | Von der Straße wegkommen, was auch immer es kosten mag. |
|
||||
| 4 | All jenen Schmerz und Leid zufügen, die dir in die Quere kommen. |
|
||||
| 5 | Dein altes Leben hinter dir lassen und versuchen, es zu vergessen. |
|
||||
| 6 | Die für dein mieses Leben Verantwortlichen jagen und sie dafür büßen lassen. |
|
||||
| 7 | Bekommen, was dir rechtmäßig zusteht. |
|
||||
| 8 | Wenn möglich, jemanden aus deinem Hintergrund retten, wie eine Liebschaft oder Familienmitglied. |
|
||||
| 9 | Ruhm und Anerkennung gewinnen. |
|
||||
| 10 | Gefürchtet und respektiert werden. |
|
||||
{:.cyber-table .ac-red style="width: auto;"}
|
||||
|
||||
## Deine Freunde, Deine Feinde, Deine tragische(n) Liebschaft(en), Süße Rache
|
||||
{:.cyber-h}
|
||||
|
||||
Diese Dinge werden per Zufall ausgewürfelt und müssen Vorort geklärt werden.
|
||||
|
8
_pages/netrunner-guide.md
Normal file
8
_pages/netrunner-guide.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
layout: page
|
||||
title: Netrunner Guide
|
||||
permalink: /players-guide/netrunner
|
||||
nav: false
|
||||
---
|
||||
|
||||
TBD
|
9
_pages/players-guide.md
Normal file
9
_pages/players-guide.md
Normal file
@ -0,0 +1,9 @@
|
||||
---
|
||||
layout: page
|
||||
title: Spielerguide
|
||||
permalink: /players-guide/
|
||||
icon: description
|
||||
weight: 2
|
||||
---
|
||||
|
||||
TBD
|
@ -2,6 +2,8 @@
|
||||
layout: page
|
||||
title: Rollen
|
||||
permalink: /roles/
|
||||
icon: manage_accounts
|
||||
weight: 4
|
||||
---
|
||||
|
||||
TBD
|
||||
|
8
_pages/tech-guide.md
Normal file
8
_pages/tech-guide.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
layout: page
|
||||
title: Tech Guide
|
||||
permalink: /players-guide/tech
|
||||
nav: false
|
||||
---
|
||||
|
||||
TBD
|
@ -1,29 +0,0 @@
|
||||
---
|
||||
layout: post
|
||||
title: "Welcome to Jekyll!"
|
||||
date: 2025-03-16 20:11:55 +0100
|
||||
categories: jekyll update
|
||||
---
|
||||
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
||||
|
||||
Jekyll requires blog post files to be named according to the following format:
|
||||
|
||||
`YEAR-MONTH-DAY-title.MARKUP`
|
||||
|
||||
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
||||
|
||||
Jekyll also offers powerful support for code snippets:
|
||||
|
||||
{% highlight ruby %}
|
||||
def print_hi(name)
|
||||
puts "Hi, #{name}"
|
||||
end
|
||||
print_hi('Tom')
|
||||
#=> prints 'Hi, Tom' to STDOUT.
|
||||
{% endhighlight %}
|
||||
|
||||
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
|
||||
|
||||
[jekyll-docs]: https://jekyllrb.com/docs/home
|
||||
[jekyll-gh]: https://github.com/jekyll/jekyll
|
||||
[jekyll-talk]: https://talk.jekyllrb.com/
|
@ -1,12 +1,70 @@
|
||||
* {
|
||||
font-family: BlenderProBook, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
max-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-y: scroll;
|
||||
font-family: BlenderProBook, sans-serif;
|
||||
}
|
||||
|
||||
main {
|
||||
height: calc(100vh - 124px);
|
||||
overflow-y: scroll;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
flex-grow: 1;
|
||||
font-family: BlenderProBook, sans-serif;
|
||||
}
|
||||
|
||||
footer {
|
||||
position: sticky !important;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background: var(--dark, #333);
|
||||
color: var(--white, #fff);
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
font-size: 14px;
|
||||
color: #ffcc00;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.breadcrumb a {
|
||||
color: #ff003c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.breadcrumb span {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.character-details {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.character-details-title {}
|
||||
|
||||
.character-details-value {
|
||||
margin: 0px 0px 0px auto;
|
||||
}
|
||||
|
||||
.mobile-tabs {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Ab max. 992px (iPad Hochkant und kleiner) ändert sich das Layout */
|
||||
@media screen and (max-width: 992px) {
|
||||
.desktop-only {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mobile-tabs {
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
54
assets/game-data/characters/carver.json
Normal file
54
assets/game-data/characters/carver.json
Normal file
@ -0,0 +1,54 @@
|
||||
{
|
||||
"name": "Carver Wright",
|
||||
"handle": "Crash",
|
||||
"age": 45,
|
||||
"roles": [
|
||||
{
|
||||
"name": "Tech",
|
||||
"rank": 4,
|
||||
"main": true,
|
||||
"skills": []
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"int": 7,
|
||||
"ref": 8,
|
||||
"dex": 7,
|
||||
"tech": 7,
|
||||
"cool": 5,
|
||||
"will": 4,
|
||||
"luck": 7,
|
||||
"move": 5,
|
||||
"body": 7,
|
||||
"emp": 5,
|
||||
"humanity": 58
|
||||
},
|
||||
"skills": [
|
||||
{ "name": "", "rank": 5 },
|
||||
{ "name": "", "rank": 3 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 6 },
|
||||
{ "name": "", "rank": 3 },
|
||||
{ "name": "Sprache: Streetslang", "rank": 2 },
|
||||
{ "name": "Sprache: Muttersprache", "rank": 4 },
|
||||
{ "name": "Ortskunde: zu Hause", "rank": 4 },
|
||||
{ "name": "", "rank": 3 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 4 },
|
||||
{ "name": "", "rank": 3 },
|
||||
{ "name": "", "rank": 5 },
|
||||
{ "name": "", "rank": 6 },
|
||||
{ "name": "", "rank": 5 },
|
||||
{ "name": "", "rank": 4 }
|
||||
],
|
||||
"housing": {
|
||||
"type": "Frachtcontainer",
|
||||
"location": "Night City",
|
||||
"owned": false
|
||||
},
|
||||
"lifestyle": "Kibble"
|
||||
}
|
53
assets/game-data/characters/chase.json
Normal file
53
assets/game-data/characters/chase.json
Normal file
@ -0,0 +1,53 @@
|
||||
{
|
||||
"name": "Chase Révolte",
|
||||
"handle": null,
|
||||
"age": 23,
|
||||
"roles": [
|
||||
{
|
||||
"name": "Netrunner",
|
||||
"rank": 4,
|
||||
"main": true
|
||||
}
|
||||
],
|
||||
"attributes": {
|
||||
"int": 6,
|
||||
"ref": 8,
|
||||
"dex": 8,
|
||||
"tech": 5,
|
||||
"cool": 7,
|
||||
"will": 4,
|
||||
"luck": 8,
|
||||
"move": 5,
|
||||
"body": 7,
|
||||
"emp": 4,
|
||||
"humanity": 46
|
||||
},
|
||||
"skills": [
|
||||
{ "name": "Concentration", "rank": 5 },
|
||||
{ "name": "Conceal/Reveal Object", "rank": 3 },
|
||||
{ "name": "Perception", "rank": 4 },
|
||||
{ "name": "Athletics", "rank": 4 },
|
||||
{ "name": "Stealth", "rank": 4 },
|
||||
{ "name": "Cryptography", "rank": 6 },
|
||||
{ "name": "Education", "rank": 3 },
|
||||
{ "name": "Sprache: Streetslang", "rank": 2 },
|
||||
{ "name": "Sprache: Muttersprache", "rank": 4 },
|
||||
{ "name": "Ortskunde: zu Hause", "rank": 2 },
|
||||
{ "name": "Brawling", "rank": 3 },
|
||||
{ "name": "Evasion", "rank": 4 },
|
||||
{ "name": "Handgun", "rank": 4 },
|
||||
{ "name": "Conversation", "rank": 4 },
|
||||
{ "name": "Human Perception", "rank": 4 },
|
||||
{ "name": "Persuasion", "rank": 3 },
|
||||
{ "name": "Basic Tech", "rank": 5 },
|
||||
{ "name": "Cybertech", "rank": 6 },
|
||||
{ "name": "Electronics/Security Tech", "rank": 5 },
|
||||
{ "name": "First Aid", "rank": 4 }
|
||||
],
|
||||
"housing": {
|
||||
"type": "Frachtcontainer",
|
||||
"location": "Night City",
|
||||
"owned": false
|
||||
},
|
||||
"lifestyle": "Kibble"
|
||||
}
|
46
assets/game-data/housings.json
Normal file
46
assets/game-data/housings.json
Normal file
@ -0,0 +1,46 @@
|
||||
{
|
||||
"Leben auf der Straße":{
|
||||
"rent": 0,
|
||||
"price": 0
|
||||
},
|
||||
"Leben auf der Straße in einem Fahrzeug": {
|
||||
"rent": 0,
|
||||
"price": 0
|
||||
},
|
||||
"Kastenhotel": {
|
||||
"rent": 500,
|
||||
"price": 0
|
||||
},
|
||||
"Frachtcontainer": {
|
||||
"rent": 1000,
|
||||
"price": 15000
|
||||
},
|
||||
"Atelierwohung": {
|
||||
"rent": 1500,
|
||||
"price": 25000
|
||||
},
|
||||
"Dreizimmerwohnung": {
|
||||
"rent": 2500,
|
||||
"price": 35000
|
||||
},
|
||||
"Konzernwohnung": {
|
||||
"rent": "bereitgestellt",
|
||||
"price": 0
|
||||
},
|
||||
"Hochwertige Wohnung": {
|
||||
"rent": 7500,
|
||||
"price": 85000
|
||||
},
|
||||
"Luxus-Penthouse": {
|
||||
"rent": 15000,
|
||||
"price": 150000
|
||||
},
|
||||
"Konzern-Beaverville-Haus": {
|
||||
"rent": "bereitgestellt",
|
||||
"price": 200000
|
||||
},
|
||||
"Konzern-Beaverville-McMansion": {
|
||||
"rent": "bereitgestellt",
|
||||
"price": 500000
|
||||
}
|
||||
}
|
18
assets/game-data/lifestyles.json
Normal file
18
assets/game-data/lifestyles.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"Kibble": {
|
||||
"cost": 100,
|
||||
"description": "Du isst furchtbares Essen, das du nicht einmal für einen Hund kaufen würdest, den du magst. Einmal im Monat kannst du dir einen Film oder einen Braindance ansehen."
|
||||
},
|
||||
"Generisches Fertigfutter": {
|
||||
"cost": 300,
|
||||
"description": "Du isst Essen, dass vergleichsweise besser schmeckt als Kibble. Du kannst es dir leisten jedes Wochenende in eine gute Bar zu gehen und dort zu feiern oder dich für gutes Essen in ein Restaurant setzen."
|
||||
},
|
||||
"Gutes Fertigfutter": {
|
||||
"cost": 600,
|
||||
"description": "Dein Essen hat die gleiche Qualität wie die meisten Restaurants, und obwohl es zwar künstlich ist, schmeckt es doch fast wie echtes Essen. Du besuchst hervorragende Bars und Restaurants, wenn du ausgehst. Einmal im Monat kannst du dir ein Live-Konzert oder ein Sportereignis ansehen."
|
||||
},
|
||||
"Frischfutter": {
|
||||
"cost": 1500,
|
||||
"description": "Du isst richtiges Essen. Einmal im Monat, wenn du müde und fern der Heimat bist, kannst du in ein nahegelegenes Hotel gehen und musst dir keine Sorgen ums Budget machen. Du besuchst eine VIP-Bar. Einmal im Monat kannst du in einem Weltklasse-Restaurant essen gehen."
|
||||
}
|
||||
}
|
0
assets/game-data/skills.json
Normal file
0
assets/game-data/skills.json
Normal file
BIN
assets/img/JumpstartEdgeRunners-2.png
Executable file
BIN
assets/img/JumpstartEdgeRunners-2.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
BIN
assets/img/Netrunner.png
Normal file
BIN
assets/img/Netrunner.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
assets/img/Rocker.png
Normal file
BIN
assets/img/Rocker.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
assets/img/Tech.png
Normal file
BIN
assets/img/Tech.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
assets/img/icon-192.png
Normal file
BIN
assets/img/icon-192.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.2 KiB |
BIN
assets/img/icon-512.png
Normal file
BIN
assets/img/icon-512.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
100
assets/js/service-worker.js.html
Normal file
100
assets/js/service-worker.js.html
Normal file
@ -0,0 +1,100 @@
|
||||
---
|
||||
permalink: /assets/js/service-worker.js
|
||||
---
|
||||
|
||||
const CACHE_NAME = "cyberpunk-cache-v1";
|
||||
const OFFLINE_URL = "/offline.html"; // Diese Seite wird angezeigt, wenn offline
|
||||
const BASE_PATH = "{{ "/" | relative_url }}";
|
||||
const SITEMAP_URL = BASE_PATH + "sitemap.json";
|
||||
|
||||
const urlsToCache = [
|
||||
BASE_PATH,
|
||||
BASE_PATH + "/offline.html",
|
||||
/* CSS-Dateien */
|
||||
BASE_PATH + "/assets/css/main.css",
|
||||
BASE_PATH + "/assets/css/normalize.css",
|
||||
BASE_PATH + "/assets/css/cyberpunk.css",
|
||||
/* JS-Dateien */
|
||||
BASE_PATH + "/assets/js/materialize.min.js",
|
||||
BASE_PATH + "/assets/js/service-worker.js",
|
||||
/* PWA-Dateien */
|
||||
BASE_PATH + "/assets/manifest.json",
|
||||
BASE_PATH + "/assets/img/icon-192.png",
|
||||
BASE_PATH + "/assets/img/icon-512.png",
|
||||
/* Bilder, Schriften, etc. */
|
||||
BASE_PATH + "/assets/fonts/BlenderProBook.woff2",
|
||||
BASE_PATH + "/assets/fonts/Cyberpunk.otf",
|
||||
BASE_PATH + "/assets/fonts/Oxanium.woff2",
|
||||
BASE_PATH + "/assets/img/Netrunner.png",
|
||||
BASE_PATH + "/assets/img/Tech.png",
|
||||
/* Game Data */
|
||||
BASE_PATH + "/assets/game-data/housings.json",
|
||||
BASE_PATH + "/assets/game-data/lifestyles.json",
|
||||
BASE_PATH + "/assets/game-data/skills.json",
|
||||
BASE_PATH + "/assets/game-data/characters/chase.json",
|
||||
BASE_PATH + "/assets/game-data/characters/carver.json",
|
||||
];
|
||||
|
||||
/**
|
||||
* Install-Event: Cache Standarddateien
|
||||
*/
|
||||
self.addEventListener("install", (event) => {
|
||||
event.waitUntil(
|
||||
caches.open(CACHE_NAME).then((cache) => {
|
||||
return cache.addAll(urlsToCache);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
/**
|
||||
* 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);
|
||||
});
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
/**
|
||||
* 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) => {
|
||||
return Promise.all(
|
||||
cacheNames.map((cache) => {
|
||||
if (cache !== CACHE_NAME) {
|
||||
return caches.delete(cache);
|
||||
}
|
||||
})
|
||||
);
|
||||
})
|
||||
);
|
||||
});
|
25
assets/manifest.json.html
Normal file
25
assets/manifest.json.html
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
permalink: /assets/manifest.json
|
||||
---
|
||||
|
||||
{
|
||||
"name": "{{ site.title }}",
|
||||
"short_name": "CPRED",
|
||||
"start_url": "{{ "/" | relative_url }}",
|
||||
"display": "standalone",
|
||||
"background_color": "#f8ef02",
|
||||
"theme_color": "#000000",
|
||||
"icons": [
|
||||
{
|
||||
"src": "{{ "/assets/img/icon-192.png" | relative_url }}",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "{{ "/assets/img/icon-512.png" | relative_url }}",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
12
offline.html
Normal file
12
offline.html
Normal file
@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Currently Offline
|
||||
permalink: /offline.html
|
||||
layout: page
|
||||
---
|
||||
|
||||
<div class="container">
|
||||
<h1>404</h1>
|
||||
|
||||
<p><strong>Du bist zur Zeit offline!</strong></p>
|
||||
<p>Sobald du wieder online bist wird diese Seite gecached.</p>
|
||||
</div>
|
11
sitemap.json.html
Normal file
11
sitemap.json.html
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
permalink: /sitemap.json
|
||||
---
|
||||
|
||||
{
|
||||
"pages": [
|
||||
{% for page in site.pages %}
|
||||
{ "url": "{{ page.url | relative_url }}" }{% unless forloop.last %},{% endunless %}
|
||||
{% endfor %}
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user