Compare commits
5 commits
44c0c5b274
...
8745fcccd0
Author | SHA1 | Date | |
---|---|---|---|
![]() |
8745fcccd0 | ||
![]() |
1e245cf6cd | ||
![]() |
6281666093 | ||
![]() |
26c9a2e0d4 | ||
![]() |
27e009ab0b |
67
assets/js/clubstatus.js
Normal file
67
assets/js/clubstatus.js
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
const spaceapiUrl = "https://spaceapi.hamburg.ccc.de"
|
||||||
|
const interval_ms = 60000
|
||||||
|
|
||||||
|
console.log("clubstatus.js geladen!"); /* TODO: ENTFERNEN */
|
||||||
|
|
||||||
|
function timeDistanceDE(pastDate) {
|
||||||
|
const seconds = Math.floor((Date.now() - pastDate.getTime()) / 1000)
|
||||||
|
const minutes = Math.floor(seconds / 60)
|
||||||
|
const hours = Math.floor(minutes / 60)
|
||||||
|
const days = Math.floor(hours / 24)
|
||||||
|
|
||||||
|
if (days = 1) return `since ${days}d`
|
||||||
|
if (days > 1) return `since ${days}d`
|
||||||
|
if (hours = 1) return `since ${hours}h`
|
||||||
|
if (hours > 1) return `since ${hours}h`
|
||||||
|
if (minutes = 1) return `since ${minutes}min`
|
||||||
|
if (minutes > 1) return `since ${minutes}min`
|
||||||
|
return `gerade eben`
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateRoomState(openState, lastChangeTimestamp) {
|
||||||
|
const roomstate = document.querySelector('#clubstatus-badge')
|
||||||
|
const statusItem = roomstate.querySelector(".state")
|
||||||
|
const durationItem = roomstate.querySelector(".duration")
|
||||||
|
|
||||||
|
if (!statusItem || !durationItem) return
|
||||||
|
|
||||||
|
roomstate.classList.remove("open", "closed", "unknown")
|
||||||
|
statusItem.classList.remove("open", "closed", "unknown")
|
||||||
|
|
||||||
|
if (openState === null || lastChangeTimestamp === null) {
|
||||||
|
statusItem.textContent = "unbekannt"
|
||||||
|
statusItem.classList.add("unknown")
|
||||||
|
durationItem.textContent = "(since unbekannt)"
|
||||||
|
} else {
|
||||||
|
const changeDate = new Date(lastChangeTimestamp * 1000)
|
||||||
|
const sinceText = timeDistanceDE(changeDate)
|
||||||
|
|
||||||
|
if (openState) {
|
||||||
|
statusItem.textContent = "open"
|
||||||
|
statusItem.classList.add("open")
|
||||||
|
} else {
|
||||||
|
statusItem.textContent = "closed"
|
||||||
|
statusItem.classList.add("closed")
|
||||||
|
}
|
||||||
|
|
||||||
|
durationItem.textContent = `(${sinceText})`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetchRoomState() {
|
||||||
|
fetch(spaceapiUrl)
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
const openState = data?.state?.open ?? null
|
||||||
|
const lastChange = data?.state?.lastchange ?? null
|
||||||
|
updateRoomState(openState, lastChange)
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error("Fehler beim Laden der SpaceAPI:", err)
|
||||||
|
updateRoomState(null, null)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialer Abruf + dann regelmäßig
|
||||||
|
fetchRoomState()
|
||||||
|
setInterval(fetchRoomState, interval_ms)
|
|
@ -1,92 +1,89 @@
|
||||||
theme = 'blowfish'
|
theme = "blowfish"
|
||||||
baseURL = 'https://oururl.de/'
|
baseURL = "https://oururl.de/"
|
||||||
defaultContentLanguage = 'de'
|
defaultContentLanguage = "de"
|
||||||
relativeURLs = true
|
relativeURLs = true
|
||||||
canonifyURLs = true
|
canonifyURLs = true
|
||||||
|
|
||||||
pluralizeListTitles = false
|
pluralizeListTitles = false
|
||||||
|
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
summaryLength = 0
|
summaryLength = 0
|
||||||
|
|
||||||
buildDrafts = false
|
buildDrafts = false
|
||||||
buildFuture = false
|
buildFuture = false
|
||||||
|
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
|
|
||||||
[pagination]
|
[pagination]
|
||||||
pagerSize = 100
|
pagerSize = 100
|
||||||
|
|
||||||
[imaging]
|
[imaging]
|
||||||
anchor = 'Center'
|
anchor = "Center"
|
||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tag = 'tags'
|
tag = "tags"
|
||||||
category = 'categories'
|
category = "categories"
|
||||||
author = 'authors'
|
author = "authors"
|
||||||
series = 'series'
|
series = "series"
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
changefreq = 'daily'
|
changefreq = "daily"
|
||||||
filename = 'sitemap.xml'
|
filename = "sitemap.xml"
|
||||||
priority = 0.5
|
priority = 0.5
|
||||||
|
|
||||||
[permalinks]
|
[permalinks]
|
||||||
post = '/post/:year/:month/:day/:title/'
|
post = "/post/:year/:month/:day/:title/"
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ['html', 'rss', 'json']
|
home = ["html", "rss", "json"]
|
||||||
section = ['html', 'Calendar', 'rss', 'xml']
|
section = ["html", "Calendar", "rss", "xml"]
|
||||||
page = ['html', 'Calendar']
|
page = ["html", "Calendar"]
|
||||||
|
|
||||||
# Output Formats Configuration
|
# Output Formats Configuration
|
||||||
[outputFormats.Calendar]
|
[outputFormats.Calendar]
|
||||||
mediaType = 'text/calendar'
|
mediaType = "text/calendar"
|
||||||
baseName = 'index'
|
baseName = "index"
|
||||||
isPlainText = true
|
isPlainText = true
|
||||||
notAlternative = true
|
notAlternative = true
|
||||||
|
|
||||||
[outputFormats.XML]
|
[outputFormats.XML]
|
||||||
mediaType = 'application/xml'
|
mediaType = "application/xml"
|
||||||
baseName = 'index'
|
baseName = "index"
|
||||||
isPlainText = true
|
isPlainText = true
|
||||||
|
|
||||||
[outputFormats.RSS]
|
[outputFormats.RSS]
|
||||||
mediaType = 'application/rss+xml'
|
mediaType = "application/rss+xml"
|
||||||
|
|
||||||
# Media Types Configuration
|
# Media Types Configuration
|
||||||
[mediaTypes]
|
[mediaTypes]
|
||||||
[mediaTypes.'text/calendar']
|
[mediaTypes.'text/calendar']
|
||||||
suffixes = ['ics']
|
suffixes = ["ics"]
|
||||||
[mediaTypes.'application/rss+xml']
|
|
||||||
suffixes = ['xml', 'rss']
|
[mediaTypes.'application/rss+xml']
|
||||||
|
suffixes = ["xml", "rss"]
|
||||||
|
|
||||||
[related]
|
[related]
|
||||||
threshold = 0
|
threshold = 0
|
||||||
toLower = false
|
toLower = false
|
||||||
|
|
||||||
[[related.indices]]
|
[[related.indices]]
|
||||||
name = 'tags'
|
name = "tags"
|
||||||
weight = 100
|
weight = 100
|
||||||
|
|
||||||
[[related.indices]]
|
[[related.indices]]
|
||||||
name = 'categories'
|
name = "categories"
|
||||||
weight = 100
|
weight = 100
|
||||||
|
|
||||||
[[related.indices]]
|
[[related.indices]]
|
||||||
name = 'series'
|
name = "series"
|
||||||
weight = 50
|
weight = 50
|
||||||
|
|
||||||
[[related.indices]]
|
[[related.indices]]
|
||||||
name = 'authors'
|
name = "authors"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[related.indices]]
|
[[related.indices]]
|
||||||
name = 'date'
|
name = "date"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[related.indices]]
|
[[related.indices]]
|
||||||
applyFilter = false
|
applyFilter = false
|
||||||
name = 'fragmentrefs'
|
name = "fragmentrefs"
|
||||||
type = 'fragments'
|
type = "fragments"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
|
@ -5,28 +5,28 @@ weight = 1
|
||||||
title = "Chaos Computer Club Berlin"
|
title = "Chaos Computer Club Berlin"
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
displayName = "DE"
|
displayName = "DE"
|
||||||
isoCode = "de"
|
isoCode = "de"
|
||||||
rtl = false
|
rtl = false
|
||||||
dateFormat = "January 2, 2006"
|
dateFormat = "January 2, 2006"
|
||||||
DateForm = "30.12.2006"
|
DateForm = "30.12.2006"
|
||||||
logo = "img/logo.png"
|
logo = "img/logo.png"
|
||||||
# secondaryLogo = "img/avatar-CCCB-Logo.png"
|
# secondaryLogo = "img/avatar-CCCB-Logo.png"
|
||||||
description = "Willkommen! Wir sind ein Erfa-Kreis des Chaos Computer Club e.V. und die örtliche Niederlassung des CCC in Berlin."
|
description = "Willkommen! Wir sind ein Erfa-Kreis des Chaos Computer Club e.V. und die örtliche Niederlassung des CCC in Berlin."
|
||||||
copyright = "CCC-BY"
|
copyright = "CCC-BY"
|
||||||
selfHosted = true
|
selfHosted = true
|
||||||
mainSections = ["post", "datengarten"]
|
mainSections = ["post", "datengarten"]
|
||||||
|
|
||||||
[params.author]
|
[params.author]
|
||||||
# name = "Your name here"
|
# name = "Your name here"
|
||||||
email = "mail2025@berlin.ccc.de"
|
email = "mail2025@berlin.ccc.de"
|
||||||
image = "img/logo.png"
|
image = "img/logo.png"
|
||||||
# imageQuality = 96
|
# imageQuality = 96
|
||||||
headline = "Willkommen! Wir sind ein Erfa-Kreis des Chaos Computer Club e.V. und die örtliche Niederlassung des CCC in Berlin."
|
headline = "Willkommen! Wir sind ein Erfa-Kreis des Chaos Computer Club e.V. und die örtliche Niederlassung des CCC in Berlin."
|
||||||
# bio = "A little bit about you"
|
# bio = "A little bit about you"
|
||||||
links = [
|
links = [
|
||||||
{ mastodon = "https://chaos.social/@clubdiscordia" },
|
{ mastodon = "https://chaos.social/@clubdiscordia" },
|
||||||
{ forgejo = "https://git.berlin.ccc.de/explore/repos" },
|
{ forgejo = "https://git.berlin.ccc.de/explore/repos" },
|
||||||
{ email = "mailto:mail2025@berlin.ccc.de" },
|
{ email = "mailto:mail2025@berlin.ccc.de" },
|
||||||
{ github = "https://github.com/cccb/" },
|
{ github = "https://github.com/cccb/" },
|
||||||
]
|
]
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
|
|
||||||
[goldmark]
|
[goldmark]
|
||||||
[goldmark.renderer]
|
[goldmark.renderer]
|
||||||
unsafe = true
|
unsafe = true
|
||||||
|
|
||||||
[highlight]
|
[highlight]
|
||||||
noClasses = false
|
noClasses = false
|
||||||
|
|
||||||
[tableOfContents]
|
[tableOfContents]
|
||||||
startLevel = 1
|
startLevel = 1
|
||||||
endLevel = 5
|
endLevel = 5
|
||||||
|
|
|
@ -10,51 +10,51 @@
|
||||||
# overridden by providing a weight value. The menu will then be
|
# overridden by providing a weight value. The menu will then be
|
||||||
# ordered by weight from lowest to highest.
|
# ordered by weight from lowest to highest.
|
||||||
|
|
||||||
#[[main]]
|
# [[main]]
|
||||||
# name = "Blog"
|
# name = "Blog"
|
||||||
# pageRef = "posts"
|
# pageRef = "posts"
|
||||||
# weight = 10
|
# weight = 10
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Verein"
|
name = "Verein"
|
||||||
pageRef = "verein"
|
pageRef = "verein"
|
||||||
weight = 200
|
weight = 200
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Veranstaltungen"
|
name = "Veranstaltungen"
|
||||||
pageRef = "veranstaltungen"
|
pageRef = "veranstaltungen"
|
||||||
weight = 300
|
weight = 300
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "Mitgliedschaft"
|
name = "Mitgliedschaft"
|
||||||
pageRef = "mitgliedschaft"
|
pageRef = "mitgliedschaft"
|
||||||
weight = 400
|
weight = 400
|
||||||
|
|
||||||
[[main]]
|
[[main]]
|
||||||
name = "News"
|
name = "News"
|
||||||
pageRef = "post"
|
pageRef = "post"
|
||||||
weight = 500
|
weight = 500
|
||||||
|
|
||||||
# -- Footer Menu --
|
# -- Footer Menu --
|
||||||
# The footer menu is displayed at the bottom of the page, just before
|
# The footer menu is displayed at the bottom of the page, just before
|
||||||
# the copyright notice. Configure as per the main menu above.
|
# the copyright notice. Configure as per the main menu above.
|
||||||
|
|
||||||
[[footer]]
|
[[footer]]
|
||||||
name = "Tags"
|
name = "Tags"
|
||||||
pageRef = "tags"
|
pageRef = "tags"
|
||||||
weight = 10
|
weight = 10
|
||||||
|
|
||||||
[[footer]]
|
[[footer]]
|
||||||
name = "Kategorien"
|
name = "Kategorien"
|
||||||
pageRef = "categories"
|
pageRef = "categories"
|
||||||
weight = 20
|
weight = 20
|
||||||
|
|
||||||
[[footer]]
|
[[footer]]
|
||||||
name = "Impressum"
|
name = "Impressum"
|
||||||
pageRef = "impressum"
|
pageRef = "impressum"
|
||||||
weight = 500
|
weight = 500
|
||||||
|
|
||||||
[[footer]]
|
[[footer]]
|
||||||
name = "Datenschutz"
|
name = "Datenschutz"
|
||||||
pageRef = "datenschutz"
|
pageRef = "datenschutz"
|
||||||
weight = 600
|
weight = 600
|
||||||
|
|
|
@ -8,10 +8,8 @@
|
||||||
colorScheme = "fira" # "congo"
|
colorScheme = "fira" # "congo"
|
||||||
defaultAppearance = "dark" # valid options: light or dark
|
defaultAppearance = "dark" # valid options: light or dark
|
||||||
autoSwitchAppearance = false
|
autoSwitchAppearance = false
|
||||||
|
|
||||||
enableSearch = true
|
enableSearch = true
|
||||||
enableCodeCopy = false
|
enableCodeCopy = false
|
||||||
|
|
||||||
replyByEmail = false
|
replyByEmail = false
|
||||||
|
|
||||||
# mainSections = ["section1", "section2"]
|
# mainSections = ["section1", "section2"]
|
||||||
|
@ -21,113 +19,109 @@ replyByEmail = false
|
||||||
disableImageOptimization = false
|
disableImageOptimization = false
|
||||||
disableTextInHeader = false
|
disableTextInHeader = false
|
||||||
backgroundImageWidth = 1200
|
backgroundImageWidth = 1200
|
||||||
|
|
||||||
# defaultBackgroundImage = "/img/cccb-im-winter.jpg" # used as default for background images
|
# defaultBackgroundImage = "/img/cccb-im-winter.jpg" # used as default for background images
|
||||||
defaultFeaturedImage = "/img/avatar-CCCB-Logo.png" # used as default for featured images in all articles
|
defaultFeaturedImage = "/img/avatar-CCCB-Logo.png" # used as default for featured images in all articles
|
||||||
|
|
||||||
# highlightCurrentMenuArea = true
|
# highlightCurrentMenuArea = true
|
||||||
smartTOC = true
|
smartTOC = true
|
||||||
smartTOCHideUnfocusedChildren = true
|
smartTOCHideUnfocusedChildren = true
|
||||||
|
|
||||||
giteaDefaultServer = "https://git.fsfe.org"
|
giteaDefaultServer = "https://git.fsfe.org"
|
||||||
forgejoDefaultServer = "https://git.berlin.ccc.de"
|
forgejoDefaultServer = "https://git.berlin.ccc.de"
|
||||||
|
|
||||||
[header]
|
[header]
|
||||||
layout = "basic" # valid options: basic, fixed, fixed-fill, fixed-gradient, fixed-fill-blur
|
layout = "basic" # valid options: basic, fixed, fixed-fill, fixed-gradient, fixed-fill-blur
|
||||||
|
|
||||||
[footer]
|
[footer]
|
||||||
showMenu = true
|
showMenu = true
|
||||||
showCopyright = true
|
showCopyright = true
|
||||||
showThemeAttribution = true
|
showThemeAttribution = true
|
||||||
showAppearanceSwitcher = true
|
showAppearanceSwitcher = true
|
||||||
showScrollToTop = true
|
showScrollToTop = true
|
||||||
|
|
||||||
[homepage]
|
[homepage]
|
||||||
layout = "background" # valid options: page, profile, hero, card, background, custom
|
layout = "background" # valid options: page, profile, hero, card, background, custom
|
||||||
homepageImage = "img/cccb-im-winter.jpg" # used in: hero, and card
|
homepageImage = "img/cccb-im-winter.jpg" # used in: hero, and card
|
||||||
showRecent = true
|
showRecent = true
|
||||||
showRecentItems = 9
|
showRecentItems = 9
|
||||||
showMoreLink = true
|
showMoreLink = true
|
||||||
showMoreLinkDest = "/post/"
|
showMoreLinkDest = "/post/"
|
||||||
cardView = true
|
cardView = true
|
||||||
cardViewScreenWidth = false
|
cardViewScreenWidth = false
|
||||||
layoutBackgroundBlur = false # only used when layout equals background
|
layoutBackgroundBlur = false # only used when layout equals background
|
||||||
|
|
||||||
[article]
|
[article]
|
||||||
showDate = true
|
showDate = true
|
||||||
showViews = false
|
showViews = false
|
||||||
showLikes = false
|
showLikes = false
|
||||||
showDateOnlyInArticle = false
|
showDateOnlyInArticle = false
|
||||||
showDateUpdated = true
|
showDateUpdated = true
|
||||||
showAuthor = false
|
showAuthor = false
|
||||||
showAuthorBottom = true
|
showAuthorBottom = true
|
||||||
showHero = true
|
showHero = true
|
||||||
heroStyle = "big" # valid options: basic, big, background, thumbAndBackground
|
heroStyle = "big" # valid options: basic, big, background, thumbAndBackground
|
||||||
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
|
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
|
||||||
layoutBackgroundHeaderSpace = true # only used when heroStyle equals background
|
layoutBackgroundHeaderSpace = true # only used when heroStyle equals background
|
||||||
showBreadcrumbs = true
|
showBreadcrumbs = true
|
||||||
showDraftLabel = true
|
showDraftLabel = true
|
||||||
showEdit = true
|
showEdit = true
|
||||||
editURL = "https://git.berlin.ccc.de/cccb-website-team/www/src/branch/staging/content/"
|
editURL = "https://git.berlin.ccc.de/cccb-website-team/www/src/branch/staging/content/"
|
||||||
editAppendPath = true
|
editAppendPath = true
|
||||||
seriesOpened = false
|
seriesOpened = false
|
||||||
showHeadingAnchors = true
|
showHeadingAnchors = true
|
||||||
showPagination = false
|
showPagination = false
|
||||||
invertPagination = false
|
invertPagination = false
|
||||||
showReadingTime = true
|
showReadingTime = true
|
||||||
showTableOfContents = true
|
showTableOfContents = true
|
||||||
# showRelatedContent = false
|
# showRelatedContent = false
|
||||||
# relatedContentLimit = 3
|
# relatedContentLimit = 3
|
||||||
showTaxonomies = true
|
showTaxonomies = true
|
||||||
showAuthorsBadges = false
|
showAuthorsBadges = false
|
||||||
showWordCount = true
|
showWordCount = true
|
||||||
# sharingLinks = [ "mastodon", "email" ]
|
# sharingLinks = [ "mastodon", "email" ]
|
||||||
showZenMode = false
|
showZenMode = false
|
||||||
|
|
||||||
[list]
|
[list]
|
||||||
showHero = false
|
showHero = false
|
||||||
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||||
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
|
layoutBackgroundBlur = true # only used when heroStyle equals background or thumbAndBackground
|
||||||
layoutBackgroundHeaderSpace = true # only used when heroStyle equals background
|
layoutBackgroundHeaderSpace = true # only used when heroStyle equals background
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showSummary = false
|
showSummary = false
|
||||||
showViews = false
|
showViews = false
|
||||||
showLikes = false
|
showLikes = false
|
||||||
showTableOfContents = false
|
showTableOfContents = false
|
||||||
showCards = false
|
showCards = false
|
||||||
orderByWeight = false
|
orderByWeight = false
|
||||||
groupByYear = true
|
groupByYear = true
|
||||||
cardView = false
|
cardView = false
|
||||||
cardViewScreenWidth = false
|
cardViewScreenWidth = false
|
||||||
constrainItemsWidth = false
|
constrainItemsWidth = false
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
excludedKinds = ["taxonomy", "term"]
|
excludedKinds = ["taxonomy", "term"]
|
||||||
|
|
||||||
[taxonomy]
|
[taxonomy]
|
||||||
showTermCount = true
|
showTermCount = true
|
||||||
showHero = false
|
showHero = false
|
||||||
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showViews = false
|
showViews = false
|
||||||
showLikes = false
|
showLikes = false
|
||||||
showTableOfContents = false
|
showTableOfContents = false
|
||||||
cardView = false
|
cardView = false
|
||||||
category = "categories"
|
category = "categories"
|
||||||
series = "series"
|
series = "series"
|
||||||
tag = "tags"
|
tag = "tags"
|
||||||
|
|
||||||
|
|
||||||
[term]
|
[term]
|
||||||
showHero = false
|
showHero = false
|
||||||
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
# heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showViews = false
|
showViews = false
|
||||||
showLikes = false
|
showLikes = false
|
||||||
showTableOfContents = true
|
showTableOfContents = true
|
||||||
groupByYear = false
|
groupByYear = false
|
||||||
cardView = false
|
cardView = false
|
||||||
cardViewScreenWidth = false
|
cardViewScreenWidth = false
|
||||||
|
|
||||||
[verification]
|
[verification]
|
||||||
fediverse = "@clubdiscordia@chaos.social"
|
fediverse = "@clubdiscordia@chaos.social"
|
||||||
|
|
1
content/404.md
Normal file
1
content/404.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Leider existiert diese Seite nicht.
|
|
@ -1,6 +1,27 @@
|
||||||
---
|
---
|
||||||
description: "Startseite CCCB mit Kurzkalender"
|
description: "Startseite CCCB mit Kurzkalender"
|
||||||
---
|
---
|
||||||
|
/* this section will be enabled when the cccb spaceapi is public
|
||||||
|
|
||||||
|
<div style="display: flex; justify-content: center;">
|
||||||
|
<div id="clubstatus-badge">spacestatus unknown</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#clubstatus-badge {
|
||||||
|
position: relative;
|
||||||
|
background-color: #2ecc71;
|
||||||
|
flex: initial;
|
||||||
|
color: white;
|
||||||
|
padding: 0.25em 0.6em;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
border-radius: 1em;
|
||||||
|
box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
### Nächste Veranstaltungen:
|
### Nächste Veranstaltungen:
|
||||||
|
|
||||||
|
|
|
@ -4,14 +4,12 @@
|
||||||
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
||||||
<article role="main" class="blog-post">
|
<article role="main" class="blog-post">
|
||||||
<article class="max-w-prose mx-auto">
|
<article class="max-w-prose mx-auto">
|
||||||
<h1 class="text-2xl font-bold">{{ .Title }}</h1>
|
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral pb-4">{{ .Title }}</h1>
|
||||||
{{ if .Params.subtitle }}
|
{{ if .Params.subtitle }}
|
||||||
<h2 class="text-xl">{{ .Params.subtitle }}</h2>
|
<h2 class="text-xl opacity-70">{{ .Params.subtitle }}</h2>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<div class="mt-4 border p-4 bg-secondary-bg rounded">
|
|
||||||
{{ partial "talk-infobox" . }}
|
{{ partial "talk-infobox" . }}
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-4 content">
|
<div class="mt-4 content">
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
|
@ -19,11 +17,18 @@
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
{{ if .Params.tags }}
|
{{ if .Params.tags }}
|
||||||
<div class="blog-tags">
|
<div class="blog-tags max-w-prose mx-auto mt-4 flex flex-wrap gap-4 border-2 p-5 pt-7 mt-6 rounded-lg opacity-75 drop-shadow-md">
|
||||||
|
<p class="opacity-50">Tags:</p>
|
||||||
|
<br>
|
||||||
{{ range .Params.tags }}
|
{{ range .Params.tags }}
|
||||||
<a href="{{ $.Site.LanguagePrefix | absURL }}/tags/{{ . | urlize }}/">{{ . }}</a>
|
<a
|
||||||
|
href="{{ $.Site.LanguagePrefix | absURL }}/tags/{{ . | urlize }}/"
|
||||||
|
class="inline-block px-3 py-1 rounded-lg text-sm font-semibold border-2 dark:bg-neutral-700 border-dotted shadow-lg shadow-blue-500/50"
|
||||||
|
>
|
||||||
|
{{ . }}
|
||||||
|
</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div><!--/.blog-tags-->
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if .Site.Params.socialShare }}
|
{{ if .Site.Params.socialShare }}
|
||||||
|
@ -37,18 +42,31 @@
|
||||||
</article><!--/.blog-post-->
|
</article><!--/.blog-post-->
|
||||||
|
|
||||||
{{ if ne .Type "page" }}
|
{{ if ne .Type "page" }}
|
||||||
<ul class="pager blog-pager">
|
<ul class="pager blog-pager flex justify-between items-center mt-6 list-none p-0">
|
||||||
{{ if .PrevInSection }}
|
{{ if .PrevInSection }}
|
||||||
<li class="previous">
|
<li class="previous">
|
||||||
<a href="{{ .PrevInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .PrevInSection.Title }}">← {{ i18n "previousPost" }}</a>
|
<a
|
||||||
</li><!--/.previous-->
|
href="{{ .PrevInSection.Permalink }}"
|
||||||
|
class="inline-block px-4 py-2 text-lg font-semibold bg-neutral-200 dark:bg-neutral-700 rounded hover:bg-neutral-300 dark:hover:bg-neutral-600 transition-colors"
|
||||||
|
title="{{ .PrevInSection.Title }}"
|
||||||
|
>
|
||||||
|
← {{ i18n "previousPost" }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if .NextInSection }}
|
{{ if .NextInSection }}
|
||||||
<li class="next">
|
<li class="next">
|
||||||
<a href="{{ .NextInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .NextInSection.Title }}">{{ i18n "nextPost" }} →</a>
|
<a
|
||||||
</li><!--/.next-->
|
href="{{ .NextInSection.Permalink }}"
|
||||||
|
class="inline-block px-4 py-2 text-lg font-semibold bg-neutral-200 dark:bg-neutral-700 rounded hover:bg-neutral-300 dark:hover:bg-neutral-600 transition-colors"
|
||||||
|
title="{{ .NextInSection.Title }}"
|
||||||
|
>
|
||||||
|
{{ i18n "nextPost" }} →
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul><!--/.pager .blog-pager-->
|
</ul>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
|
|
3
layouts/partials/clubstatus.html
Normal file
3
layouts/partials/clubstatus.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{{ $js := resources.Get "js/clubstatus.js" | resources.Minify | resources.Fingerprint }}
|
||||||
|
<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}"></script>
|
||||||
|
|
70
layouts/partials/footer.html
Normal file
70
layouts/partials/footer.html
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
<footer id="site-footer" class="py-10 print:hidden">
|
||||||
|
{{/* Footer menu */}}
|
||||||
|
{{ if .Site.Params.footer.showMenu | default true }}
|
||||||
|
{{ if .Site.Menus.footer }}
|
||||||
|
<nav class="flex flex-row pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400">
|
||||||
|
<ul class="flex flex-col list-none sm:flex-row">
|
||||||
|
{{ range .Site.Menus.footer }}
|
||||||
|
<li class="flex mb-1 ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0">
|
||||||
|
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2 flex items-center" href="{{ .URL }}"
|
||||||
|
title="{{ .Title }}">
|
||||||
|
{{ if .Pre }}
|
||||||
|
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
|
||||||
|
{{ partial "icon.html" .Pre }}
|
||||||
|
</span>
|
||||||
|
{{ end }}
|
||||||
|
{{ .Name | markdownify }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
|
||||||
|
{{/* Copyright */}}
|
||||||
|
{{ if .Site.Params.footer.showCopyright | default true }}
|
||||||
|
<p class="text-sm text-neutral-500 dark:text-neutral-400">
|
||||||
|
{{- with replace .Site.Params.copyright "{ year }" now.Year }}
|
||||||
|
{{ . | markdownify }}
|
||||||
|
{{- else }}
|
||||||
|
©
|
||||||
|
{{ now.Format "2006" }}
|
||||||
|
{{ .Site.Params.Author.name | markdownify }}
|
||||||
|
{{- end }}
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* Theme attribution */}}
|
||||||
|
{{ if .Site.Params.footer.showThemeAttribution | default true }}
|
||||||
|
<p class="text-xs text-neutral-500 dark:text-neutral-400">
|
||||||
|
{{ $hugo := printf `<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
||||||
|
href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a>`
|
||||||
|
}}
|
||||||
|
{{ $blowfish := printf `<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
||||||
|
href="https://blowfish.page/" target="_blank" rel="noopener noreferrer">Blowfish</a>` }}
|
||||||
|
{{ i18n "footer.powered_by" (dict "Hugo" $hugo "Theme" $blowfish) | safeHTML }}
|
||||||
|
(<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
|
||||||
|
href="https://git.berlin.ccc.de/cccb-website-team/www">Git-Repo</a>)
|
||||||
|
</p>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
{{ if not .Site.Params.disableImageZoom | default true }}
|
||||||
|
mediumZoom(document.querySelectorAll("img:not(.nozoom)"), {
|
||||||
|
margin: 24,
|
||||||
|
background: 'rgba(0,0,0,0.5)',
|
||||||
|
scrollOffset: 0,
|
||||||
|
})
|
||||||
|
{{ end }}
|
||||||
|
</script>
|
||||||
|
{{ $jsProcess := resources.Get "js/process.js" }}
|
||||||
|
{{ $jsProcess = $jsProcess | resources.Minify | resources.Fingerprint "sha512" }}
|
||||||
|
<script type="text/javascript" src="{{ $jsProcess.RelPermalink }}" integrity="{{ $jsProcess.Data.Integrity }}"></script>
|
||||||
|
{{/* Extend footer - eg. for extra scripts, etc. */}}
|
||||||
|
{{ if templates.Exists "partials/extend-footer.html" }}
|
||||||
|
{{ partialCached "extend-footer.html" . }}
|
||||||
|
{{ end }}
|
||||||
|
</footer>
|
|
@ -1,4 +1,4 @@
|
||||||
<p>
|
<p class="mt-4 gap-4 border-2 p-5 pt-7 mt-6 rounded-lg shadow-lg opacity-75 drop-shadow-md">
|
||||||
{{ if isset .Page.Params "speaker_url" }}
|
{{ if isset .Page.Params "speaker_url" }}
|
||||||
<strong><i class="far fa-user fa-fw"></i></strong> <a href="{{ .Page.Params.Speaker_url }}">{{ .Page.Params.Speaker }}</a><br/>
|
<strong><i class="far fa-user fa-fw"></i></strong> <a href="{{ .Page.Params.Speaker_url }}">{{ .Page.Params.Speaker }}</a><br/>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
|
@ -11,14 +11,14 @@
|
||||||
{{ with (eq $.Page.Params.Language "en") }}
|
{{ with (eq $.Page.Params.Language "en") }}
|
||||||
<strong><i class="fa fa-language fa-fw"></i>🌐 Language:</strong> Englisch/English<br/>
|
<strong><i class="fa fa-language fa-fw"></i>🌐 Language:</strong> Englisch/English<br/>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<strong><i class="fa fa-map-marker fa-fw"></i>📍 Location:</strong> {{ partial "location" .Page.Params.Location }}
|
<strong><i class="fa fa-map-marker fa-fw"></i>📍 Location:</strong> {{ partial "location" .Page.Params.Location }}<br/>
|
||||||
</p>
|
|
||||||
{{ if isset .Page.Params "recording" }}
|
{{ if isset .Page.Params "recording" }}
|
||||||
<p><strong><i class="fa fa-video fa-fw"></i>📹 Livestream: </strong> <a href="{{ .Page.Params.Recording }}">{{ .Page.Params.Recording }}</a></p>
|
<strong><i class="hover:underline hover:decoration-primary-400 hover:text-primary-500"></i>📹 Livestream: </strong> <a href="{{ .Page.Params.Recording }}">{{ .Page.Params.Recording }}</a></p>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ if and (eq .Page.Params.Streaming true) (not (isset .Page.Params "recording" )) }}
|
{{ if and (eq .Page.Params.Streaming true) (not (isset .Page.Params "recording" )) }}
|
||||||
<p><strong>Stream:</strong> <a href="https://streaming.media.ccc.de/datengarten">streaming.media.ccc.de/datengarten</a></p>
|
<p><strong>Stream:</strong> <a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="https://streaming.media.ccc.de/datengarten">streaming.media.ccc.de/datengarten</a></p>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<p><strong><i class="fa fa-exclamation-triangle fa-fw"></i></strong> Dieser Vortrag wird <strong>nicht</strong> gestreamed</a>! / This talk will <strong>not</strong> be streamed!</p>
|
<p><strong><i class="fa fa-exclamation-triangle fa-fw"></i></strong> Dieser Vortrag wird <strong>nicht</strong> gestreamed</a>! / This talk will <strong>not</strong> be streamed!</p>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
</p>
|
Loading…
Reference in a new issue