1 Commits

Author SHA1 Message Date
2ce3f4ff51 feat: CI/CD setup 2022-01-05 11:36:57 +01:00
29 changed files with 173 additions and 578 deletions

View File

@ -1,2 +0,0 @@
/content/
/public/

View File

@ -2,29 +2,16 @@
kind: pipeline
name: continuous deployment
steps:
- name: push hugo image
- name: build image
image: plugins/docker
settings:
username:
from_secret: docker_reg_username
password:
from_secret: docker_reg_passwd
dockerfile: Dockerfile.hugo
repo: decentral1se/beta.lumbung.space
tags: latest
- name: push scripts image
image: plugins/docker
settings:
no_cache: true
username:
from_secret: docker_reg_username
password:
from_secret: docker_reg_passwd
dockerfile: Dockerfile.scripts
repo: decentral1se/beta.lumbung.space-scripts
tags: latest
- name: deploy stack
image: decentral1se/stack-ssh-deploy:latest
settings:
@ -32,9 +19,6 @@ steps:
host: lumbung.space
deploy_key:
from_secret: drone_ssh_lumbung.space
depends_on:
- push hugo image
- push scripts image
trigger:
branch:
- main

3
.gitignore vendored
View File

@ -1,6 +1,5 @@
*.lock
.env
.venv/
/content
/content/
/public/
resources

View File

@ -1,11 +0,0 @@
FROM python:3.9.9-alpine
RUN apk add --no-cache git bash
WORKDIR /src/
RUN git clone https://git.autonomic.zone/ruangrupa/lumbunglib /src/
RUN pip install -U -I setuptools pip
RUN pip install -I .

View File

@ -7,41 +7,13 @@
> This is a work in progress. The end goal of this is to have a new design and
> implementation for [`lumbung.space`](https://lumbung.space) for January 2022.
## FAQ
### How does the CI/CD work?
The [`.drone.yml`](./.drone.yml) triggers a build on [drone.autonomic.zone](https://drone.autonomic.zone/ruangrupa/living-room) of the [`Dockerfile.hugo`](./Dockerfile.hugo) and the [`Dockerfile.scripts`](./Dockerfile.scripts) and then deploys the [`compose.yml`](./compose.yml) stack using `docker stack deploy`.
### How often is the content regenerated?
See the `sleep ...` statements in the [`compose.yml`](./compose.yml).
### How do I see if content generation is working?
(requires `lumbung.space` docker context)
- `docker service logs -f beta_lumbung_space_peertube`
- `docker service logs -f beta_lumbung_space_calendar`
- `docker service logs -f beta_lumbung_space_feed`
Where `beta_lumbung_space_<service-name>` and you see the service name in the [`compose.yml`](./compose.yml).
### How do I add a feed?
Add your RSS feed URL to [`feeds_list.txt`](./feeds_list.txt) and don't forget [this deploy step](https://git.autonomic.zone/ruangrupa/living-room#deploy-a-new-feeds_list-txt).
### How do I wipe all the generated content?
(requires `lumbung.space` docker context)
`docker exec -it $(docker container ls -q -f name=beta_lumbung_space_app) bash -c "rm -rf /src/content/*"`
## Hacking
[Install Hugo](https://gohugo.io/getting-started/installing/).
### Generate the site
[Install Hugo](https://gohugo.io/getting-started/installing/) and `hugo serve --watch`
`hugo serve --watch`
### Generate `lumbung[dot]space` posts
@ -58,31 +30,6 @@ lumbunglib-cal
export OUTPUT_DIR=content/video
lumbunglib-vid
export OUTPUT_DIR=content/feed
lumbunglib-feed # reads ./feeds_list.txt
export OUTPUT_DIR=content/hash
export MASTODON_AUTH_TOKEN=foobar
lumbunglib-hash
```
Afterwards, you can automatically run it with `make gen`.
After a `git pull`, you may need to run `pip install git+https://git.autonomic.zone/ruangrupa/lumbunglib` again.
### Manually deploying new images
- `docker login -u decentral1se -p $(logins/dockerhub/decentral1se)`
- `make push-hugo`
- `make push-scripts`
### Manually deploy the site
(requires `lumbung.space` docker context)
- `make deploy`
### Deploy a new `feeds_list.txt`
Increment the `_v<n>` (e.g. `v1` -> `v2`) in [`compose.yml`](./compose.yml) `configs` to avoid any deployment error.

View File

@ -33,94 +33,9 @@ services:
- "traefik.http.services.coop-cloud-site.loadbalancer.server.port=1313"
- "traefik.http.routers.coop-cloud-site.tls.certresolver=production"
peertube:
image: decentral1se/beta.lumbung.space-scripts:latest
volumes:
- content:/src/content
environment:
OUTPUT_DIR: /src/content/video
command: |
bash -c "
while true
do
echo 'generating peertube posts...'
/usr/local/bin/lumbunglib-vid
echo 'going to sleep for 5 minutes...'
sleep 300
done
"
calendar:
image: decentral1se/beta.lumbung.space-scripts:latest
volumes:
- content:/src/content
environment:
OUTPUT_DIR: /src/content/calendar
CALENDAR_URL: "https://cloud.lumbung.space/remote.php/dav/public-calendars/WbnHM8YdCkKT6bcT?export"
command: |
bash -c "
while true
do
echo 'generating calendar posts...'
/usr/local/bin/lumbunglib-cal
echo 'going to sleep for 5 minutes...'
sleep 300
done
"
feed:
image: decentral1se/beta.lumbung.space-scripts:latest
volumes:
- content:/src/content
configs:
- source: feeds_list
target: /src/feeds_list.txt
environment:
OUTPUT_DIR: /src/content/feed
command: |
bash -c "
while true
do
echo 'generating feed posts...'
/usr/local/bin/lumbunglib-feed
echo 'going to sleep for 5 minutes...'
sleep 300
done
"
hashtag:
image: decentral1se/beta.lumbung.space-scripts:latest
volumes:
- content:/src/content/
secrets:
- masto_key
environment:
OUTPUT_DIR: /src/content/hash
command: |
bash -c "
export MASTODON_AUTH_TOKEN=`cat /run/secrets/masto_key`;
while true
do
echo 'generating mastodon posts...'
/usr/local/bin/lumbunglib-hash
echo 'going to sleep for 5 minutes...'
sleep 300
done
"
volumes:
content:
networks:
proxy:
external: true
configs:
feeds_list:
name: beta_lumbung_space_feeds_list_v1
file: feeds_list.txt
secrets:
masto_key:
name: beta_lumbung_space_masto_key_v1
external: true

View File

@ -1,7 +1,4 @@
baseURL = "https://beta.lumbung.space"
languageCode = "en-gb"
title = "lumbung.space"
title = "beta.lumbung.space"
theme = "lumbung-theme"
[params]
logo = "/img/logo.svg"

View File

@ -1,11 +0,0 @@
http://artscollaboratory.org/feed/
http://www.festivalsegou.org/spip.php?page=backend&lang=fr
https://artivismo.org/feed/
https://brittoartstrust.org/feed/
https://fafswag.wordpress.com/feed/
https://gudskul.art/feed/
https://inland.org/feed/
https://jatiwangiartfactory.tumblr.com/rss/
https://projectartworks.org/feed/
https://wajukuuarts.wordpress.com/feed/
https://www.masartemasaccion.org/feed/

View File

@ -7,18 +7,10 @@ gen:
@CALENDAR_URL="https://cloud.lumbung.space/remote.php/dav/public-calendars/WbnHM8YdCkKT6bcT?export"; \
OUTPUT_DIR=content/calendar; \
lumbunglib-cal && \
OUTPUT_DIR=content/video lumbunglib-vid && \
OUTPUT_DIR=content/feed lumbunglib-feed
OUTPUT_DIR=content/video lumbunglib-vid
push-hugo:
@docker build -t decentral1se/beta.lumbung.space -f Dockerfile.hugo . && \
docker push decentral1se/beta.lumbung.space
push-scripts:
@docker build --no-cache -t decentral1se/beta.lumbung.space-scripts -f Dockerfile.scripts . && \
docker push decentral1se/beta.lumbung.space-scripts
deploy:
@DOCKER_CONTEXT=lumbung.space docker stack deploy -c compose.yml beta_lumbung_space
.PHONY: serve gen push-hugo push-scripts deploy
.PHONY: serve gen push-hugo

View File

@ -3,13 +3,9 @@
{{- partial "head.html" . -}}
<body>
{{- partial "header.html" . -}}
<div id="content">
{{- block "main" . }}{{- end }}
{{- block "main" . }}{{- end }}
</div>
{{- partial "news-ticker.html" . -}}
{{- partial "footer.html" . -}}
</body>
<script>

View File

@ -1,40 +1,36 @@
{{ define "main" }}
<main>
<section class='entries'>
<div class="h-feed">
{{ range (.Paginator 13).Pages }}
<section class='entries'>
<div class="h-feed">
{{ range (.Paginator 13).Pages }}
{{ if in .Params.categories "tv"}}
{{- partial "video_box.html" . -}}
{{ if in .Params.categories "tv"}}
{{- partial "video_box.html" . -}}
{{ else if in .Params.categories "calendar" }}
{{ else if in .Params.categories "calendar" }}
{{- partial "calendar_card.html" . -}}
{{- partial "calendar_card.html" . -}}
{{ else if in .Params.categories "network" }}
{{ else if in .Params.categories "network" }}
{{- partial "network_card.html" . -}}
{{- partial "network_card.html" . -}}
{{ else if in .Params.categories "shouts" }}
{{ else if in .Params.categories "shouts" }}
{{- partial "shout_card.html" . -}}
{{ else if in .Params.categories "page" }}
{{- partial "shout_card.html" . -}}
{{- partial "blank.html" . -}}
{{ else }}
{{ else }}
{{- partial "card.html" . -}}
{{- partial "card.html" . -}}
{{ end }}
{{ end }}
{{ end }}
</div>
{{ end }}
</div>
<nav class="pagination">
{{ template "_internal/pagination.html" . }}
</nav>
<nav class="pagination">
{{ template "_internal/pagination.html" . }}
</nav>
</main>
</main>
{{ end }}

View File

@ -1,37 +1,37 @@
{{ define "main" }}
<main>
<section class='entries'>
<div class="h-feed">
{{ range (.Paginator 13).Pages }}
<section class='entries'>
<div class="h-feed">
{{ range (.Paginator 13).Pages }}
{{ if in .Params.categories "tv"}}
{{- partial "video_box.html" . -}}
{{ if in .Params.categories "tv"}}
{{- partial "video_box.html" . -}}
{{ else if in .Params.categories "calendar" }}
{{ else if in .Params.categories "calendar" }}
{{- partial "calendar_card.html" . -}}
{{- partial "calendar_card.html" . -}}
{{ else if in .Params.categories "network" }}
{{ else if in .Params.categories "network" }}
{{- partial "network_card.html" . -}}
{{- partial "network_card.html" . -}}
{{ else if in .Params.categories "shouts" }}
{{ else if in .Params.categories "shouts" }}
{{- partial "shout_card.html" . -}}
{{- partial "shout_card.html" . -}}
{{ else }}
{{ else }}
{{- partial "card.html" . -}}
{{- partial "card.html" . -}}
{{ end }}
{{ end }}
{{ end }}
</div>
{{ end }}
</div>
<nav class="pagination">
{{ template "_internal/pagination.html" . }}
</nav>
</main>
<nav class="pagination">
{{ template "_internal/pagination.html" . }}
</nav>
</main>
{{ end }}

View File

@ -1,12 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Portal</title>
</head>
<body>
</body>
</html>

View File

@ -1,5 +1,5 @@
<footer>
<footer class="bar">
<div>
<a href="https://panduan.lumbung.space/share/684ea8a2-bc47-4111-acf2-f88a200b640f">Imprint</a> - <a href="https://panduan.lumbung.space/share/8a742222-2561-4d67-a9f1-6c7c4fe8bead">Privacy Policy</a>
Imprint - Privacy Policy - Copyright
</div>
</footer>
</footer>

View File

@ -1,55 +1,34 @@
<header id="top-menu">
<a href="{{ .Site.Params.baseURL }}" class="home-link">
<img class="logo" src="{{ .Site.Params.Logo }}" alt="{{ .Site.Title }}">
</a>
<nav class="menu">
<ul>
{{/* {{ $currentPage := . }}
{{ range .Site.Menus.main }}
{{ if .HasChildren }}
<details class="menu-dropdown">
<summary class="menu-nav-item {{ if $currentPage.HasMenuCurrent "main" . }}active{{ end }}">
<a href="#">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
</summary>
<ul class="sub-menu">
{{ range .Children }}
<li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
<a href="{{ .URL }}">{{ .Name }}</a>
</li>
{{ end }}
</ul>
</details>
{{ else }}
<li class="menu-nav-item">
<a href="{{ .URL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
<header class="bar" id="top-menu">
<h1 class="logo"><a href="/"><img src="{{ .Site.Params.logo }}" alt="{{ .Site.Title }}"/></a></h1>
<nav class="menu">
<ul>
{{ $currentPage := . }}
{{ range .Site.Menus.main }}
{{ if .HasChildren }}
<details class="menu-dropdown">
<summary class="menu-nav-item {{ if $currentPage.HasMenuCurrent "main" . }}active{{ end }}">
<a href="#">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
</summary>
<ul class="sub-menu">
{{ range .Children }}
<li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
<a href="{{ .URL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ end }} */}}
<li><a href="/">home</a></li>
<li><a href="/calendar/">calendar</a></li>
<li><a href="/video/">tv</a></li>
<li><a href="/hash/">socials</a></li>
<li><a href="/feed/">feeds</a></li>
<li><a href="https://panduan.lumbung.space/share/272026ff-57fd-4894-8d68-58606c77044c/doc/frequently-asked-questions-faq-pl8OTF58Od">FAQ</a></li>
<li><a href="https://panduan.lumbung.space/share/ece8e392-7b21-4379-bd82-a11e06ebf1fb">Community Guidelines</a></li>
<li><a href="https://panduan.lumbung.space/share/507566f6-6b7e-402e-bfd4-034feebdcba6">Glossary</a></li>
<li><a href="https://panduan.lumbung.space/share/ef6f6638-856d-4c9a-ab89-d82af567aba4">Terms of Use</a></li>
</ul>
</nav>
<div>
<div class="search">
<img src="{{ .Site.Params.baseURL }}/img/search.svg" alt="search">
<input type="search" name="" id="">
</div>
<a href="https://members.lumbung.space" id="login">login</a>
</div>
</header>
</ul>
</details>
{{ else }}
<li class="menu-nav-item">
<a href="{{ .URL }}">
{{ .Pre }}
<span>{{ .Name }}</span>
</a>
</li>
{{ end }}
{{ end }}
</ul>
</nav>
</header>

View File

@ -1 +0,0 @@
<iframe src="https://documenta-fifteen.de/en/external-ticker-lumbung/" sandbox="allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox" scrolling="no" style="overflow: hidden" width="100%" height="80px" frameborder="0"></iframe>

View File

@ -1,5 +1,4 @@
<div class='video-box'>
<div class='video channel'><a href='{{ .Params.channel_url }}'> {{ .Params.video_channel }}</a></div>
<div class='media' id='media-{{ .Params.uuid }}'>
<span class='video-thumbnail' id='thumb-{{ .Params.uuid }}'
href="https://tv.lumbung.space/videos/watch/{{ .Params.uuid }}"
@ -10,9 +9,9 @@
<img src="{{.Site.BaseURL}}{{ .File.Dir }}{{ .Params.preview_image }}">
{{ if .Params.is_live}}
<div class="video-thumbnail-duration-overlay">LIVE</div>
<div class="video-thumbnail-duration-overlay">LIVE</div>
{{ else }}
<div class="video-thumbnail-duration-overlay">{{.Params.video_duration}}</div>
<div class="video-thumbnail-duration-overlay">{{.Params.video_duration}}</div>
{{ end }}
<div class="play-overlay">
@ -22,13 +21,10 @@
</div>
<div class='video metadata'>
<div class='title'>{{ .Title }}</div>
<div class='video channel'><a href='{{ .Params.channel_url }}'> {{ .Params.video_channel }}</a></div>
<input class='descr_button' type='checkbox' id='toggle-{{ .Params.uuid }}'/>
<label class='video' for='toggle-{{ .Params.uuid }}'>
<svg class="dot" width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2172 3.892C9.86979 3.02585 9.33722 2.34509 8.61023 1.77874C8.23826 1.49028 7.72957 1.04191 7.21547 0.839212C7.21382 0.703503 7.14487 0.575079 6.97767 0.503871C5.42624 -0.162284 3.69503 0.311299 2.52647 1.51482C1.94635 2.11223 1.51951 2.8478 1.21108 3.62501C0.914861 4.3676 0.507572 5.32483 0.948415 6.07996C1.00646 6.17836 1.09356 6.24193 1.1908 6.27306C1.2735 7.35573 1.57765 8.46801 2.37847 9.21874C3.2325 10.0162 4.43613 10.3053 5.5673 10.1773C6.72371 10.0468 7.96432 9.57061 8.8816 8.82474C9.01086 8.71974 9.1274 8.60844 9.23337 8.49296C9.27968 8.4924 9.32805 8.4875 9.37839 8.4718C11.3643 7.82491 10.8101 5.37347 10.2172 3.892Z" />
</svg>
</label>
<div class='video date' style="display: none;"> <a href='https://tv.lumbung.space/videos/watch/{{ .Params.uuid }}'> {{ .Date.Format "Jan 02, 2006" }}</a></div>
<label class='video' for='toggle-{{ .Params.uuid }}'></label>
<div class='video date'> <a href='https://tv.lumbung.space/videos/watch/{{ .Params.uuid }}'> {{ .Date.Format "Jan 02, 2006" }}</a></div>
<div class="description video" id='vid-{{ .Params.uuid }}'> {{ .Content }}
<ul>
{{ range (.GetTerms "categories") }}

View File

@ -1,3 +1,17 @@
/*nice body-border color combos
antiquewhite - burlywood
peachpuff - tomato
lightpink - crimson
lightblue - cornflowerblue
palegreen - lightseagreen
steelblue - aliceblue
fonts
bungeeshade
allerta
*/
@font-face {
font-family: BarrioRegular;
src: url(fonts/Barrio_Regular.woff);
@ -13,48 +27,23 @@
src: url(fonts/Anonymous_Pro_Regular.woff);
}
@font-face {
font-family: Gudea;
font-style: normal;
font-weight: 400;
src: url(fonts/gudea.woff2) format("woff2");
}
@font-face {
font-family: Gudea;
font-style: italic;
font-weight: 400;
src: url(fonts/gudea-italic.woff2) format("woff2");
}
@font-face {
font-family: Gudea;
font-style: normal;
font-weight: 700;
src: url(fonts/gudea-bold.woff2) format("woff2");
h1, h2, h3 {
font-family: BarrioRegular;
}
:root {
--border-color: tomato;
--tv-dark: #237D0F;
--tv-light: #E2FAD7;
--pen-dark: #E0005C;
--pen-light: #FEDAE9;
--social-light: #C2E4F2;
--social-dark: #0163A4;
--gallery-light: #FCF4B9;
--gallery-dark: #846A00;
}
/*Main Stuff*/
body {
font-size: 21px;
font-family: Gudea;
margin: 0;
font-size:24px;
font-family: ZenMaruGothic;
color: maroon;
}
a {
color: #1B4C8A;
}
* {
@ -69,6 +58,7 @@ body {
.card {
border: 2px solid var(--border-color);
box-shadow:1em 1em 0 #d2d1c8;
background-color: #fff09d;
max-width: 600px;
margin-bottom: 2em;
@ -129,79 +119,16 @@ body {
/* base header & menu */
#top-menu {
padding: 1rem;
display: grid;
grid-template-columns: 300px 1fr auto;
align-items: flex-start;
position: fixed;
left: 5%;
transform: translate(-50%);
width: 30%;
z-index: 1;
margin-top: 1em;
transform: rotate(-3deg);
}
.home-link { text-decoration: none; }
.logo {
width: 283px;
margin-top: 2rem;
}
#top-menu ul {
margin-left: 3rem;
}
#top-menu a {
text-decoration: none;
color: #333;
padding: 5px;
margin: 0 2rem;
}
#top-menu a:hover,
#top-menu a:focus {
color: black;
}
#top-menu #login {
font-weight: bold;
}
#top-menu div {
display: flex;
}
#top-menu .search {
display: flex;
justify-content: flex-end;
align-items: flex-end;
/* temporarily disabling search */
display: none;
}
#top-menu input {
border: none;
border-bottom: 1px solid #333;
margin-right: 2rem;
font-size: 13px;
margin-left: 5px;
}
#top-menu input:focus,
#top-menu input:hover {
outline: none;
border-bottom: 1px solid #333;
}
@media (max-width: 480px) {
#top-menu {
grid-template-columns: 1fr;
}
.menu,
#top-menu .search,
#login {
display: none;
}
}
.menu-dropdown summary {
.menu-dropdown summary{
list-style: none;
cursor: pointer;
}
@ -210,8 +137,22 @@ body {
display: none;
}
.logo {
margin-left: 0.5em;
margin-right: 0.5em;
margin-top: 0.2em;
margin-bottom: 0.2em;
}
.logo a {
text-decoration: none;
}
.menu {
margin-top: 8px;
border-top: 2px solid var(--border-color);
margin: 0px;
padding: 0px;
}
.menu ul {
@ -219,7 +160,6 @@ body {
margin: 0;
padding: 0;
display: flex;
text-transform: lowercase;
}
.menu-nav-item {
@ -327,7 +267,7 @@ footer.post-footer {
.card.network {
border: 2px solid darkcyan;
box-shadow:1em 1em 0 #d2d1c8;
background-color: lightgreen;
max-width: min-content;
margin-bottom: 2em;
@ -442,7 +382,7 @@ div.network-source {
.card.shout {
border-color: steelblue;
border: 2px solid;
box-shadow:1em 1em 0 #d2d1c8;
background-color: aliceblue;
max-width: min-content;
margin-bottom: 2em;
@ -456,6 +396,7 @@ div.network-source {
.card.calendar {
border: 2px solid cornflowerblue;
box-shadow:1em 1em 0 #d2d1c8;
background-color: lightblue;
max-width: 360px;
margin-bottom: 2em;
@ -463,6 +404,7 @@ div.network-source {
margin: 0 3em 3em 0;
align-self: start;
color: royalblue;
}
.card.calendar.past {
@ -565,6 +507,7 @@ input:checked + label +.calendar-location+.description {
}
.metadata label {
text-align: center;
vertical-align: sub;
flex-grow: 1;
font-weight: normal;
@ -608,38 +551,26 @@ ul.pagination {
display: block;
text-align: center;
font-size: 38px;
border-bottom: 2px solid black;
cursor: pointer;
border: 2px solid #1B4C8A;
box-shadow:0.4em 0.4em 0 #d2d1c8;
}
li.page-item {
background-color: lightblue;
padding: 0.4em;
position: relative;
}
li.page-item a {
color: black;
}
li.page-item.active {
border-color: tomato;
background-color: peachpuff;
border: 2px solid tomato;
padding: 0.4em;
}
li.page-item.active::after,
li.page-item.active::before {
border-color: tomato
}
.active a.page-link {
color: tomato;
}
li.page-item.disabled {
display: none;
}
/*
li.page-item:nth-child(even) {
transform: rotate(-1deg);
}
@ -654,65 +585,17 @@ li.page-item:nth-child(5) {
li.page-item:nth-child(8) {
transform: rotate(-3deg);
} */
li.page-item:first-child,
li.page-item:last-child {
border: none;
text-decoration: none;
}
li.page-item:first-child::before,
li.page-item:first-child::after,
li.page-item:last-child::before,
li.page-item:last-child::after {
display: none;
}
li.page-item a {
text-decoration: none;
}
li.page-item:hover a {
text-decoration: underline;
}
li.page-item:before {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 50%;
width: 50%;
border-left: 2px solid black;
}
li.page-item:after {
content: "";
position: absolute;
right: 0;
bottom: 0;
height: 50%;
width: 50%;
border-right: 2px solid black;
}
/* Page footer */
footer {
background: #AFAFAF;
color: #333333;
font-size: 15px;
padding: 1em 4em;
}
footer a {
color: #333333;
text-decoration: none;
}
footer a:hover {
cursor: pointer;
text-decoration: underline;
footer.bar {
margin-top: 0;
width: 80%;
margin-left: auto;
display: block;
margin-right: auto;
margin-bottom: 2em;
}

View File

@ -1,18 +1,14 @@
:root {
--tv-dark: #237D0F;
--tv-light: #E2FAD7;
--video-border-color: burlywood;
--video-background-color: antiquewhite;
}
.video-box {
border-top: 1px solid var(--tv-dark);
max-width: 560px;
margin: auto;
border:2px solid var(--video-border-color);
max-width:560px;
margin:auto;
box-shadow:1em 1em 0 #d2d1c8;
margin-bottom: 2em;
color: var(--tv-dark);
}
.video-box a {
color: var(--tv-dark);
color: chocolate;
}
.video-box:nth-child(even){
@ -41,7 +37,7 @@
}
.video {
background-color: var(--tv-light);
background-color: var(--video-background-color);
}
.video .metadata{
@ -52,30 +48,29 @@
.metadata .title{
margin-top:0;
border-top: 2px solid var(--tv-dark);
border-bottom: 2px solid var(--tv-dark);
border-top: 2px solid var(--video-border-color);
border-bottom: 2px solid var(--video-border-color);
padding:0.5em;
font-weight:700;
font-size:1.3rem;
flex-basis: 100%;
padding-bottom: 100px;
}
.video.channel{
border-right: 2px solid var(--tv-dark);
border-right: 2px solid var(--video-border-color);
padding: 0.5em 0.9em 0.5em 0.9em;
font-size: 0.8rem;
}
.video.date {
float:right;
border-left: 2px solid var(--tv-dark);
border-left: 2px solid var(--video-border-color);
padding: 0.5em 0.9em 0.5em 0.9em;
font-size: 0.8rem;
}
.video.description {
border-top: 2px solid var(--tv-dark);
border-top: 2px solid var(--video-border-color);
padding: 0.8em 0.8em 0.8em 0.8em;
}
@ -125,8 +120,8 @@ input:checked + label + .video.date +.description {
.video-thumbnail-duration-overlay {
display: inline-block;
background-color: var(--tv-dark);
color: white;
background-color: var(--video-background-color);
color: chocolate;
font-size: 14px;
line-height: 1.1;
z-index: 10;
@ -134,7 +129,7 @@ input:checked + label + .video.date +.description {
padding: 1px 3px 1px 3px;
right: 5px;
bottom: 5px;
border: 2px solid var(--tv-dark);
border: 2px solid var(--video-border-color);
}
.play-overlay {
@ -158,25 +153,3 @@ input:checked + label + .video.date +.description {
.video-thumbnail:hover .play-overlay .play-icon {
transform:translate(-50%,-50%) scale(1);
}
.video-box .dot {
fill: var(--tv-dark);
}
.video.channel a {
width: max-content;
background: var(--tv-dark);
padding: 0.5em;
position: relative;
bottom: 19px;
z-index: 1;
transform: rotate(2deg);
color: white;
}
.video.channel {
background: var(--tv-light);
display: flex;
justify-content: center;
border: none;
}

View File

@ -1,3 +0,0 @@
<svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg">
<path d="M10.2172 3.892C9.86979 3.02585 9.33722 2.34509 8.61023 1.77874C8.23826 1.49028 7.72957 1.04191 7.21547 0.839212C7.21382 0.703503 7.14487 0.575079 6.97767 0.503871C5.42624 -0.162284 3.69503 0.311299 2.52647 1.51482C1.94635 2.11223 1.51951 2.8478 1.21108 3.62501C0.914861 4.3676 0.507572 5.32483 0.948415 6.07996C1.00646 6.17836 1.09356 6.24193 1.1908 6.27306C1.2735 7.35573 1.57765 8.46801 2.37847 9.21874C3.2325 10.0162 4.43613 10.3053 5.5673 10.1773C6.72371 10.0468 7.96432 9.57061 8.8816 8.82474C9.01086 8.71974 9.1274 8.60844 9.23337 8.49296C9.27968 8.4924 9.32805 8.4875 9.37839 8.4718C11.3643 7.82491 10.8101 5.37347 10.2172 3.892Z" />
</svg>

Before

Width:  |  Height:  |  Size: 745 B

View File

@ -1,18 +0,0 @@
<svg width="851" height="261" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#a)">
<path d="M161.7 3.75c-5.03 0-8.04 2.57-8.04 6.88v97.57c0 9.86-2.46 17.36-7.3 22.3-4.82 4.91-12.11 7.4-21.67 7.4-8.03 0-14.5-1.88-19.22-5.59-6.19-4.87-9.33-12.93-9.33-23.97V65.23c0-5.08-4.25-6.88-7.89-6.88-7.4 0-8.2 4.81-8.2 6.88v43.54c0 13.94 3.91 24.82 11.61 32.31 7.7 7.49 18.86 11.29 33.17 11.29 14.44 0 25.66-3.76 33.34-11.19 7.69-7.46 11.58-18.36 11.58-32.41V10.63c0-4.37-2.93-6.88-8.05-6.88Z" fill="#ED7641"/>
<path d="M848.17 32.16c-.32-.39-.69-.62-.99-.81-.16-.1-.32-.2-.39-.28-.06-.07-.19-.3-.27-.45-.2-.37-.42-.79-.8-1.11-.78-.68-1.94-1.35-3.06-2-.38-.22-.76-.44-1.12-.66-2.94-1.78-7.33-3.8-11.56-.86l-.2.14-.14.2c-1.53 2.22-1.71 5.22-1.91 8.4-.08 1.25-.15 2.54-.31 3.82-.14 1.15-.27 2.43-.41 3.79-.3 2.98-.64 6.37-1.17 8.17-.09.3-.62.74-1.05 1.1-.49.41-1 .83-1.4 1.39-.25.34-.42.71-.58 1.07-.12.27-.24.52-.36.7-.35.51-.75.9-1.17 1.31-.39.38-.79.78-1.13 1.25-.65.9-.89 1.95-1.1 2.87-.12.53-.24 1.04-.42 1.49-.25.64-.93 1.46-1.36 1.98-.42.51-.88 1.17-1.33 1.8-.39.56-.8 1.14-1.05 1.43-.18.21-.48.41-.79.63-.51.36-1.09.77-1.54 1.4-.3.42-.48.82-.62 1.14-.14.3-.22.48-.33.6-.34.34-.83.62-1.35.92-.51.29-1.04.59-1.53 1-.32.27-.55.56-.74.78-.13.16-.24.3-.33.37-.12.09-.31.17-.52.27-.3.14-.63.3-.99.54-.6.41-1.05.92-1.49 1.41-.26.3-.51.58-.77.8-.79.7-1.6 1.34-2.38 1.97-1.04.83-2.12 1.69-3.12 2.66-.82.38-1.73.51-2.77.66-.76.11-1.62.23-2.52.47-1.45.37-3.3 1.15-4.72 1.97-1.99 1.15-6.14 3.56-4.3 7.7 1.07 2.41 3.69 5.06 5.84 5.92.84.34 1.64.48 2.39.48 2.07 0 3.83-1.05 5.44-2 1.12-.66 2.18-1.29 3.26-1.55 2.73-.64 5.87-1.5 8.49-3.05l.19-.11.14-.17c1.88-2.17 4.04-4.08 6.13-5.92 3.05-2.68 6.2-5.46 8.71-9.22.48-.3.86-.68 1.19-1.03.37-.38.59-.59.8-.69.17.46-.04 1.15-.58 2.48-.37.91-.76 1.85-.85 2.85-.15 1.67.64 3.5 2.11 4.91 1.4 1.34 3.11 1.99 4.67 1.78l.17-.02.16-.06c3.35-1.35 3.53-5.55 3.68-9.26.08-1.98.17-4.03.71-5.38.95-1.12 1.6-2.56 2.23-3.95.7-1.54 1.42-3.14 2.43-3.88l.17-.13.12-.17c1.03-1.42 1.65-3.29 2.26-5.1.08-.24.16-.49.24-.73 1.49-1.4 2.42-3.4 3.32-5.33.51-1.08.98-2.1 1.51-2.91l.1-.15.06-.17c2.27-7.04 1.89-13.9-1-17.47ZM776.95 71.1c.16-.43.34-.91.48-1.45.47-1.81.6-3.7.72-5.53.1-1.51.19-2.93.47-4.2.23-1.03.57-2.08.93-3.19.75-2.3 1.6-4.9 1.64-8.13.61-1.12 1.12-2.36 1.62-3.55.51-1.21.99-2.37 1.55-3.38 1.69-1.17 3.02-2.68 4.31-4.14 2.39-2.73 4.47-5.09 8.4-4.93.43.02.9.06 1.35.11 1.78.18 3.99.39 4.98-1.35 1.25-2.22-.02-5.05-3.4-7.55-2.07-1.54-4.7-2.68-7.6-3.32-.54-.12-1.09-.25-1.65-.37-2.6-.6-5.29-1.22-7.84-1.13-1.46.06-2.91.72-4.31 1.37-.37.17-.74.34-1.12.5-.48.21-.97.4-1.45.58-1.26.49-2.45.95-3.26 1.6-1.05.84-2.03 2.42-2.9 3.82-.42.67-.81 1.31-1.12 1.7-1.43 1.84-1.74 4.03-2.06 6.35-.16 1.12-.32 2.29-.62 3.53-.19.79-.4 1.56-.6 2.3-.54 1.98-1.11 4.03-1.18 6.4-.04 1.27.03 2.54.1 3.78.1 1.74.19 3.38-.02 4.91-.06.48-.25 1.01-.44 1.57-.2.58-.42 1.23-.56 1.95-.31 1.62-.51 3.72-.63 5.15-.05.55-.12 1.13-.18 1.69-.13 1.1-.25 2.14-.23 2.98.04 1.67.7 3.1 1.28 4.36.23.49.44.95.59 1.37.34.95.64 1.87.94 2.77.99 2.97 1.92 5.77 3.49 8.21 1.37 2.14 4.1 6.4 8.91 6.4.44 0 .89-.03 1.36-.11l.37-.06.29-.24c3.65-3.07 1.86-7.05.42-10.25l-.23-.51c-.41-.91-.9-1.76-1.37-2.57-1.09-1.88-2.04-3.5-1.88-5.67.02-.6.22-1.15.45-1.77ZM835.68 103.43c.47-1.45 1.05-3.26.76-5.02-.1-.6-.82-2.52-1.46-3.42-.88-1.24-2.81-2.76-3.97-3.12-1.36-.42-2.81-.22-4.08.56-1.65 1.02-2.89 2.97-3.24 5.08-.1.59-.07 1.16-.05 1.71.01.34.03.67.01.96-.13 2.01-.44 4.14-.78 6.39-.43 2.86-.88 5.82-.89 8.56-.01 1.72.44 3.16.85 4.43.37 1.19.7 2.21.64 3.32-.04.93-.27 1.71-.51 2.52-.23.78-.46 1.59-.54 2.55-.14 1.62.34 3.14.8 4.61.33 1.07.65 2.08.73 3.1.09 1.09.11 2.38.07 3.93-.19 6.99-.97 12.4-2.03 14.13-1.36 2.22-2.17 3.82-3.02 5.97l-.22.19c-1.7 1.45-3.17 2.7-4.46 4.49-.99 1.37-1.31 2.69-1.64 4.08-.22.93-.45 1.9-.92 3-.24.56-.68.94-1.23 1.42-.33.28-.66.57-1 .93-1.35 1.46-3.27 3.69-4.6 6.53-1.29.84-2.13 2.07-2.94 3.27-.49.72-.95 1.39-1.48 1.94-1.03 1.06-3.12 2.02-4.8 2.78-.64.29-1.25.57-1.78.84-.15.08-.52.28-.74.47-3.1 2.71-3.37 8.07-1.55 11.06.78 1.27 1.9 2.12 2.99 2.94.62.47 1.21.92 1.73 1.42.06.07.17.31.24.47.16.35.34.76.65 1.11.34.39.66.65.92.86.21.17.33.27.39.36.17.27.3.59.33.85l.15 1.17 1.17.02c.62.01 1.45.24 2.34.48 1.16.31 2.42.65 3.66.65.63 0 1.25-.09 1.85-.31 1.04-.38 1.51-1.32 1.92-2.15.19-.39.39-.79.65-1.17.5-.73 1.23-1.5 1.93-2.24.66-.7 1.34-1.42 1.89-2.16.85-1.15 1.47-2.57 2.07-3.93.5-1.14.97-2.21 1.49-2.92.3-.41.88-.85 1.43-1.27.76-.58 1.54-1.17 2.02-1.96.4-.65.56-1.38.71-2.02.09-.41.18-.79.3-1.07.05-.11.23-.35.37-.53.21-.28.45-.59.64-.94.42-.76.82-1.67 1.21-2.54.52-1.17 1.06-2.38 1.56-3.07.28-.4.68-.79 1.09-1.21.81-.81 1.72-1.72 2.14-3.02.71-2.18.71-4.2.72-6.16.01-2.04.02-3.97.86-5.89.25-.57.67-1.08 1.11-1.61.49-.6 1-1.21 1.34-1.99.8-1.83 1.36-4.48 1.69-6.38.6-3.46.36-6.3.14-8.8-.16-1.87-.31-3.65-.12-5.52.1-.95.23-1.89.36-2.8.26-1.8.53-3.66.5-5.56-.03-2.05-.36-4-.68-5.89-.44-2.64-.86-5.13-.51-7.78l.02-.12-.01-.12c-.03-.59-.06-1.22-.1-1.89-.22-3.81-.51-9.02.52-13.26.09-.38.23-.83.39-1.31Z" fill="#DFA895"/>
<path d="M484.67 170.59c8.24 2.38 16.56 1.87 24.86.27 12.88-2.48 23.37-9.5 33.29-17.6.71-.58 1.22-1.6 2.42-1.42.51 1.28-.31 2.32-.63 3.4-.8 2.67-1.25 5.36-1.04 8.14.37 5.07 3.83 8.58 8.88 8.98 4.39.34 8.38-.82 12-3.29 5.48-3.74 8.41-9.25 10.41-15.34 9.97-30.44 19.9-60.89 29.86-91.34 1.17-3.58 2.08-7.18 1.69-10.99-.49-4.78-3.52-7.88-8.32-8.51-5.55-.72-10.51.73-14.98 4.04-5.68 4.2-8.36 10.24-10.52 16.68-6.09 18.16-11.35 36.61-18.29 54.48-2.7 6.94-6.02 13.49-11.81 18.44-7.6 6.5-16.01 11.15-26.35 10.94-9.09-.18-13.7-5.11-13.54-14.22.09-4.86.97-9.61 2.44-14.21 6.02-18.81 12.14-37.59 18.21-56.38 1.12-3.47 2.19-6.95 2.01-10.67-.23-4.78-3.11-8.15-7.77-9.09-5.64-1.14-10.73.21-15.37 3.46-5.73 4.01-8.38 10-10.46 16.35-5.5 16.81-11.06 33.6-16.44 50.45-3.23 10.09-7.01 20.03-8.19 30.71-1.42 12.83 5.18 23.11 17.64 26.72Z" fill="#467DBE"/>
<path d="M289.12 66.79c.02 3.18.67 6.35-.54 9.5-.65 31.87-1.24 63.74-2.05 95.6-.09 3.48.27 4.83 4.23 4.69 9.64-.33 19.31-.3 28.96-.01 3.65.11 4.25-1.14 4.14-4.41-.44-13.4-.82-26.8-.85-40.2-.08-38.11-.33-76.23.7-114.34.1-3.68-.84-4.68-4.56-4.6-12.27.25-24.55.16-36.82.04-2.47-.03-3.85.4-4.29 3.14-3.71 23.4-11.05 46.04-14.52 69.5-.94 6.37-2.06 12.72-3.12 19.2-1.42-.64-1.18-1.73-1.28-2.62-3.41-29.1-11.2-57.34-16.77-86.02-.39-2.01-.94-3.21-3.36-3.19-14.73.09-29.46.07-44.19.02-1.92-.01-2.33.57-2.26 2.56.3 8.82.46 17.65.44 26.48-.07 43.68-.16 87.37-.42 131.05-.02 2.64.37 3.36 2.96 3.33 8.84-.12 17.68-.17 26.51.02 2.96.06 3.6-1.06 3.42-3.7-.35-5.21-.58-10.44-.68-15.67-.5-25.34.13-50.71-1.3-76.03-1.05-4.86-.89-9.78-.76-15.67 1.38 2.04 2.21 3.24 1.68 4.96 5.48 35.03 15.14 69.13 23 103.64.46 2.01 1.58 2.75 3.47 2.39 4.6-.88 9.61 1.92 13.9-1.52.29-.23.19-.94.3-1.41 7.82-34.01 17.16-67.68 22.51-102.23-.27-1.66.17-3.15 1.55-4.5Z" fill="#9FD3F3"/>
<path d="M55.02 183.43 8.45 170.7c-3.4-.91-6.8-1.85-7.62-3.64-.99-2.1.26-5.67 1.12-8.81L44.55 2.27c.93-3.4 2.29-3.57 13.2-.58C70.13 5.07 71.5 5.71 70.44 9.61L34.26 142.06c-.86 3.14-2.23 7.2-.86 8.89 1.02 1.06 3.86 2.08 6.29 2.76l21.59 5.89c3.14.86 3.05 2.14.27 12.34-3.19 11.62-3.63 12.3-6.53 11.49Z" fill="#87C070"/>
<path d="M698.19 13.92c-18.23 0-37.08 7.6-46.49 24.32l-2.73-20.36h-31.91v158.04h37.99v-64.43c0-13.38-.3-29.79 5.17-42.25 5.17-11.54 13.98-20.06 27.35-20.06 20.06 0 26.14 11.25 26.14 29.78v96.96h37.99V70.45c-.02-32.82-19.77-56.53-53.51-56.53Z" fill="#009C9B"/>
<path d="M419.81 100.2c3.66.95 5.55 2.85 7.45 4.61 1.9 1.9 3.66 4.61 4.61 6.5.95 2.71.95 5.55.95 8.4 0 1.9 0 4.61-.95 7.45-.95 1.9-2.71 4.61-4.61 6.5-1.9 1.9-3.66 3.66-7.45 4.61-1.9.95-5.55 1.9-9.35 1.9h-41.73V98.44h41.73c3.8-.14 7.59-.14 9.35 1.76Zm-50.94-55.68h37.12c6.5 0 11.11.95 13.95 4.61 3.66 2.85 4.61 7.45 4.61 12.06s-.95 8.4-4.61 12.06c-2.71 3.66-7.45 4.61-13.95 4.61h-37.12V44.52Zm53.79-17.62c-4.61-1.9-11.11-2.85-17.61-2.85h-47.28c-3.66 0-5.55.95-8.4 2.85-1.9 1.9-2.71 4.61-2.71 8.4v114.07c0 2.85.95 5.55 2.71 7.45 2.85 2.71 4.61 3.66 8.4 3.66h51.08c6.5 0 13.01-.95 19.51-2.71 5.55-1.9 10.16-5.55 13.95-8.4 4.61-2.71 7.45-7.45 9.35-12.06 2.71-4.61 3.66-9.21 3.66-15.72 0-7.45-2.71-14.9-6.5-21.41-4.61-6.5-10.16-11.11-18.56-13.01 5.55-2.71 9.21-7.45 12.06-12.06 3.66-5.55 4.61-11.11 4.61-17.61 0-5.55-.95-9.35-2.71-13.01-1.9-4.61-4.61-8.4-8.4-11.11-3.95-2.82-7.61-5.53-13.16-6.48Z" fill="#DFA895"/>
<path d="M101.81 227.35c-1.45-1.99-3.73-3.23-6.79-2.85-1.38-.56-2.9-.68-4.4-.12-4.01 1.5-6.91 4.3-8.91 8.08-2.46 4.66-.82 12.31 4.33 14.6.06.03.13.04.19.07.44.29.92.53 1.42.74.66 1.05 1.6 1.9 2.95 2.41 3.35 1.27 7.37.13 9.93-2.25 1.63-1.01 2.89-2.58 3.58-4.42 1.76-1.69 2.95-4.05 3.2-6.24.49-4.04-1.4-8.58-5.5-10.02Z" fill="#333"/>
<path d="M746.23 261.48H63.25c-1.75 0-3.17-1.42-3.17-3.17v-44.4c0-1.75 1.42-3.17 3.17-3.17h682.98c1.75 0 3.17 1.42 3.17 3.17v44.4a3.158 3.158 0 0 1-3.17 3.17Zm-679.8-6.34h676.64v-38.06H66.43v38.06Z" fill="#333"/>
</g>
<defs>
<clipPath id="a">
<path fill="#fff" d="M0 0h851v261H0z"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -1,4 +0,0 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="6" cy="6" r="5" stroke="#333333" stroke-width="2"/>
<line x1="10.4142" y1="10" x2="14" y2="13.5858" stroke="#333333" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 274 B