🛠 Layout and content updates
@@ -4,5 +4,7 @@
|
|||||||
"keywords": "Bitcoin,Podcast,Lightning Network",
|
"keywords": "Bitcoin,Podcast,Lightning Network",
|
||||||
"themeColor": "#FFFFFF",
|
"themeColor": "#FFFFFF",
|
||||||
"cardImage": "img/card.png",
|
"cardImage": "img/card.png",
|
||||||
"twitter": "_einundzwanzig_"
|
"twitterUrl": "https://twitter.com/_einundzwanzig_",
|
||||||
|
"telegramUrl": "https://t.me/einundzwanzigpodcast",
|
||||||
|
"shoutoutUrl": "https://tallyco.in/s/zfxqtu/"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"name": "Fab",
|
"name": "Fab",
|
||||||
"twitter": "fabthefoxx",
|
"twitter": "fabthefoxx",
|
||||||
"url": "http://fabthefox.com",
|
"url": "http://fabthefox.com",
|
||||||
"text": "The Fox 🦊 verbreitet mit seinem Verlag Aprycot das Bitcoin-Wissen und ist der Wirt hinter der [Media-Theke](https://aprycot.media/thek/) 📙",
|
"text": "The Fox 🦊 verbreitet mit seinem Verlag Aprycot das Bitcoin-Wissen und ist der Wirt an der [Media-Theke](https://aprycot.media/thek/) 📙",
|
||||||
"image": "/img/team/fab.jpg"
|
"image": "/img/team/fab.jpg"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"twitter": "dennisreimann",
|
"twitter": "dennisreimann",
|
||||||
"github": "dennisreimann",
|
"github": "dennisreimann",
|
||||||
"url": "https://d11n.net",
|
"url": "https://d11n.net",
|
||||||
"text": "Mag Open Source und [BTCPay Server](https://btcpayserver.org/) 💚 und schreibt lieber Software als Texte über sich 👨🏻💻",
|
"text": "Mag Open Source und [BTCPay Server](https://btcpayserver.org/) 💚 und schreibt lieber Software als Texte über sich selbst 👨🏻💻",
|
||||||
"image": "/img/team/dennis.png"
|
"image": "/img/team/dennis.png"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,15 +3,16 @@ extends /template.pug
|
|||||||
block main
|
block main
|
||||||
- const current = episodes.shift()
|
- const current = episodes.shift()
|
||||||
|
|
||||||
section#podcast
|
#podcast.wrap
|
||||||
h1.centered= categoryName
|
section
|
||||||
|
h1= categoryName
|
||||||
h2.centered Aktuelle Episode
|
h2 Aktuelle Episode
|
||||||
.current
|
.current
|
||||||
+episodePlayer(current).centered
|
+episodePlayer(current)
|
||||||
|
|
||||||
if episodes.length
|
if episodes.length
|
||||||
h2.centered Weitere Episoden
|
section
|
||||||
|
h2 Weitere Episoden
|
||||||
.episodes
|
.episodes
|
||||||
each e in episodes
|
each e in episodes
|
||||||
+episodeItem(e)
|
+episodeItem(e)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
line-height: 1.5;
|
line-height: 1.45;
|
||||||
font-family: var(--font-family-base);
|
font-family: var(--font-family-base);
|
||||||
font-size: var(--font-size-base);
|
font-size: var(--font-size-base);
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
@@ -29,6 +29,8 @@ body {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
color: var(--color-body-text);
|
color: var(--color-body-text);
|
||||||
background-color: var(--color-body-bg);
|
background-color: var(--color-body-bg);
|
||||||
|
transition-property: color, background;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
@@ -37,9 +39,8 @@ h3,
|
|||||||
h4,
|
h4,
|
||||||
h5,
|
h5,
|
||||||
h6 {
|
h6 {
|
||||||
font-family: var(--font-family-head);
|
line-height: 1;
|
||||||
letter-spacing: -0.04em;
|
color: var(--color-secondary);
|
||||||
line-height: 1.05;
|
|
||||||
|
|
||||||
& a {
|
& a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
@@ -114,10 +115,28 @@ ul {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
button {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
img:-moz-loading {
|
img:-moz-loading {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::-webkit-progress-value {
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
::-ms-fill {
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-progress-bar {
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
}
|
||||||
|
|
||||||
[aria-hidden="true"] {
|
[aria-hidden="true"] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,16 @@
|
|||||||
|
/* https://google-webfonts-helper.herokuapp.com/fonts/inconsolata?subsets=latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'The Bold Font';
|
font-family: 'Inconsolata';
|
||||||
src: url('../fonts/theboldfont.woff2') format('woff2');
|
|
||||||
}
|
|
||||||
|
|
||||||
/* https://google-webfonts-helper.herokuapp.com/fonts/noto-sans?subsets=cyrillic,cyrillic-ext,latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Noto Sans';
|
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: url('../fonts/noto-sans-400.woff2') format('woff2');
|
font-stretch: 100%;
|
||||||
|
src: url('../fonts/inconsolata-400.woff2') format('woff2');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Noto Sans';
|
font-family: 'Inconsolata';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
src: url('../fonts/noto-sans-700.woff2') format('woff2');
|
font-stretch: 100%;
|
||||||
|
src: url('../fonts/inconsolata-700.woff2') format('woff2');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,20 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: var(--font-size-xs);
|
font-size: var(--font-size-xs);
|
||||||
color: var(--color-secondary);
|
color: var(--color-secondary);
|
||||||
|
background-color: var(--color-card-bg);
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
|
padding: var(--space-m) 0;
|
||||||
|
|
||||||
|
& .wrap {
|
||||||
|
@media (--M_and_up) {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +1,32 @@
|
|||||||
.header {
|
.header {
|
||||||
/* position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 10; */
|
|
||||||
color: var(--color-body-text);
|
color: var(--color-body-text);
|
||||||
background-color: var(--color-body-bg);
|
background-color: var(--color-body-bg);
|
||||||
|
transition-property: color, background-color, box-shadow;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
|
|
||||||
@media (--up_to_L) {
|
@media (--up_to_M) {
|
||||||
|
padding-top: var(--space-l);
|
||||||
|
padding-bottom: var(--space-m);
|
||||||
|
}
|
||||||
|
@media (--M_to_L) {
|
||||||
padding-top: var(--space-l);
|
padding-top: var(--space-l);
|
||||||
padding-bottom: var(--space-l);
|
padding-bottom: var(--space-l);
|
||||||
}
|
}
|
||||||
@media (--L_and_up) {
|
@media (--L_and_up) {
|
||||||
padding-top: var(--space-xl);
|
padding-top: var(--space-xl);
|
||||||
padding-bottom: var(--space-xl);
|
padding-bottom: var(--space-l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (--up_to_L) {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
@nest body.topbar & {
|
@nest body.topbar & {
|
||||||
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.1);
|
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@nest body.topbar.topbar--appear & {
|
|
||||||
opacity: 1;
|
|
||||||
transition-property: opacity;
|
|
||||||
transition-duration: var(--transition-duration-fast);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& a {
|
& a {
|
||||||
@@ -38,93 +41,94 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
& .wrap {
|
& .wrap {
|
||||||
@media (--L_and_up) {
|
flex-direction: column;
|
||||||
display: flex;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
|
||||||
align-items: flex-end;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
& .brand {
|
|
||||||
display: inline-block;
|
|
||||||
margin-right: var(--space-xl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& .logo {
|
& .logo {
|
||||||
display: block;
|
display: block;
|
||||||
|
width: 100%;
|
||||||
@media (--up_to_M) {
|
height: var(--logo-height);
|
||||||
height: 27px;
|
max-width: 840px;
|
||||||
width: 300px;
|
max-height: 76px;
|
||||||
}
|
|
||||||
@media (--M_to_L) {
|
|
||||||
height: 45px;
|
|
||||||
width: 500px;
|
|
||||||
}
|
|
||||||
@media (--L_and_up) {
|
|
||||||
height: 63px;
|
|
||||||
width: 700px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& .nav {
|
& .nav {
|
||||||
position: relative;
|
|
||||||
top: 3px;
|
|
||||||
left: -1px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
align-self: flex-start;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding-right: 5.75%;
|
||||||
|
line-height: 1;
|
||||||
|
|
||||||
@media (--up_to_L) {
|
@media (--up_to_M) {
|
||||||
margin-top: var(--space-m);
|
margin-top: var(--space-m);
|
||||||
|
font-size: var(--font-size-l);
|
||||||
|
}
|
||||||
|
@media (--M_to_L) {
|
||||||
|
margin-top: var(--space-m);
|
||||||
|
font-size: var(--font-size-xl);
|
||||||
}
|
}
|
||||||
@media (--L_and_up) {
|
@media (--L_and_up) {
|
||||||
margin-top: var(--space-l);
|
margin-top: var(--space-l);
|
||||||
|
font-size: var(--font-size-xxl);
|
||||||
}
|
}
|
||||||
|
|
||||||
& a {
|
& nav {
|
||||||
text-decoration: none;
|
|
||||||
|
|
||||||
&.navItem {
|
|
||||||
text-transform: uppercase;
|
|
||||||
letter-spacing: -0.04em;
|
|
||||||
font-weight: var(--font-weight-bold);
|
|
||||||
margin-right: var(--space-l);
|
|
||||||
line-height: 1;
|
|
||||||
|
|
||||||
@media (--up_to_L) {
|
|
||||||
font-size: var(--font-size-l);
|
|
||||||
}
|
|
||||||
@media (--L_and_up) {
|
|
||||||
font-size: var(--font-size-xl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
& .social {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
@media (--L_and_up) {
|
& a {
|
||||||
margin-left: auto;
|
text-transform: uppercase;
|
||||||
|
font-weight: var(--font-weight-bold);
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.current {
|
||||||
|
color: var(--color-accent);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& > a + a {
|
||||||
|
margin-left: var(--space-l);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& .more {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: auto;
|
||||||
|
|
||||||
& a,
|
& a,
|
||||||
& svg {
|
& button{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
@media (--up_to_L) {
|
& svg {
|
||||||
height: calc(var(--font-size-l) - 0.2rem);
|
height: .8em;
|
||||||
width: calc(var(--font-size-l) - 0.2rem);
|
width: .8em;
|
||||||
}
|
display: block;
|
||||||
@media (--L_and_up) {
|
|
||||||
height: calc(var(--font-size-xl) - 0.2rem);
|
|
||||||
width: calc(var(--font-size-xl) - 0.2rem);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& a + a {
|
& > * + * {
|
||||||
margin-left: var(--space-l);
|
margin-left: var(--space-l);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.theme {
|
||||||
|
display: inline-block;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: inherit;
|
||||||
|
background: none;
|
||||||
|
cursor: pointer;
|
||||||
|
border: 0;
|
||||||
|
outline: 0;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@media not all and (hover: none) {
|
||||||
|
color: var(--color-accent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,41 +1,31 @@
|
|||||||
.wrap {
|
.wrap {
|
||||||
max-width: 1440px;
|
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
padding-left: var(--wrap-padding-horizontal);
|
||||||
@media (--up_to_M) {
|
padding-right: var(--wrap-padding-horizontal);
|
||||||
padding-left: var(--space-l);
|
max-width: calc(840px + var(--wrap-padding-horizontal) * 2);
|
||||||
padding-right: var(--space-l);
|
|
||||||
}
|
|
||||||
@media (--M_to_L) {
|
|
||||||
padding-left: var(--space-xl);
|
|
||||||
padding-right: var(--space-xl);
|
|
||||||
}
|
|
||||||
@media (--L_and_up) {
|
|
||||||
padding-left: var(--space-xxl);
|
|
||||||
padding-right: var(--space-xxl);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding-top: var(--space-xxl);
|
|
||||||
padding-bottom: var(--space-xxl);
|
padding-bottom: var(--space-xxl);
|
||||||
|
|
||||||
& h1,
|
@media (--up_to_L) {
|
||||||
|
padding-top: calc(var(--logo-height) + var(--space-xxl) * 1.75);
|
||||||
|
}
|
||||||
|
@media (--L_and_up) {
|
||||||
|
padding-top: var(--space-xl);
|
||||||
|
}
|
||||||
|
|
||||||
|
& h1 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
& h2 {
|
& h2 {
|
||||||
margin-bottom: var(--space-l);
|
margin-bottom: var(--space-l);
|
||||||
color: var(--color-secondary);
|
|
||||||
max-width: 20em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& .centered {
|
& section {
|
||||||
text-align: center;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
& .lead {
|
|
||||||
margin-bottom: var(--space-xxl);
|
margin-bottom: var(--space-xxl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
:root {
|
:root {
|
||||||
--color-neutral-0: #fff;
|
--color-neutral-0: #fff;
|
||||||
--color-neutral-10: #f6f6f6;
|
--color-neutral-10: #f9f9f9;
|
||||||
--color-neutral-50: #888;
|
--color-neutral-50: #888;
|
||||||
--color-neutral-90: #222;
|
--color-neutral-90: #222;
|
||||||
--color-neutral-95: #1B1B1B;
|
--color-neutral-95: #1B1B1B;
|
||||||
@@ -24,15 +24,14 @@
|
|||||||
--space-s: .25rem;
|
--space-s: .25rem;
|
||||||
--space-m: .5rem;
|
--space-m: .5rem;
|
||||||
--space-l: 1rem;
|
--space-l: 1rem;
|
||||||
--space-xl: 2rem;
|
--space-xl: 1.75rem;
|
||||||
--space-xxl: 3rem;
|
--space-xxl: 3rem;
|
||||||
|
|
||||||
--transition-duration-fast: 0.25s;
|
--transition-duration-fast: 0.25s;
|
||||||
--transition-duration-medium: 0.75s;
|
--transition-duration-medium: 0.75s;
|
||||||
--transition-duration-slow: 1.5s;
|
--transition-duration-slow: 1.5s;
|
||||||
|
|
||||||
--font-family-base: 'Noto Sans', sans-serif;
|
--font-family-base: 'Inconsolata', monospace;
|
||||||
--font-family-head: var(--font-family-base);
|
|
||||||
|
|
||||||
--font-weight-normal: 400;
|
--font-weight-normal: 400;
|
||||||
--font-weight-bold: 700;
|
--font-weight-bold: 700;
|
||||||
@@ -45,6 +44,18 @@
|
|||||||
--font-size-xl: 1.75rem;
|
--font-size-xl: 1.75rem;
|
||||||
--font-size-xxl: 2.5rem;
|
--font-size-xxl: 2.5rem;
|
||||||
--font-size-xxxl: 4rem;
|
--font-size-xxxl: 4rem;
|
||||||
|
|
||||||
|
@media (--up_to_M) {
|
||||||
|
--wrap-padding-horizontal: var(--space-l);
|
||||||
|
}
|
||||||
|
@media (--M_to_L) {
|
||||||
|
--wrap-padding-horizontal: var(--space-xl);
|
||||||
|
}
|
||||||
|
@media (--L_and_up) {
|
||||||
|
--wrap-padding-horizontal: var(--space-xxl);
|
||||||
|
}
|
||||||
|
|
||||||
|
--logo-height: calc((100vw - var(--wrap-padding-horizontal) * 2) / 134 * 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
:root[data-theme="dark"] {
|
:root[data-theme="dark"] {
|
||||||
|
|||||||
@@ -7,5 +7,6 @@
|
|||||||
@import 'base/footer.css';
|
@import 'base/footer.css';
|
||||||
|
|
||||||
/* Sections */
|
/* Sections */
|
||||||
|
@import 'sections/home.css';
|
||||||
@import 'sections/podcast.css';
|
@import 'sections/podcast.css';
|
||||||
@import 'sections/team.css';
|
@import 'sections/team.css';
|
||||||
|
|||||||
33
src/css/sections/home.css
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
@keyframes marquee {
|
||||||
|
0% { transform: translateX(0); }
|
||||||
|
100% { transform: translateX(-100%); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.ticker {
|
||||||
|
overflow: hidden;
|
||||||
|
background: var(--color-card-bg);
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
|
margin: -15px 0 var(--space-xl);
|
||||||
|
padding: var(--space-m) 0;
|
||||||
|
|
||||||
|
& .inner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
animation-name: marquee;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
font-size: var(--font-size-s);
|
||||||
|
|
||||||
|
@media (--up_to_M) {
|
||||||
|
animation-duration: 10s;
|
||||||
|
}
|
||||||
|
@media (--M_to_L) {
|
||||||
|
animation-duration: 20s;
|
||||||
|
}
|
||||||
|
@media (--L_and_up) {
|
||||||
|
animation-duration: 30s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0 0 var(--space-xxl) 0;
|
margin: 0;
|
||||||
|
|
||||||
& li {
|
& li {
|
||||||
margin: 0 var(--space-m) var(--space-m) 0;
|
margin: 0 var(--space-m) var(--space-m) 0;
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: var(--space-s) var(--space-l);
|
padding: var(--space-s) var(--space-l);
|
||||||
color: var(--color-secondary);
|
color: var(--color-body-text);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
border-radius: var(--space-xl);
|
border-radius: var(--space-xl);
|
||||||
border: 1px solid var(--color-secondary);
|
border: 1px solid var(--color-secondary);
|
||||||
@@ -54,8 +54,10 @@
|
|||||||
|
|
||||||
.episodeItem {
|
.episodeItem {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: var(--color-card-bg);
|
|
||||||
border-radius: var(--space-l);
|
border-radius: var(--space-l);
|
||||||
|
background-color: var(--color-card-bg);
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
|
|
||||||
@media (--up_to_M) {
|
@media (--up_to_M) {
|
||||||
padding: var(--space-l);
|
padding: var(--space-l);
|
||||||
@@ -66,6 +68,12 @@
|
|||||||
|
|
||||||
& a {
|
& a {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
|
&:hover .meta {
|
||||||
|
@media not all and (hover: none) {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& .media {
|
& .media {
|
||||||
@@ -91,8 +99,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
font-family: var(--font-family-head);
|
color: var(--color-secondary);
|
||||||
/* color: var(--color-secondary); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& .content {
|
& .content {
|
||||||
@@ -102,90 +109,105 @@
|
|||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& h3 {
|
|
||||||
margin-top: var(--space-s);
|
|
||||||
font-family: var(--font-family-base);
|
|
||||||
font-weight: var(--font-weight-bold);
|
|
||||||
font-size: var(--font-size-m);
|
|
||||||
line-height: 1.2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.player {
|
.player {
|
||||||
|
display: flex;
|
||||||
border-radius: var(--space-m);
|
border-radius: var(--space-m);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
@media (--up_to_M) {
|
||||||
|
flex-direction: column;
|
||||||
min-width: 300px;
|
min-width: 300px;
|
||||||
max-width: 480px;
|
max-width: 400px;
|
||||||
|
}
|
||||||
|
@media (--M_and_up) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.player__cover {
|
.player__cover {
|
||||||
display: block;
|
display: block;
|
||||||
width:100%
|
|
||||||
|
@media (--up_to_M) {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
@media (--M_and_up) {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.player__bottom {
|
.player__bottom {
|
||||||
|
flex: 1;
|
||||||
color: var(--color-body-text);
|
color: var(--color-body-text);
|
||||||
background-color: var(--color-card-bg);
|
background-color: var(--color-card-bg);
|
||||||
padding-bottom: var(--space-l);
|
transition-property: color, background-color;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
}
|
}
|
||||||
|
|
||||||
.player__progress {
|
.player__progress {
|
||||||
display: block;
|
display: block;
|
||||||
background-color: rgba(255,255,255,.25);
|
background-color: var(--color-secondary);
|
||||||
appearance:none;
|
appearance:none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: var(--space-m);
|
height: var(--space-m);
|
||||||
margin-bottom: var(--space-m);
|
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
border:none
|
border:none
|
||||||
}
|
}
|
||||||
.player__progress[value] {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
|
||||||
.player__progress::-webkit-progress-bar{
|
|
||||||
background-color: var(--color-secondary);
|
|
||||||
}
|
|
||||||
.player__progress::-moz-progress-bar,
|
|
||||||
.player__progress::-webkit-progress-value {
|
|
||||||
background-color: var(--color-accent);
|
|
||||||
}
|
|
||||||
.player__time {
|
.player__time {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin:.5em 0 .75em;
|
padding: var(--space-m) var(--space-l);
|
||||||
padding:0 .5em;
|
color: var(--color-secondary);
|
||||||
opacity:.5;
|
|
||||||
font-size: var(--font-size-s);
|
font-size: var(--font-size-s);
|
||||||
}
|
}
|
||||||
.player__current-time{
|
|
||||||
margin-left:var(--space-m);
|
|
||||||
}
|
|
||||||
.player__duration{
|
|
||||||
margin-right:var(--space-m);
|
|
||||||
}
|
|
||||||
.player__controls {
|
.player__controls {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-top: var(--space-m);
|
padding: var(--space-m) var(--space-l) var(--space-l);
|
||||||
padding: 0 var(--space-l);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.player__button {
|
.player__button {
|
||||||
width: 70px;
|
width: 70px;
|
||||||
height: 70px;
|
height: 70px;
|
||||||
margin-right: var(--space-l);
|
margin-right: var(--space-l);
|
||||||
background-size:cover;
|
cursor: pointer;
|
||||||
background-repeat:no-repeat;
|
|
||||||
cursor:pointer
|
|
||||||
}
|
}
|
||||||
.player__button.amplitude-paused{
|
|
||||||
background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzUiIGhlaWdodD0iNzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIHN0cm9rZT0iIzQyNDM1RiIgY3g9IjM2LjUiIGN5PSIzNi41IiByPSIzNi41Ii8+PHBhdGggZD0iTTQ3LjYzIDM1LjhMMjcuNjQgMjMuNDNjLTEuNDYtLjk2LTIuNjUtLjI2LTIuNjUgMS41NlY0OWMwIDEuODEgMS4xOSAyLjUyIDIuNjUgMS41Nkw0Ny42MyAzOC4ycy43LS41LjctMS4yLS43LTEuMi0uNy0xLjJ6IiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+)
|
.player__button svg {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
.player__button.amplitude-playing{
|
|
||||||
background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzUiIGhlaWdodD0iNzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMSAxKSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIHN0cm9rZT0iIzQyNDM1RiIgY3g9IjM2LjUiIGN5PSIzNi41IiByPSIzNi41Ii8+PHBhdGggZD0iTTMwLjUyIDIzSDI2LjJBMi4yIDIuMiAwIDAgMCAyNCAyNS4ydjIzLjZjMCAxLjIxLjk4IDIuMiAyLjIgMi4yaDQuMzJhMi4yIDIuMiAwIDAgMCAyLjE5LTIuMlYyNS4yYTIuMiAyLjIgMCAwIDAtMi4xOS0yLjJ6TTQ2LjkgMjNoLTQuMzJhMi4yIDIuMiAwIDAgMC0yLjE5IDIuMnYyMy42YzAgMS4yMS45OCAyLjIgMi4xOSAyLjJoNC4zM2EyLjIgMi4yIDAgMCAwIDIuMTktMi4yVjI1LjJjMC0xLjIxLS45OC0yLjItMi4yLTIuMnoiIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvZz48L3N2Zz4=)
|
.player__button__icon--play,
|
||||||
|
.player__button__icon--pause {
|
||||||
|
display: none;
|
||||||
|
color: var(--color-secondary);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@media not all and (hover: none) {
|
||||||
|
color: var(--color-accent);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.player__button.amplitude-paused .player__button__icon--pause,
|
||||||
|
.player__button.amplitude-playing .player__button__icon--play {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
.player__info {
|
.player__info {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
|
||||||
|
& a:hover .player__album {
|
||||||
|
@media not all and (hover: none) {
|
||||||
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.player__album {
|
.player__album {
|
||||||
color: var(--color-secondary);
|
color: var(--color-secondary);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,20 +8,18 @@
|
|||||||
@media (--up_to_M) {
|
@media (--up_to_M) {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
@media (--M_to_L) {
|
@media (--M_and_up) {
|
||||||
grid-template-columns: 1fr 1fr;
|
grid-template-columns: 1fr 1fr;
|
||||||
}
|
}
|
||||||
@media (--L_and_up) {
|
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& .member {
|
& .member {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
text-align: center;
|
|
||||||
background-color: var(--color-card-bg);
|
|
||||||
border-radius: var(--space-l);
|
|
||||||
padding: var(--space-xl);
|
padding: var(--space-xl);
|
||||||
|
border-radius: var(--space-l);
|
||||||
|
background-color: var(--color-card-bg);
|
||||||
|
transition-property: background-color;
|
||||||
|
transition-duration: var(--transition-duration-fast);
|
||||||
|
|
||||||
& img {
|
& img {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
@@ -30,23 +28,41 @@
|
|||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
& h2 {
|
& header {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
margin-top: var(--space-l);
|
margin-top: var(--space-l);
|
||||||
margin-bottom: var(--space-m);
|
}
|
||||||
|
|
||||||
|
& h2 {
|
||||||
font-size: var(--font-size-xl);
|
font-size: var(--font-size-xl);
|
||||||
|
margin: 0 var(--space-l) var(--space-l) 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
& p {
|
& p {
|
||||||
margin-bottom: var(--space-l);
|
margin-bottom: 0;
|
||||||
overflow-wrap: anywhere;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& .links {
|
& .links {
|
||||||
& a,
|
display: flex;
|
||||||
|
margin-bottom: var(--space-l);
|
||||||
|
|
||||||
|
& a {
|
||||||
|
color: var(--color-secondary);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@media not all and (hover: none) {
|
||||||
|
color: var(--color-accent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
& svg {
|
& svg {
|
||||||
display: inline-block;
|
display: block;
|
||||||
height: 28px;
|
height: var(--font-size-l);
|
||||||
width: 28px;
|
width: var(--font-size-l);
|
||||||
}
|
}
|
||||||
|
|
||||||
& a + a {
|
& a + a {
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
extends /template.pug
|
extends /template.pug
|
||||||
|
|
||||||
block main
|
block main
|
||||||
section#episode
|
#episode.wrap
|
||||||
|
section
|
||||||
h1= episode.titlePlain
|
h1= episode.titlePlain
|
||||||
|
|
||||||
+episodePlayer(episode)
|
+episodePlayer(episode)
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ mixin sprite(id)
|
|||||||
|
|
||||||
mixin episodeItem(e)
|
mixin episodeItem(e)
|
||||||
article.episodeItem&attributes(attributes)
|
article.episodeItem&attributes(attributes)
|
||||||
a.plain(href=`/podcast/${e.slug}`)
|
a.plain(href=`/podcast/${e.slug}/`)
|
||||||
.media
|
.media
|
||||||
img(src=e.image alt=e.title loading="lazy")
|
img(src=e.image alt=e.title loading="lazy")
|
||||||
.content
|
.content
|
||||||
.meta
|
.meta
|
||||||
span= e.categoryName + (e.number ? ` #${e.number}` : '')
|
span= e.categoryName + (e.number ? ` #${e.number}` : '')
|
||||||
time(datetime=e.date)= e.block || formatDate(e.date)
|
time(datetime=e.date)= e.block || formatDate(e.date)
|
||||||
h3=e.titlePlain
|
.title=e.titlePlain
|
||||||
|
|
||||||
mixin episodePlayer(e)
|
mixin episodePlayer(e)
|
||||||
.player.player--single&attributes(attributes)
|
.player.player--single&attributes(attributes)
|
||||||
@@ -34,8 +34,10 @@ mixin episodePlayer(e)
|
|||||||
|
|
||||||
.player__controls
|
.player__controls
|
||||||
.player__button.amplitude-play-pause(data-amplitude-main-play-pause="true" id="play-pause")
|
.player__button.amplitude-play-pause(data-amplitude-main-play-pause="true" id="play-pause")
|
||||||
|
+sprite("pause").player__button__icon--pause
|
||||||
|
+sprite("play").player__button__icon--play
|
||||||
.player__info
|
.player__info
|
||||||
a.plain(href=`/podcast/${e.slug}`)
|
a.plain(href=`/podcast/${e.slug}/`)
|
||||||
.player__album(data-amplitude-song-info="album" data-amplitude-main-song-info="true")
|
.player__album(data-amplitude-song-info="album" data-amplitude-main-song-info="true")
|
||||||
.player__name(data-amplitude-song-info="name" data-amplitude-main-song-info="true")
|
.player__name(data-amplitude-song-info="name" data-amplitude-main-song-info="true")
|
||||||
|
|
||||||
|
|||||||
@@ -31,37 +31,50 @@ html(lang="en")
|
|||||||
meta(property="twitter:image" content=assetUrl(pageCard))
|
meta(property="twitter:image" content=assetUrl(pageCard))
|
||||||
meta(name="msapplication-TileColor" content=themeColor)
|
meta(name="msapplication-TileColor" content=themeColor)
|
||||||
meta(name="theme-color" content=themeColor)
|
meta(name="theme-color" content=themeColor)
|
||||||
link(rel="preload" as="font" crossorigin href=assetPath("/fonts/noto-sans-400.woff2"))
|
link(rel="preload" as="font" crossorigin href=assetPath("/fonts/inconsolata-400.woff2"))
|
||||||
link(rel="preload" as="font" crossorigin href=assetPath("/fonts/noto-sans-700.woff2"))
|
link(rel="preload" as="font" crossorigin href=assetPath("/fonts/inconsolata-700.woff2"))
|
||||||
link(rel="apple-touch-icon" href=assetPath("/img/einundzwanzig-square.svg"))
|
link(rel="apple-touch-icon" href=assetPath("/img/favicon/apple-touch-icon.png"))
|
||||||
link(rel="icon" href=assetPath("/img/einundzwanzig-square.svg"))
|
link(rel="icon" href=assetPath("/img/favicon/favicon.svg"))
|
||||||
link(rel="manifest" href="/site.webmanifest")
|
link(rel="manifest" href="/site.webmanifest")
|
||||||
link(rel="mask-icon" href=assetPath("/img/favicon/safari-pinned-tab.svg") color=themeColor)
|
link(rel="mask-icon" href=assetPath("/img/favicon/safari-pinned-tab.svg") color=themeColor)
|
||||||
link(rel="stylesheet" href=assetPath("/css/main.css"))
|
link(rel="stylesheet" href=assetPath("/css/main.css"))
|
||||||
|
script(src=assetPath("/js/amplitude.js") defer)
|
||||||
|
script(src=assetPath("/js/main.js"))
|
||||||
title= pageTitle
|
title= pageTitle
|
||||||
|
noscript
|
||||||
|
style.
|
||||||
|
.theme { display: none; }
|
||||||
body
|
body
|
||||||
header.header#header
|
header.header#header
|
||||||
.wrap
|
.wrap
|
||||||
a(href="/").brand
|
a(href="/").brand
|
||||||
+sprite("logo-horizontal").logo
|
+sprite("logo-horizontal").logo
|
||||||
nav.nav
|
.nav
|
||||||
a.navItem(href="/podcast" sclass=(navCurrent === 'podcast' && 'current')) Podcast
|
nav
|
||||||
a.navItem(href="/team" class=(navCurrent === 'team' && 'current')) Team
|
a.navItem(href="/podcast/" class=(navCurrent === 'podcast' && 'current')) Podcast
|
||||||
.social
|
a.navItem(href="/team/" class=(navCurrent === 'team' && 'current')) Team
|
||||||
a.twitter(href="https://twitter.com/_einundzwanzig_" target="_blank" title="Twitter")
|
.more
|
||||||
|
a.twitter(href=site.meta.twitterUrl target="_blank" title="Twitter")
|
||||||
+sprite("twitter")
|
+sprite("twitter")
|
||||||
a.telegram(href="https://t.me/einundzwanzigpodcast" target="_blank" title="Telegram")
|
a.telegram(href=site.meta.telegramUrl target="_blank" title="Telegram")
|
||||||
+sprite("telegram")
|
+sprite("telegram")
|
||||||
|
button(type="button").theme
|
||||||
|
+sprite("theme")
|
||||||
|
|
||||||
#header-anchor
|
#header-anchor
|
||||||
|
|
||||||
main.main
|
main.main
|
||||||
.wrap
|
|
||||||
block main
|
block main
|
||||||
|
|
||||||
footer#footer.footer
|
footer#footer.footer
|
||||||
.wrap
|
.wrap
|
||||||
p Craig Wright is a fraud.
|
p
|
||||||
|
= "Folge uns auf "
|
||||||
script(src=assetPath("/js/amplitude.js") defer)
|
a(href=site.meta.twitterUrl target="_blank") Twitter
|
||||||
script(src=assetPath("/js/main.js") defer)
|
= " und "
|
||||||
|
a(href=site.meta.telegramUrl target="_blank") komm in die Gruppe
|
||||||
|
|!
|
||||||
|
p
|
||||||
|
| Made with 💛 by
|
||||||
|
= " "
|
||||||
|
a(href="https://d11n.net" target="_blank") d11n.
|
||||||
|
|||||||
@@ -1,8 +1,49 @@
|
|||||||
extends /template.pug
|
extends /template.pug
|
||||||
|
|
||||||
block main
|
block main
|
||||||
|
- const ticker = "Toximalistisches Infotainment für bullishe Bitcoiner +++ Sende uns einen Shout-Out: 50.000 Sats und du bist dabei +++ Alpenzitadelle läuft, wir spielen Hosp oder top! +++ Sei kein Holger, lass einen Vollknoten laufen! +++ Sei kein Vollknoten, komm in die Gruppe ! +++ Markus, ist bester Mann des Monats +++ "
|
||||||
|
.ticker
|
||||||
|
.inner
|
||||||
|
pre= ticker
|
||||||
|
pre= ticker
|
||||||
|
pre= ticker
|
||||||
|
|
||||||
|
.wrap
|
||||||
section
|
section
|
||||||
.lead.centered
|
|
||||||
:markdown-it(html linkify typographer)
|
:markdown-it(html linkify typographer)
|
||||||
- [Shoutouts](https://tallyco.in/s/zfxqtu/)
|
# Einundzwanzig, der Bitcoin Podcast
|
||||||
a.button(href="https://t.me/einundzwanzigpodcast") Komm in die Gruppe!
|
|
||||||
|
## Toximalistisches Infotainment für bullishe Bitcoiner
|
||||||
|
|
||||||
|
[Bitcoin](https://bitcoin.org/bitcoin.pdf), und sonst nichts.
|
||||||
|
Einmal die Woche sitzen die Jungs zusammen und besprechen die aktuellen Geschehnisse in Bitcoin und der Welt.
|
||||||
|
|
||||||
|
[Wir](/team/) bringen dir die [News](/podcast/news/) der Woche, sowie zusätzlich [Interviews](/podcast/interviews/) und
|
||||||
|
die besten Artikel als [Lesestunde](/podcast/lesestunde/).
|
||||||
|
Außerdem erfährst du in [Der Weg](/podcast/der-weg/) wie andere Leute zu Bitcoin gekommen sind.
|
||||||
|
|
||||||
|
section
|
||||||
|
h2 Aktuelle Episode
|
||||||
|
.current
|
||||||
|
+episodePlayer(currentEpisode)
|
||||||
|
|
||||||
|
section
|
||||||
|
:markdown-it(html linkify typographer)
|
||||||
|
## Komm in die Gruppe!
|
||||||
|
|
||||||
|
Mit unserer Telegram-Gruppe bieten wir dir ein Shitcoin-freies Refugium: Mit etwa 300 Gleichgesinnten
|
||||||
|
sprechen wir dort nicht über den Preis, Altcoins oder sonstige unwichtigen Dinge. In unserer Gruppe
|
||||||
|
findest du News, Informationen und bekommst praktische Ratschläge zu technischen Themen.
|
||||||
|
|
||||||
|
a.button(href=site.meta.telegramUrl) Komm in die Gruppe!
|
||||||
|
|
||||||
|
section
|
||||||
|
:markdown-it(html linkify typographer)
|
||||||
|
## Sei laut, shout out!
|
||||||
|
|
||||||
|
Wenn du möchtest, dass wir im Podcast deinen "Shoutout" vorlesen, dann bist du mit 50.000 Sats dabei!
|
||||||
|
Wir sammeln alle Einnahmen bis die 1.000.000 Sats voll sind. Dann lassen wir in unserer Telegram-Gruppe
|
||||||
|
darüber abstimmen welches Bitcoin-Projekt aus Deutschland diese kostbaren Sats bekommen soll.
|
||||||
|
Wenn du also einen Shoutout in unserem Podcast kaufst, unterstützt du damit auch ein Bitcoin Projekt.
|
||||||
|
|
||||||
|
a.button(href=site.meta,shoutoutUrl) Sende uns einen Shout-Out
|
||||||
|
|||||||
@@ -3,32 +3,33 @@ extends /template.pug
|
|||||||
block main
|
block main
|
||||||
- const current = episodes.shift()
|
- const current = episodes.shift()
|
||||||
|
|
||||||
section#podcast
|
#podcast.wrap
|
||||||
.lead.centered
|
section
|
||||||
h1.centered Podcast
|
h1 Podcast
|
||||||
:markdown-it(html linkify typographer)
|
:markdown-it(html linkify typographer)
|
||||||
Du findest uns auf
|
Du findest uns auf
|
||||||
[Spotify](https://open.spotify.com/show/10408JFbE1n8MexfrBv33r),
|
[Spotify](https://open.spotify.com/show/10408JFbE1n8MexfrBv33r),
|
||||||
[Apple Podcasts](https://podcasts.apple.com/de/podcast/einundzwanzig-der-bitcoin-podcast/id1488229907),
|
[Apple Podcasts](https://podcasts.apple.com/de/podcast/einundzwanzig-der-bitcoin-podcast/id1488229907),
|
||||||
[Overcast](https://overcast.fm/itunes1488229907/einundzwanzig-der-bitcoin-podcast) und
|
[Overcast](https://overcast.fm/itunes1488229907/einundzwanzig-der-bitcoin-podcast) und
|
||||||
[Anchor](https://anchor.fm/einundzwanzig).
|
[Anchor](https://anchor.fm/einundzwanzig).
|
||||||
a.button(href="https://anchor.fm/s/d8d3c38/podcast/rss") Abonnieren / RSS
|
a.button(href="https://anchor.fm/s/d8d3c38/podcast/rss") Jetzt abonnieren
|
||||||
|
|
||||||
.centered
|
section
|
||||||
h2.centered Kategorien
|
h2 Kategorien
|
||||||
ul.categories
|
ul.categories
|
||||||
li: a(href="/podcast/news") News
|
li: a(href="/podcast/news/") News
|
||||||
li: a(href="/podcast/interviews") Interviews
|
li: a(href="/podcast/interviews/") Interviews
|
||||||
li: a(href="/podcast/lesestunde") Lesestunde
|
li: a(href="/podcast/lesestunde/") Lesestunde
|
||||||
li: a(href="/podcast/der-weg") Der Weg
|
li: a(href="/podcast/der-weg/") Der Weg
|
||||||
li: a(href="/podcast/verschiedenes") Verschiedenes
|
li: a(href="/podcast/verschiedenes/") Verschiedenes
|
||||||
|
section
|
||||||
h2.centered Aktuelle Episode
|
h2 Aktuelle Episode
|
||||||
.current
|
.current
|
||||||
+episodePlayer(current).centered
|
+episodePlayer(current)
|
||||||
|
|
||||||
if episodes.length
|
if episodes.length
|
||||||
h2.centered Weitere Episoden
|
section
|
||||||
|
h2 Weitere Episoden
|
||||||
.episodes
|
.episodes
|
||||||
each e in episodes
|
each e in episodes
|
||||||
+episodeItem(e)
|
+episodeItem(e)
|
||||||
|
|||||||
16
src/team.pug
@@ -1,21 +1,23 @@
|
|||||||
extends /template.pug
|
extends /template.pug
|
||||||
|
|
||||||
block main
|
block main
|
||||||
section#team
|
#team.wrap
|
||||||
h1.centered Team
|
section
|
||||||
|
h1 Team
|
||||||
ul.members(data-shuffle)
|
ul.members(data-shuffle)
|
||||||
each m in shuffle(team)
|
each m in shuffle(team)
|
||||||
li.member
|
li.member
|
||||||
img(src=(assetPath(m.image)) alt=m.name loading="lazy")
|
img(src=assetPath(m.image) alt=m.name loading="lazy")
|
||||||
|
header
|
||||||
h2=m.name
|
h2=m.name
|
||||||
!=renderMarkdown(m.text)
|
|
||||||
.links
|
.links
|
||||||
if m.twitter
|
if m.twitter
|
||||||
a.plain(href=(m.twitter.startsWith('https://') ? m.twitter : `https://twitter.com/${m.twitter}`) target="_blank" title=`${m.name} on Twitter`)
|
a(href=(m.twitter.startsWith('https://') ? m.twitter : `https://twitter.com/${m.twitter}`) target="_blank" title=`${m.name} on Twitter`)
|
||||||
+sprite("twitter")
|
+sprite("twitter")
|
||||||
if m.github
|
if m.github
|
||||||
a.plain(href=(m.github.startsWith('https://') ? m.github : `https://github.com/${m.github}`) target="_blank" title=`${m.name} on GitHub`)
|
a(href=(m.github.startsWith('https://') ? m.github : `https://github.com/${m.github}`) target="_blank" title=`${m.name} on GitHub`)
|
||||||
+sprite("github")
|
+sprite("github")
|
||||||
if m.url
|
if m.url
|
||||||
a.plain(href=m.url target="_blank")
|
a(href=m.url target="_blank")
|
||||||
+sprite("url")
|
+sprite("url")
|
||||||
|
!=renderMarkdown(m.text)
|
||||||
|
|||||||
BIN
static/fonts/inconsolata-400.woff2
Normal file
BIN
static/fonts/inconsolata-700.woff2
Normal file
|
Before Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 975 B |
|
Before Width: | Height: | Size: 1.5 KiB |
1
static/img/favicon/favicon.svg
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 20 KiB |
@@ -1,23 +1,24 @@
|
|||||||
const shuffle = arr => { for (let i = arr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * i); const temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }; return arr }
|
const shuffle = arr => { for (let i = arr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * i); const temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; }; return arr }
|
||||||
|
|
||||||
|
// Theme Switch
|
||||||
|
const COLOR_MODES = ["light", "dark"]
|
||||||
|
const THEME_ATTR = "data-theme"
|
||||||
|
const STORE_ATTR = "theme"
|
||||||
|
const systemColorMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? COLOR_MODES[1] : COLOR_MODES[0]
|
||||||
|
const userColorMode = window.localStorage.getItem(STORE_ATTR)
|
||||||
|
const initialColorMode = COLOR_MODES.includes(userColorMode) ? userColorMode : systemColorMode
|
||||||
|
|
||||||
|
const setColorMode = mode => {
|
||||||
|
if (COLOR_MODES.includes(mode)) {
|
||||||
|
window.localStorage.setItem(STORE_ATTR, mode)
|
||||||
|
document.documentElement.setAttribute(THEME_ATTR, mode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setColorMode(initialColorMode)
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
const $body = document.body
|
|
||||||
const $headerAnchor = document.getElementById('header-anchor')
|
|
||||||
|
|
||||||
// Topbar
|
// Topbar
|
||||||
const topbarClass = 'topbar'
|
|
||||||
const topbarAppearClass = 'topbar--appear'
|
|
||||||
const addTopbar = () => {
|
|
||||||
$body.classList.add(topbarClass)
|
|
||||||
window.setTimeout(() => {
|
|
||||||
$body.classList.add(topbarAppearClass)
|
|
||||||
}, 25)
|
|
||||||
}
|
|
||||||
const removeTopbar = () => {
|
|
||||||
$body.classList.remove(topbarClass)
|
|
||||||
$body.classList.remove(topbarAppearClass)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
"IntersectionObserver" in window &&
|
"IntersectionObserver" in window &&
|
||||||
"IntersectionObserverEntry" in window &&
|
"IntersectionObserverEntry" in window &&
|
||||||
@@ -25,14 +26,10 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
) {
|
) {
|
||||||
const headerObserver = new IntersectionObserver(entries => {
|
const headerObserver = new IntersectionObserver(entries => {
|
||||||
const { boundingClientRect: { y, height } } = entries[0]
|
const { boundingClientRect: { y, height } } = entries[0]
|
||||||
if (Math.abs(y) > height) {
|
const fn = Math.abs(y) > height ? 'add' : 'remove'
|
||||||
addTopbar()
|
document.body.classList[fn]('topbar')
|
||||||
} else {
|
|
||||||
removeTopbar()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
headerObserver.observe(document.getElementById('header-anchor'))
|
||||||
headerObserver.observe($headerAnchor)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// List shuffling
|
// List shuffling
|
||||||
@@ -44,7 +41,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Player
|
// Player
|
||||||
if (window.Einundzwanzig.amplitude && window.Amplitude) {
|
if (window.Einundzwanzig && window.Einundzwanzig.amplitude && window.Amplitude) {
|
||||||
window.Amplitude.init(window.Einundzwanzig.amplitude)
|
window.Amplitude.init(window.Einundzwanzig.amplitude)
|
||||||
|
|
||||||
document.querySelector('.player__progress').addEventListener('click', function (e) {
|
document.querySelector('.player__progress').addEventListener('click', function (e) {
|
||||||
@@ -53,4 +50,14 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||||||
window.Amplitude.setSongPlayedPercentage((parseFloat(x) / parseFloat(this.offsetWidth)) * 100)
|
window.Amplitude.setSongPlayedPercentage((parseFloat(x) / parseFloat(this.offsetWidth)) * 100)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Theme Switch
|
||||||
|
document.querySelectorAll(".theme").forEach(function (link) {
|
||||||
|
link.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault()
|
||||||
|
const current = document.documentElement.getAttribute(THEME_ATTR) || COLOR_MODES[0]
|
||||||
|
const mode = current === COLOR_MODES[0] ? COLOR_MODES[1] : COLOR_MODES[0]
|
||||||
|
setColorMode(mode)
|
||||||
|
});
|
||||||
|
});
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ const renderPage = (template, out, data = {}) => {
|
|||||||
writeFileSync(dst, rendered)
|
writeFileSync(dst, rendered)
|
||||||
}
|
}
|
||||||
|
|
||||||
renderPage('index', 'index', { navCurrent: 'index' })
|
renderPage('index', 'index', { navCurrent: 'index', currentEpisode: episodes[0] })
|
||||||
renderPage('team', 'team', { navCurrent: 'team', team })
|
|
||||||
renderPage('podcast', 'podcast', { navCurrent: 'podcast', episodes: [...episodes] })
|
renderPage('podcast', 'podcast', { navCurrent: 'podcast', episodes: [...episodes] })
|
||||||
|
renderPage('team', 'team', { navCurrent: 'team', team })
|
||||||
|
|
||||||
renderPage('category', 'podcast/news', { navCurrent: 'podcast', categoryName: 'News', episodes: episodes.filter(e => e.category === 'news') })
|
renderPage('category', 'podcast/news', { navCurrent: 'podcast', categoryName: 'News', episodes: episodes.filter(e => e.category === 'news') })
|
||||||
renderPage('category', 'podcast/interviews', { navCurrent: 'podcast', categoryName: 'Interviews', episodes: episodes.filter(e => e.category === 'interview') })
|
renderPage('category', 'podcast/interviews', { navCurrent: 'podcast', categoryName: 'Interviews', episodes: episodes.filter(e => e.category === 'interview') })
|
||||||
|
|||||||