Compare commits
1 commit
7e5a65bc14
...
9040803983
Author | SHA1 | Date | |
---|---|---|---|
Renovate | 9040803983 |
|
@ -1,23 +0,0 @@
|
|||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
cleanup-staging:
|
||||
runs-on: docker
|
||||
container:
|
||||
image: code.forgejo.org/oci/node:20-bookworm
|
||||
steps:
|
||||
- name: Pipeline info PR
|
||||
run: |
|
||||
echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}"
|
||||
|
||||
- name: Staging Deployment - Prepare keys
|
||||
run: |
|
||||
echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv
|
||||
chmod 400 deploykey.priv
|
||||
echo "${{ secrets.SSH_KNOWN_HOSTS_FILE }}" > ./known_hosts
|
||||
- name: Staging Deployment - Remove PR from staging
|
||||
run: |
|
||||
ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts' ht-ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de -t "rm -r /var/www/staging.hackertours.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/"
|
|
@ -1,80 +0,0 @@
|
|||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
TZ: Europe/Berlin
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: docker
|
||||
container:
|
||||
image: docker.io/hugomods/hugo:latest
|
||||
steps:
|
||||
- name: Pipeline info
|
||||
run: |
|
||||
echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}"
|
||||
|
||||
- name: Install packages
|
||||
run: |
|
||||
apk update
|
||||
# For CI actions.
|
||||
apk add nodejs-current
|
||||
# For website build.
|
||||
apk add tzdata coreutils curl jq git
|
||||
# For uploading.
|
||||
apk add rsync openssh
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # pull full history for page lastmod by git commit date
|
||||
submodules: recursive
|
||||
|
||||
- name: Patch baseURL (staging only)
|
||||
if: github.ref_name != 'main'
|
||||
run: |
|
||||
sed -i "s#baseURL: 'https://hackertours.hamburg.ccc.de/'#baseURL: 'https://staging.hackertours.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/'#" hugo.yaml
|
||||
|
||||
- name: Build website (prod)
|
||||
if: (github.event_name == 'push' || github.event_name == 'schedule') && github.ref_name == 'main'
|
||||
run: |
|
||||
hugo
|
||||
- name: Build website (staging)
|
||||
if: github.ref_name != 'main'
|
||||
run: |
|
||||
hugo --buildFuture --buildDrafts
|
||||
|
||||
- name: Deploy - Prepare keys
|
||||
if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'schedule'
|
||||
run: |
|
||||
echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv
|
||||
chmod 400 deploykey.priv
|
||||
echo "${{ secrets.SSH_KNOWN_HOSTS_FILE }}" > ./known_hosts
|
||||
|
||||
- name: Deploy - Upload PR to staging
|
||||
if: github.event_name == 'pull_request'
|
||||
run: |
|
||||
echo "Deploying to staging.hamburg.ccc.de/pr${{ github.event.pull_request.number }}"
|
||||
rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" public/ ht-ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de:/var/www/staging.hackertours.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/
|
||||
- name: Deploy - Add comment to PR with staging URL
|
||||
if: github.event_name == 'pull_request' && github.event.action == 'opened'
|
||||
run: |
|
||||
curl \
|
||||
-X POST \
|
||||
${{ github.event.pull_request.base.repo.url }}/issues/${{ github.event.pull_request.number }}/comments \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: token $GITHUB_TOKEN" \
|
||||
--data '{ "body": "You can view your changes at https://staging.hackertours.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/" }'
|
||||
|
||||
- name: Deploy - Upload to prod
|
||||
if: (github.event_name == 'push' || github.event_name == 'schedule') && github.ref_name == 'main'
|
||||
run: |
|
||||
rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" public/ ht-ccchh-website-deploy@public-web-static-intern.hamburg.ccc.de:/var/www/hackertours.hamburg.ccc.de/
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: github.event_name == 'pull_request'
|
||||
with:
|
||||
name: website-build
|
||||
path: public/
|
36
.forgejo/workflows/image.yaml
Normal file
|
@ -0,0 +1,36 @@
|
|||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout project
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Run hugo
|
||||
run: docker run --rm -it -v ${{ github.workspace }}:/src docker.io/hugomods/hugo:latest hugo
|
||||
- name: Compute Image Metadata
|
||||
uses: docker/metadata-action@v5
|
||||
id: metadata
|
||||
with:
|
||||
images: git.hamburg.ccc.de/${{ github.repository }}/hackertours
|
||||
tags: |
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
- name: Log in to Image Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: git.hamburg.ccc.de
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.REPO_TOKEN }}
|
||||
- name: Build image with kaniko
|
||||
uses: https://github.com/int128/kaniko-action@v1
|
||||
with:
|
||||
push: true
|
||||
tags: ${{ steps.metadata.outputs.tags }}
|
||||
labels: ${{ steps.metadata.outputs.labels }}
|
||||
cache: true
|
||||
cache-repository: git.hamburg.ccc.de/${{ github.repository }}/cache
|
|
@ -1,10 +1,3 @@
|
|||
.header__intro_headline {
|
||||
font: bold var(--fs-xxl) "Arial";
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.header__intro_text {
|
||||
font-family: var(--ff-body)
|
||||
}
|
||||
table, th, td {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
|
|
@ -4,22 +4,13 @@ menus:
|
|||
main:
|
||||
name: Home
|
||||
weight: 1
|
||||
params:
|
||||
headline: Willkommen bei den Hamburger Hackertours – euer Anbieter für Sightseeing für Technik-Enthusiasten!
|
||||
intro: |
|
||||
Zum Congress und zum Easterhegg organisiert der CCCHH Touren zu interessanten Orten in und um Hamburg. Hier findet ihr Informationen zu aktuellen und früheren Veranstaltungen!
|
||||
logowidth: 500
|
||||
logoheight: 500
|
||||
cascade:
|
||||
params:
|
||||
intro: Der CCCHH zeigt euch Hamburg
|
||||
---
|
||||
|
||||
## Willkommen zu den Hackertours – euer Anbieter für Sightseeing für Technik-Enthusiasten!
|
||||
## Willkommen zu den HHackertours – euer Anbieter für Sightseeing für Technik-Enthusiasten!
|
||||
|
||||
Was sind die Hackertours? Das Hamburger Team hat spannende Orte in Hamburg gefunden, die euch für ein paar Stunden aus den Katakomben entführen, und neue, interessante Dinge erfahren lassen. [Hier erklären wir euch, wie genau das funktioniert]({{< relref "posts/faq" >}})!
|
||||
|
||||
**[Alle Touren zum 38c3]({{< relref "38c3" >}})** – **[Direkt zum Shop](https://tickets.hamburg.ccc.de/hackertours/38c3/)**
|
||||
**[Alle Touren zum 38c3]({{< relref "38c3" >}})** – **[Direkt zum Shop](https://hackertours.hamburg.ccc.de/hackertours/38c3/)**
|
||||
|
||||
|
||||
Hackertours-Desk: DECT 8687 "TOUR", +494057308308687, Foyer X an der großen Uhr
|
||||
|
|
|
@ -3,6 +3,6 @@ title: 'So long and thanks for all the fish!'
|
|||
date: 2023-12-31T09:00:00+01:00
|
||||
---
|
||||
|
||||
Danke, das ihr mit Hackertours gereist seid! Wir hoffen, euch habe die Touren gefallen, und wir freuen uns darauf, zum 38c3 neue Touren anbieten zu können!
|
||||
Danke, das ihr mit Hackertours gereist seid! Wir hoffen, euch habe die Touren gefallen, und wir freuen uns darauf, zum 38C3 neue Touren anbieten zu können!
|
||||
|
||||
Wenn ihr in Kontakt bleiben möchtet, folgt uns auf Mastodon [@hackertours@chaos.social](https://chaos.social/@hackertours)!
|
||||
|
|
|
@ -26,13 +26,13 @@ Eine Gruppe von Menschen rund um den CCCHH hat in den vergangenen Wochen keine M
|
|||
|
||||
### Welche Touren gibt es?
|
||||
|
||||
**[Alle Touren zum 38c3]({{< relref "38c3" >}})** – **[Direkt zum Shop](https://tickets.hamburg.ccc.de/hackertours/38c3/)**
|
||||
**[Alle Touren zum 38c3]({{< relref "38c3" >}})** – **[Direkt zum Shop](https://hackertours.hamburg.ccc.de/hackertours/38c3/)**
|
||||
|
||||
### Brauche ich ein Ticket?
|
||||
|
||||
Ja, unbedingt. Die Touren haben nur begrenzte Kapazität, und damit wir das gut planen und durchführen können, braucht ihr zur Teilnahme ein Ticket.
|
||||
|
||||
Bitte klickt euch das gewünschte **[Ticket im Ticketshop](https://tickets.hamburg.ccc.de/hackertours/38c3/)** bzw. setzt euch dort auf die Warteliste!
|
||||
Bitte klickt euch das gewünschte **[Ticket im Ticketshop](https://hackertours.hamburg.ccc.de/hackertours/38c3/)** bzw. setzt euch dort auf die Warteliste!
|
||||
|
||||
### Wann treffen wir uns und wo?
|
||||
|
||||
|
@ -64,7 +64,7 @@ Einige der Touren verlangen ein Eintrittsgeld. Um die Durchführung der Touren s
|
|||
|
||||
Damit das sicher funktioniert, müsst ihr **spätestens am 23.12. überwiesen haben**. Wenn ihr Tickets bucht, zeigt euch das System an, wie viele Tage ihr Zeit habt, zu bezahlen. Wenn die Tickets bis zu dieser Frist nicht bezahlt sind, geben wir sie zurück in den Verkauf.
|
||||
|
||||
Wenn ihr euer Ticket im [Ticket Shop](https://tickets.hamburg.ccc.de/hackertours/38c3/) kauft, erhaltet ihr eine Email mit den Details zur Überweisung: Kontonummer und ein Verwendungszweck, der eure Zahlung eurem Ticket zuordnet. Bitte folgt den Anweisungen in dieser Email. Wenn ihr aus irgendeinem Grund die Email nicht habt, aber euren Code kennt, dann könnt ihr diese Daten verwenden:
|
||||
Wenn ihr euer Ticket im [Ticket Shop](https://hackertours.hamburg.ccc.de/hackertours/38c3/) kauft, erhaltet ihr eine Email mit den Details zur Überweisung: Kontonummer und ein Verwendungszweck, der eure Zahlung eurem Ticket zuordnet. Bitte folgt den Anweisungen in dieser Email. Wenn ihr aus irgendeinem Grund die Email nicht habt, aber euren Code kennt, dann könnt ihr diese Daten verwenden:
|
||||
* Verwendungszweck: Der Code für euer Ticket
|
||||
* IBAN: DE69 8306 5408 0105 2955 05
|
||||
* BIC: GENODEF1SLR
|
||||
|
|
|
@ -4,22 +4,13 @@ menus:
|
|||
main:
|
||||
name: Home
|
||||
weight: 1
|
||||
params:
|
||||
headline: Welcome to Hackertours – your provider of sightseeing tours for technical enthusiasts!
|
||||
intro: |
|
||||
For Congress and for Easterhegg CCC Hamburg is organizing tours to interesting places in and around Hamburg. Here you will find infos about current and past events!
|
||||
logowidth: 500
|
||||
logoheight: 500
|
||||
cascade:
|
||||
params:
|
||||
intro: CCCHH shows you around Hamburg!
|
||||
---
|
||||
|
||||
## Welcome to Hackertours – your provider of sightseeing tours for technical enthusiasts!
|
||||
## Welcome to HHackertours – your provider of sightseeing tours for technical enthusiasts!
|
||||
|
||||
What are the Hackertours? The Hamburg team has sought out interesting locations in the city that will take you away from the catacombs of the Congress Center for a few hours, letting you experience exiting new things.
|
||||
|
||||
**[All Tours]({{< relref "38c3" >}})** – **[Directly to the Ticket Shop](https://tickets.hamburg.ccc.de/hackertours/37c3/)**
|
||||
**[All Tours]({{< relref "38c3" >}})** – **[Directly to the Ticket Shop](https://hackertours.hamburg.ccc.de/hackertours/37c3/)**
|
||||
|
||||
Hackertours Desk: DECT 8687 "TOUR", +494057308308687, Foyer X next to the big clock
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@ title: 'So long and thanks for all the fish!'
|
|||
date: 2023-12-31T09:00:00+01:00
|
||||
---
|
||||
|
||||
Thank you for traveling with Hackertours this Congress! We hope you enjoyed your tours, and we are looking forward to offering new tours at 38c3!
|
||||
Thank you for traveling with Hackertours this Congress! We hope you enjoyed your tours, and we are looking forward to offering new tours at 38C3!
|
||||
|
||||
If you would like to stay in touch, please follow us on Mastodon [@hackertours@chaos.social](https://chaos.social/@hackertours)!
|
|
@ -29,7 +29,7 @@ A group of people from CCCHH hat worked tirelessly the past few weeks to find in
|
|||
|
||||
Yes, definitely. The tours have limited capacity only, so we need you to get a ticket to participate so we can plan and run these properly.
|
||||
|
||||
Please get your desired **[ticket in the Ticket Shop](https://tickets.hamburg.ccc.de/hackertours/38c3/)** or place yourself on the waiting list!
|
||||
Please get your desired **[ticket in the Ticket Shop](https://hackertours.hamburg.ccc.de/hackertours/38c3/)** or place yourself on the waiting list!
|
||||
|
||||
### Where and when do we meet up?
|
||||
|
||||
|
@ -63,7 +63,7 @@ Some of the tours charge an entrance fee. To make it as easy as possible for eve
|
|||
|
||||
For this to work, you will need to pay your ticket in advance. Make sure to post your **bank transfer on Dec 23st the latest**. When you book tickets, the system will show you how many days you have to pay. If you don't pay in time, we will return the tickets to the shop for sale to somebody else.
|
||||
|
||||
When you purchase your tickets in the [Ticket Shop](https://tickets.hamburg.ccc.de/hackertours/38c3/), you will receive an email with the bank account details and a custom "note to payee" value to identify your purchase. Please follow the instructions in that email. If for some reason you don't have that email, but you do have your code, you can use this information:
|
||||
When you purchase your tickets in the [Ticket Shop](https://hackertours.hamburg.ccc.de/hackertours/38c3/), you will receive an email with the bank account details and a custom "note to payee" value to identify your purchase. Please follow the instructions in that email. If for some reason you don't have that email, but you do have your code, you can use this information:
|
||||
* Note to Payee: the purchase code for your ticket
|
||||
* IBAN: DE69 8306 5408 0105 2955 05
|
||||
* BIC: GENODEF1SLR
|
||||
|
|
|
@ -7,14 +7,11 @@ theme: "zen"
|
|||
|
||||
#https://themes.gohugo.io/themes/hugo-theme-zen/#configuration
|
||||
params:
|
||||
contact: "hackertours@hamburg.ccc.de"
|
||||
contact: "hhackertours@lists.hamburg.ccc.de"
|
||||
copyright: "[CCC Hansestadt Hamburg e.V.](https://hamburg.ccc.de) ist nur der Vermittler, für die Touren sind die jeweiligen Veranstalter verantwortlich"
|
||||
description: "37c3 Hackertours"
|
||||
footer: "[Impressum & Datenschutz](https://hamburg.ccc.de/imprint/) – [Ticket Shop](https://tickets.hamburg.ccc.de/hackertours/37c3/)"
|
||||
logo: true
|
||||
logoPath: img/hackertours-2024-color.svg
|
||||
logoHeight: 100
|
||||
logoWidth: 100
|
||||
footer: "[Impressum & Datenschutz](https://hamburg.ccc.de/imprint/) – [Ticket Shop](https://hackertours.hamburg.ccc.de/hackertours/37c3/)"
|
||||
logo: false
|
||||
mainSections:
|
||||
- posts
|
||||
mobileMenu: true
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="nojs" lang="{{ site.LanguageCode | default site.Language.Lang }}" dir="{{ site.Language.LanguageDirection | default "ltr" }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>{{ block "title" . }}{{ .Title }} – {{ site.Title }}{{ end }}</title>
|
||||
{{ partial "meta.html" . }}
|
||||
{{ partialCached "styles.html" . }}
|
||||
{{ partial "meta_json_ld.html" . }}
|
||||
{{ partial "scripts.html" . }}
|
||||
{{ partial "math.html" . }}
|
||||
{{ partialCached "tracking.html" . }}
|
||||
{{ if templates.Exists "partials/head.html" -}}
|
||||
{{ partial "head.html" . }}
|
||||
{{ end -}}
|
||||
{{ block "head" . }}{{ end }}
|
||||
</head>
|
||||
|
||||
<body class="{{ if .IsPage }}single-page{{ else }}list-page{{ end }}{{ if .IsHome }} front{{ end }}{{ with $.Param "bodyclass" }} {{ . }}{{ end }}">
|
||||
<div class="page layout__page{{ if $.Param "sidebar" }} layout__sidebar-second{{ end }}">
|
||||
<header class="header layout__header">
|
||||
{{ if $.Param "logo" | default true -}}
|
||||
<a href="{{ site.Home.RelPermalink }}" title="Home" rel="home" class="header__logo">
|
||||
<img src="{{ with $.Param "logopath" }}{{ . | relURL }}{{ else }}{{ "images/logo.png" | relURL }}{{ end }}"{{ with $.Param "logowidth" }} width="{{ . }}"{{ end }}{{ with $.Param "logoheight" }} height="{{ . }}"{{ end }} alt="Home" class="header__logo-image">
|
||||
</a>
|
||||
{{ end -}}
|
||||
<div class="header__intro">
|
||||
<div class="header__intro_headline"><a href="{{ site.Home.RelPermalink }}" title="Home" class="header__site-link" rel="home"><span>{{ site.Title }}</span></a></div>
|
||||
<div class="header__intro_text">{{ .Param "intro" }}</div>
|
||||
</div>
|
||||
<div class="region header__region">
|
||||
{{ if hugo.IsMultilingual }}{{ partial "language-selector.html" . }}{{ end -}}
|
||||
{{ if $.Param "menuinheader" }}{{ partial "menu.html" . }}{{ end -}}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{ if not ($.Param "menuinheader") }}{{ partial "menu.html" . }}{{ end -}}
|
||||
{{ if $.Param "mobilemenu" }}{{ partial "mobilemenu.html" . }}{{ end -}}
|
||||
|
||||
{{ block "main" . }}{{ end }}
|
||||
|
||||
{{ if $.Param "sidebar" }}{{ partial "sidebar.html" . }}{{ end -}}
|
||||
|
||||
<footer class="footer layout__footer mt--l">
|
||||
{{ if templates.Exists "partials/footer.html" -}}
|
||||
{{ partial "footer.html" . }}
|
||||
{{ else -}}
|
||||
{{ if $.Param "feedlinks" }}{{ partial "feedlinks.html" . }}{{ end -}}
|
||||
<p>{{ with $.Param "copyright" }}{{ . | markdownify }}{{ else }}<span>© {{ site.Title }}</span>{{ end }}</p>
|
||||
{{ with $.Param "footer" }}<p>{{ . | markdownify }}</p>{{ end }}
|
||||
{{ if $.Param "poweredby" }}<p>Powered by <a href="https://gohugo.io/">Hugo</a> and the <a href="https://github.com/frjo/hugo-theme-zen">Zen theme</a>.</p>{{ end }}
|
||||
{{ end -}}
|
||||
</footer>
|
||||
|
||||
{{ if $.Param "cookieconsent" }}{{ partialCached "cookieconsent.html" . }}{{ end -}}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,60 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="nojs" lang="{{ site.LanguageCode | default site.Language.Lang }}" dir="{{ site.Language.LanguageDirection | default "ltr" }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<title>{{ block "title" . }}{{ .Title }} – {{ site.Title }}{{ end }}</title>
|
||||
{{ partial "meta.html" . }}
|
||||
{{ partialCached "styles.html" . }}
|
||||
{{ partial "meta_json_ld.html" . }}
|
||||
{{ partial "scripts.html" . }}
|
||||
{{ partial "math.html" . }}
|
||||
{{ partialCached "tracking.html" . }}
|
||||
{{ if templates.Exists "partials/head.html" -}}
|
||||
{{ partial "head.html" . }}
|
||||
{{ end -}}
|
||||
{{ block "head" . }}{{ end }}
|
||||
</head>
|
||||
|
||||
<body class="{{ if .IsPage }}single-page{{ else }}list-page{{ end }}{{ if .IsHome }} front{{ end }}{{ with $.Param "bodyclass" }} {{ . }}{{ end }}">
|
||||
<div class="page layout__page{{ if $.Param "sidebar" }} layout__sidebar-second{{ end }}">
|
||||
<header class="header layout__header">
|
||||
{{ if $.Param "logo" | default true -}}
|
||||
<a href="{{ site.Home.RelPermalink }}" title="Home" rel="home" class="header__logo">
|
||||
<img src="{{ with $.Param "logopath" }}{{ . | relURL }}{{ else }}{{ "images/logo.png" | relURL }}{{ end }}"{{ with $.Param "logowidth" }} width="{{ . }}"{{ end }}{{ with $.Param "logoheight" }} height="{{ . }}"{{ end }} alt="Home" class="header__logo-image">
|
||||
</a>
|
||||
{{ end -}}
|
||||
<div class="header__intro">
|
||||
<div class="header__intro_headline">{{ .Param "headline" }}</div>
|
||||
{{ if .Param "intro" }}
|
||||
<div class="header__intro_text">{{ .Param "intro" }}</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="region header__region">
|
||||
{{ if hugo.IsMultilingual }}{{ partial "language-selector.html" . }}{{ end -}}
|
||||
{{ if $.Param "menuinheader" }}{{ partial "menu.html" . }}{{ end -}}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{{ if not ($.Param "menuinheader") }}{{ partial "menu.html" . }}{{ end -}}
|
||||
{{ if $.Param "mobilemenu" }}{{ partial "mobilemenu.html" . }}{{ end -}}
|
||||
|
||||
{{ block "main" . }}{{ end }}
|
||||
|
||||
{{ if $.Param "sidebar" }}{{ partial "sidebar.html" . }}{{ end -}}
|
||||
|
||||
<footer class="footer layout__footer mt--l">
|
||||
{{ if templates.Exists "partials/footer.html" -}}
|
||||
{{ partial "footer.html" . }}
|
||||
{{ else -}}
|
||||
{{ if $.Param "feedlinks" }}{{ partial "feedlinks.html" . }}{{ end -}}
|
||||
<p>{{ with $.Param "copyright" }}{{ . | markdownify }}{{ else }}<span>© {{ site.Title }}</span>{{ end }}</p>
|
||||
{{ with $.Param "footer" }}<p>{{ . | markdownify }}</p>{{ end }}
|
||||
{{ if $.Param "poweredby" }}<p>Powered by <a href="https://gohugo.io/">Hugo</a> and the <a href="https://github.com/frjo/hugo-theme-zen">Zen theme</a>.</p>{{ end }}
|
||||
{{ end -}}
|
||||
</footer>
|
||||
|
||||
{{ if $.Param "cookieconsent" }}{{ partialCached "cookieconsent.html" . }}{{ end -}}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 15 KiB |
|
@ -1,3 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev/svgjs" width="32" height="32" viewBox="0 0 32 32"><image width="32" height="32" xlink:href="data:image/png;base64,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"></image><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
|
||||
@media (prefers-color-scheme: dark) { :root { filter: none; } }
|
||||
</style></svg>
|
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 12 KiB |
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"name": "hacker.tours",
|
||||
"short_name": "hacker.tours",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/web-app-manifest-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
},
|
||||
{
|
||||
"src": "/web-app-manifest-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png",
|
||||
"purpose": "maskable"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 250 KiB |