32 Commits

Author SHA1 Message Date
60d4d008e8 Merge branch 'main' of ssh://git.autonomic.zone:2222/ruangrupa/living-room
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-07 11:08:33 +05:00
ab7e7a90be fix: don't cache this build
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 16:06:18 +01:00
a86e1546bf fix: use full path
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 16:02:32 +01:00
1f57c9b2de fix: really ignore cache 2022-01-06 16:02:31 +01:00
cd38d449f0 tweak search box 2022-01-06 18:00:19 +05:00
766fd601bf add padding below video title
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 17:42:04 +05:00
ed3eefdd0a make video boxes closer to figma design
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 17:38:36 +05:00
2442944d69 change link color in video cards
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 15:58:19 +05:00
0ecd962771 add focus/hover style for header links
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 15:56:27 +05:00
1ee0b8dbda add focus style to search box
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 15:53:36 +05:00
60d355cd36 Merge branch 'main' of ssh://git.autonomic.zone:2222/ruangrupa/living-room
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-06 15:50:19 +05:00
a8eb96309a change video card colors &remove shadow 2022-01-06 15:50:04 +05:00
b2a3b09ce7 create color variables 2022-01-06 15:37:54 +05:00
44971b0df0 add href for home link 2022-01-06 14:11:52 +05:00
439a98bbea make header closer to mockup 2022-01-06 14:10:05 +05:00
2a814a3154 replace previous fonts with Gudea 2022-01-06 14:00:43 +05:00
dea128d8f8 style menu 2022-01-06 13:46:14 +05:00
007350b888 import new fonts 2022-01-06 13:45:53 +05:00
7ac941a841 docs: how to wipe
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 14:32:33 +01:00
707cb8c8a1 fix: deploy to correct folder
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 14:29:41 +01:00
3dcd2cd2ee docs: how to add feed [ci skip] 2022-01-05 14:14:05 +01:00
f61e9f509a reindent lines 2022-01-05 17:58:28 +05:00
60ecda18d6 docs: point to new install [ci skip] 2022-01-05 13:50:35 +01:00
595eee3bc0 feat: include feed generation
All checks were successful
continuous-integration/drone/push Build is passing
See ruangrupa/living-room#20.
2022-01-05 13:49:06 +01:00
696e5634f1 docs: logs for generation [ci skip] 2022-01-05 13:06:27 +01:00
da9a56e0dd docs: wording [ci skip] 2022-01-05 13:02:20 +01:00
ad3c1a7476 docs: better explained
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 13:01:40 +01:00
4850c14e37 docs: explain setup
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 13:00:42 +01:00
d92732109f feat: add content generation
All checks were successful
continuous-integration/drone/push Build is passing
See ruangrupa/living-room#17.
2022-01-05 12:53:04 +01:00
ce3e864008 fix: ignore also when docker building
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 12:06:04 +01:00
5f35faddcb fix: point to new dockerfile
All checks were successful
continuous-integration/drone/push Build is passing
2022-01-05 11:42:06 +01:00
3a15d4f7d4 feat: CI/CD setup
Some checks failed
continuous-integration/drone/push Build is failing
2022-01-05 11:38:51 +01:00
23 changed files with 416 additions and 119 deletions

2
.dockerignore Normal file
View File

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

43
.drone.yml Normal file
View File

@ -0,0 +1,43 @@
---
kind: pipeline
name: continuous deployment
steps:
- name: push hugo 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:
stack: beta_lumbung_space
host: lumbung.space
deploy_key:
from_secret: drone_ssh_lumbung.space
depends_on:
- push hugo image
- push scripts image
trigger:
branch:
- main
event:
exclude:
- pull_request

View File

@ -1,11 +0,0 @@
FROM klakegg/hugo:alpine
RUN apk add --no-cache curl git
EXPOSE 1313
COPY . /src/
ENTRYPOINT ["/bin/bash"]
CMD ["-c", "hugo server --appendPort='false' --bind 0.0.0.0 --baseUrl='https://beta.lumbung.space' --port='1313' -F"]

7
Dockerfile.hugo Normal file
View File

@ -0,0 +1,7 @@
FROM klakegg/hugo:alpine
RUN apk add --no-cache curl git
EXPOSE 1313
COPY . /src/

11
Dockerfile.scripts Normal file
View File

@ -0,0 +1,11 @@
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

@ -1,17 +1,47 @@
# living room
[![Build Status](https://drone.autonomic.zone/api/badges/ruangrupa/living-room/status.svg?ref=refs/heads/main)](https://drone.autonomic.zone/ruangrupa/living-room)
> A new attempt to bring together the ideas of the "splash" page, "portal" page
> and a comfortable digital "living room" experience for lumbung[dot]space.
> 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.
## Hacking
## FAQ
[Install Hugo](https://gohugo.io/getting-started/installing/).
### 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
### Generate the site
`hugo serve --watch`
[Install Hugo](https://gohugo.io/getting-started/installing/) and `hugo serve --watch`
### Generate `lumbung[dot]space` posts
@ -28,6 +58,27 @@ lumbunglib-cal
export OUTPUT_DIR=content/video
lumbunglib-vid
export OUTPUT_DIR=content/feed
lumbunglib-feed # reads ./feeds_list.txt
```
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

@ -14,6 +14,14 @@ services:
start_period: 15s
volumes:
- content:/src/content
command: |
server
--appendPort='false'
--bind 0.0.0.0
--baseUrl='https://beta.lumbung.space'
--port='1313'
--buildFuture
--watch
deploy:
update_config:
failure_action: rollback
@ -25,9 +33,69 @@ 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
"
volumes:
content:
networks:
proxy:
external: true
configs:
feeds_list:
name: beta_lumbung_space_feeds_list_v1
file: feeds_list.txt

View File

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

1
feeds_list.txt Normal file
View File

@ -0,0 +1 @@
https://artivismo.org/feed/

View File

@ -7,6 +7,18 @@ 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/video lumbunglib-vid && \
OUTPUT_DIR=content/feed lumbunglib-feed
.PHONY: serve
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

View File

@ -1,8 +1,10 @@
<header class="bar" id="top-menu">
<h1 class="logo"><a href="/"><img src="{{ .Site.Params.logo }}" alt="{{ .Site.Title }}"/></a></h1>
<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 := . }}
{{/* {{ $currentPage := . }}
{{ range .Site.Menus.main }}
{{ if .HasChildren }}
<details class="menu-dropdown">
@ -28,7 +30,17 @@
</a>
</li>
{{ end }}
{{ end }}
{{ end }} */}}
<li><a href="{{ .Site.Params.baseURL }}">home</a></li>
<li><a href="#">calendar</a></li>
<li><a href="#">tv</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="#" id="login">login</a>
</div>
</header>

View File

@ -1,4 +1,5 @@
<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 }}"
@ -21,10 +22,13 @@
</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 }}'></label>
<div class='video date'> <a href='https://tv.lumbung.space/videos/watch/{{ .Params.uuid }}'> {{ .Date.Format "Jan 02, 2006" }}</a></div>
<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>
<div class="description video" id='vid-{{ .Params.uuid }}'> {{ .Content }}
<ul>
{{ range (.GetTerms "categories") }}

Binary file not shown.

Binary file not shown.

View File

@ -1,17 +1,3 @@
/*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);
@ -27,18 +13,47 @@ allerta
src: url(fonts/Anonymous_Pro_Regular.woff);
}
h1, h2, h3 {
font-family: BarrioRegular;
@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");
}
: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:24px;
font-family: ZenMaruGothic;
font-size: 21px;
font-family: Gudea;
color: maroon;
}
@ -58,7 +73,6 @@ a {
.card {
border: 2px solid var(--border-color);
box-shadow:1em 1em 0 #d2d1c8;
background-color: #fff09d;
max-width: 600px;
margin-bottom: 2em;
@ -119,13 +133,62 @@ a {
/* base header & menu */
#top-menu {
position: fixed;
left: 5%;
transform: translate(-50%);
width: 30%;
z-index: 1;
margin-top: 1em;
transform: rotate(-3deg);
padding: 1rem;
display: grid;
grid-template-columns: 400px 1fr auto;
align-items: flex-start;
}
.home-link { text-decoration: none; }
.logo {
width: 300px;
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;
}
#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;
}
.menu-dropdown summary {
@ -137,24 +200,6 @@ a {
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 {
border-top: 2px solid var(--border-color);
margin: 0px;
padding: 0px;
}
.menu ul {
list-style-type: none;
margin: 0;
@ -267,7 +312,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;
@ -382,7 +427,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;
@ -396,7 +441,6 @@ div.network-source {
.card.calendar {
border: 2px solid cornflowerblue;
box-shadow:1em 1em 0 #d2d1c8;
background-color: lightblue;
max-width: 360px;
margin-bottom: 2em;
@ -404,7 +448,6 @@ div.network-source {
margin: 0 3em 3em 0;
align-self: start;
color: royalblue;
}
.card.calendar.past {
@ -507,7 +550,6 @@ input:checked + label +.calendar-location+.description {
}
.metadata label {
text-align: center;
vertical-align: sub;
flex-grow: 1;
font-weight: normal;

View File

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

@ -0,0 +1,3 @@
<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>

After

Width:  |  Height:  |  Size: 745 B

View File

@ -0,0 +1,18 @@
<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>

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -0,0 +1,4 @@
<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>

After

Width:  |  Height:  |  Size: 274 B