Coopcloud.testing.sutty.nl #11

Closed
librenauta wants to merge 72 commits from coopcloud.testing.sutty.nl into issue-2
44 changed files with 1094 additions and 189 deletions
+1
View File
@@ -6,6 +6,7 @@
*.rb
*.txt
.env*
_includes/svg/*.svg
_includes/*.scss
_bin/
assets/js/
+1
View File
@@ -9,6 +9,7 @@ theme_colors:
danger: $danger
light: $light
dark: $dark
purple: $purple
body-color: $body-color
theme_colors_dark:
body-color: $body-color-dark
+4
View File
@@ -19,6 +19,10 @@ sizes:
100: 100%
auto: auto
35px: 35px
44px: 44px
80px: 80px
150px: 150px
100vh: 100vh
content: 72ch
iframe_min_height: 480px
pixel_densities:
+1 -1
View File
@@ -5,7 +5,7 @@
- "buttons"
- "fonts"
- "utilities"
- "picture"
- "toggler"
- "details"
- "video"
- "title"
+4 -1
View File
@@ -57,7 +57,8 @@ layouts:
about: "About this site"
code_of_conduct: "Code of conduct"
license: "License"
post: "Article"
post: "Blog post"
document: "Document"
privacy_policy: "Privacy policy"
theme: "Customize theme"
menu_internal: "Menu (internal item)"
@@ -195,3 +196,5 @@ lorem_ipsum:
quis mauris semper feugiat eu id arcu. Quisque quis vehicula ante.
Ut hendrerit urna egestas tempor semper. <small>Nam viverra quam
turpis.</small>
search_title: 'Tech stack | docs | recipes'
search_placeholder: 'search'
+2 -1
View File
@@ -57,7 +57,8 @@ layouts:
about: "Información del sitio"
code_of_conduct: "Código de conducta"
license: "Licencia"
post: "Artículo"
post: "Artículo de blog"
document: "Documento"
privacy_policy: "Política de privacidad"
theme: "Personalizar plantilla"
menu_internal: "Menú (enlace interno)"
+6
View File
@@ -57,6 +57,12 @@ image:
help:
es: "Describí la imagen por razones de accesibilidad e indexacion en buscadores"
en: "Describe the image for accesibility purposes and for indexation in search engines"
content:
type: "new_content"
label:
en: "Post content"
help:
en: "Write your post here"
email:
type: "email"
label:
+30 -9
View File
@@ -80,24 +80,45 @@ status:
"in_progress": "In Progress"
"active": "Active"
"archived": "Archived"
author:
type: "new_array"
label:
en: "Author"
help:
en: "Author or authors of the document"
content:
type: "new_content"
label:
en: "Post content"
help:
en: "Write your post here"
link:
permalink:
type: "permalink"
label:
es: "Enlace"
en: "Permalink"
help:
es: |
Si no quieres utilizar el formato de enlaces general del sitio
para este artículo, especifica uno aquí. Usa "/" para cambiar la
portada del sitio, o dejalo vacío para auto-generar la dirección.
en: |
If you don't want to follow the site's link format for this post,
change it here. Use "/" to set this page as the home page, or
leave empty to auto-generate it.
activity:
type: "boolean"
label:
es: "Publicar en el Fediverso"
en: "Publish to Fediverse"
help:
es: "Si tu sitio tiene habilitado Social Distributed Press, habilita para publicar en el Fediverso"
en: "If your site has Social Distributed Press enabled, tick to publish to the Fediverse"
default:
es: false
en: false
in_reply_to:
type: "url"
label:
en: "Url"
es: "En respuesta a"
en: "In reply to"
help:
en: "Link with https://"
es: "Agrega aquí el vínculo a un artículo para generar una respuesta"
en: "Add the link to another article to reply to"
locales:
type: "locales"
label:
+1 -1
View File
@@ -13,10 +13,10 @@ post:
filter:
layout:
- "post"
- "page"
- "code_of_conduct"
- "license"
- "privacy_policy"
- "document"
label:
en: "Página"
es: "Page"
-103
View File
@@ -1,103 +0,0 @@
---
title:
type: "string"
required: true
label:
es: "Título del artículo"
en: "Post title"
help:
es: "¡Un título que invite a leer el artículo!"
en: "A title that invites people to read the post!"
description:
type: "text"
required: true
label:
es: "Alerta de contenido o descripción del artículo"
en: "Content warning or post description"
help:
es: |
Resumen del contenido del artículo, que también usarán redes
sociales y buscadores. Si el artículo trata de violencias y otros
temas sensibles, te invitamos a usar este campo como alerta de
contenido, para que las personas puedan determinar cuándo quieren
abrirlo.
en: |
Summary of the post contents, also used by social media and search
engines. If the post is about violence and other sensitive
topics, we invite you to use it as a content warning, so others
can decide when they want to read it.
image:
type: "image"
path:
label:
es: "Imagen principal"
en: "Main image"
help:
es: "Se utiliza para ilustrar el artículo y como previsualización en las redes sociales."
en: "Used to illustrate the article and as preview in social networks."
description:
label:
es: "Descripción de la imagen principal"
en: "Main image description"
help:
es: "Describe la imagen principal para usuaries no videntes y buscadores"
en: "Describe the main image for blind or partially sighted users and search engines"
content:
type: "new_content"
label:
es: "Contenido del artículo"
en: "Post content"
help:
es: "Escribe aquí el artículo"
en: "Write down your post"
categories:
type: "new_array"
label:
es: "Categorías"
en: "Categories"
help:
es: ""
en: ""
tags:
type: "new_array"
label:
es: "Etiquetas"
en: "Tags"
help:
es: ""
en: ""
locales:
type: "locales"
label:
es: "Traducciones"
en: "Translations"
help:
es: "Vínculo al mismo artículo en otros idiomas"
en: "Link to same post in other languages"
sitemap:
type: "boolean"
label:
es: "Permitir indexadores"
en: "Allow indexation"
help:
es: "Permitir que esta página sea indexada por buscadores"
en: "Allow search engines to index this page"
default:
es: true
en: true
draft:
type: "boolean"
label:
es: "Borrador"
en: "Draft"
help:
es: 'Al activar "Borrador" este contenido se mantendrá disponible en el panel, pero no se publica en el sitio como los demás contenidos al tocar "Publicar todos los cambios"'
en: 'By activating "Draft", this content will remain available on the dashboard, but will not be published on the site when you tap "Publish all changes" (other content which does not have this option selected will).'
order:
type: "order"
label:
es: "Orden"
en: "Order"
help:
es: "La posición del artículo en la lista de artículos"
en: "Position in list of posts"
+51 -60
View File
@@ -8,76 +8,84 @@ title:
help:
es: "¡Un título que invite a leer el artículo!"
en: "A title that makes people want to read the post!"
description:
type: "text"
required: true
label:
en: "Post description"
help:
en: "Description of post content, also used by social media and search engines."
content_warning:
type: "string"
label:
es: "Alerta de contenido"
en: "Content warning"
help:
es: |
Si el artículo trata de violencias y otros temas sensibles, te
invitamos a usar este campo como alerta de contenido, para que las
personas puedan determinar cuándo quieren abrirlo.
en: |
If the post is about violence and other sensitive topics, we
invite you to use it as a content warning, so others can decide
when they want to read it.
description:
type: "text"
label:
es: "Descripción del artículo"
en: "Post description"
help:
es: "Descripción del contenido del artículo, que también usarán redes sociales y buscadores."
en: "Description of post content, also used by social media and search engines."
author:
type: "new_array"
label:
es: "Autores"
en: "Authors"
help:
es: "Empieza a escribir para filtrar valores ya usados. Presiona enter para agregar el ítem seleccionado o agregar uno nuevo si no existe."
en: "Start typing to filter previously used values. Press enter to add the selected item or a new one if it doesn't exist yet."
image:
type: "image"
required: true
path:
label:
es: "Imagen principal"
en: "Main image"
help:
es: "Se utiliza para ilustrar el artículo y como previsualización en las redes sociales."
en: "Used to illustrate the article and as preview in social networks."
description:
label:
es: "Descripción de la imagen principal"
en: "Main image description"
help:
es: "Describí la imagen por razones de accesibilidad e indexacion en buscadores"
en: "Describe the image for accesibility purposes and for indexation in search engines"
topic:
type: "new_predefined_array"
label:
en: "Topic"
help:
en: "Select Topic"
values:
community:
en: "Community"
tech:
en: "Tech"
status:
type: "new_predefined_value"
label:
en: "Status"
help:
en: "Select Topic"
values:
en:
"pending": "Pending"
"in_progress": "In Progress"
"active": "Active"
"archived": "Archived"
author:
type: "new_array"
label:
en: "Author"
help:
en: "Author or authors of the document"
content:
type: "new_content"
label:
es: "Contenido del artículo"
en: "Post content"
help:
es: "Escribe aquí el artículo"
en: "Write your post here"
categories:
type: "new_array"
permalink:
type: "permalink"
label:
es: "Categorías"
en: "Categories"
es: "Enlace"
en: "Permalink"
help:
es: "Empieza a escribir para filtrar valores ya usados. Presiona enter para agregar el ítem seleccionado o agregar uno nuevo si no existe."
en: "Start typing to filter previously used values. Press enter to add the selected item or a new one if it doesn't exist yet."
tags:
type: "new_array"
label:
es: "Etiquetas"
en: "Tags"
help:
es: "Empieza a escribir para filtrar valores ya usados. Presiona enter para agregar el ítem seleccionado o agregar uno nuevo si no existe."
en: "Start typing to filter previously used values. Press enter to add the selected item or a new one if it doesn't exist yet."
es: |
Si no quieres utilizar el formato de enlaces general del sitio
para este artículo, especifica uno aquí. Usa "/" para cambiar la
portada del sitio, o dejalo vacío para auto-generar la dirección.
en: |
If you don't want to follow the site's link format for this post,
change it here. Use "/" to set this page as the home page, or
leave empty to auto-generate it.
activity:
type: "boolean"
label:
@@ -87,8 +95,8 @@ activity:
es: "Si tu sitio tiene habilitado Social Distributed Press, habilita para publicar en el Fediverso"
en: "If your site has Social Distributed Press enabled, tick to publish to the Fediverse"
default:
es: true
en: true
es: false
en: false
in_reply_to:
type: "url"
label:
@@ -100,35 +108,18 @@ in_reply_to:
locales:
type: "locales"
label:
es: "Traducciones"
en: "Translations"
help:
es: "Vínculo al mismo artículo en otros idiomas"
en: "Link to same post in other languages"
sitemap:
type: "boolean"
label:
es: "Permitir indexadores"
en: "Allow indexation"
help:
es: "Permitir que este artículo sea indexado por buscadores"
en: "Allow search engines to index this post"
default:
es: true
en: true
draft:
type: "boolean"
label:
es: "Borrador"
en: "Draft"
help:
es: 'Al activar "Borrador" este contenido se mantendrá disponible en el panel, pero no se publica en el sitio como los demás contenidos al tocar "Publicar todos los cambios"'
en: 'By activating "Draft", this content will remain available on the dashboard, but will not be published on the site when you tap "Publish all changes" (other content which does not have this option selected will).'
order:
type: "order"
label:
es: "Orden"
en: "Order"
help:
es: "La posición del artículo en la lista de artículos"
en: "Position in list of posts"
+4
View File
@@ -71,6 +71,7 @@ headings_font_family:
en:
'system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"': "Default"
Roboto, sans-serif: "Roboto"
BBH Hegarty: "BBH Hegarty"
Roboto Mono, monospace: "Roboto Mono (monospace)"
Inter, sans-serif: "Inter"
Saira, sans-serif: "Saira"
@@ -79,6 +80,7 @@ headings_font_family:
'system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"': "Default"
Roboto, sans-serif: "Roboto"
Roboto Mono, monospace: "Roboto Mono (monospace)"
BBH Hegarty: "BBH Hegarty"
Inter, sans-serif: "Inter"
Saira, sans-serif: "Saira"
Baskervville, serif: "Baskervville (serif)"
@@ -98,6 +100,7 @@ font_family_content:
'system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"': "Default"
Roboto, sans-serif: "Roboto"
Roboto Mono, monospace: "Roboto Mono (monospace)"
BBH Hegarty: "BBH Hegarty"
Inter, sans-serif: "Inter"
Saira, sans-serif: "Saira"
Baskervville, serif: "Baskervville (serif)"
@@ -105,6 +108,7 @@ font_family_content:
'system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"': "Default"
Roboto, sans-serif: "Roboto"
Roboto Mono, monospace: "Roboto Mono (monospace)"
BBH Hegarty: "BBH Hegarty"
Inter, sans-serif: "Inter"
Saira, sans-serif: "Saira"
Baskervville, serif: "Baskervville (serif)"
+1 -1
View File
@@ -1,6 +1,7 @@
---
organization:
post: []
document: []
page: []
blog: []
contact: []
@@ -12,4 +13,3 @@ organization:
- "menu_internal"
- "menu_external"
- "menu_dropdown"
document: []
+31
View File
@@ -0,0 +1,31 @@
---
title: about
tagline: about coopcloud
description: coopcloud
logo:
path: public/0n8e65bl3pqdg293clwzf93znbxj/cloud.png
description: cloud logo coopcloud
blurhash: LnJuAaD%4noft7xuIURj00j[xuof
image:
description: ''
path:
social_networks: []
locales: []
draft: false
order: 1
permalink: "/2026/05/31/about/"
alternate_permalinks: []
layout: about
uuid: 1c08400a-425e-4fae-bead-4a0d06fe6f2c
render_with_liquid: false
usuaries:
- 27
created_at: 2026-05-31 14:54:26.236392904 -06:00
---
<h3>We are a a federation, an open, democratic, peer governed community...</h3>
<h1>
Public interest infrastructure.<br>
An alternative to corporate clouds built by tech co-ops.
</h1>
+15
View File
@@ -0,0 +1,15 @@
---
title: Blog
draft: false
post: fdf68be0-1c27-4588-aa33-a57db70da755
order: 4
permalink: "/2026/05/31/blog/"
alternate_permalinks: []
layout: menu_internal
uuid: d1b75c0e-a888-40eb-a319-735fdd0c0bc6
render_with_liquid: false
usuaries:
- 27
created_at: 2026-05-31 15:30:15.456403097 -06:00
---
+17
View File
@@ -0,0 +1,17 @@
---
title: Comunity
post: fdf68be0-1c27-4588-aa33-a57db70da755
draft: false
order: 2
permalink: "/2026/05/31/comunity/"
alternate_permalinks: []
layout: menu_internal
uuid: 1f45a58c-2547-4748-96de-405135c5f2f4
render_with_liquid: false
usuaries:
- 27
- 2104
created_at: 2026-05-31 15:29:33.489548790 -06:00
last_modified_at: 2026-06-30 14:38:17.701598735 -06:00
---
+15
View File
@@ -0,0 +1,15 @@
---
title: Contact
draft: false
post: fdf68be0-1c27-4588-aa33-a57db70da755
order: 5
permalink: "/2026/05/31/contact/"
alternate_permalinks: []
layout: menu_internal
uuid: cf03ff90-5374-4a4d-b629-ef7cd1c16e34
render_with_liquid: false
usuaries:
- 27
created_at: 2026-05-31 15:30:36.210678561 -06:00
---
+37
View File
@@ -0,0 +1,37 @@
---
title: coopcloud-theme
font_family_sans_serif: IBM Plex Mono, sans-serif
font_family_monospace: IBM Plex Mono, monospace
headings_font_family: BBH Hegarty
font_family_content: Inter, sans-serif
enable_rounded: false
enable_shadows: false
body_bg: "#ffffff"
body_color: "#7659ff"
primary: "#7659ff"
secondary: "#2f2f2f"
link_color: "#2f2f2f"
link_hover_color: "#77767b"
h1_font_size: 2.5rem
h2_font_size: 2rem
h3_font_size: 1.75rem
h4_font_size: 1.5rem
h5_font_size: 1.25rem
h6_font_size: 1rem
mark_bg: "#ff3751"
navbar_light_color: "#fcf8e3"
navbar_light_hover_color: "#2f2f2f"
navbar_light_active_color: "#212529"
testing: false
draft: false
order: 6
permalink: "/2026/05/31/coopcloud-theme/"
alternate_permalinks: []
layout: theme
uuid: ab031a38-6ef7-4bc0-9a68-cc45de8922b9
render_with_liquid: false
usuaries:
- 27
created_at: 2026-05-31 15:35:45.671219817 -06:00
---
+17
View File
@@ -0,0 +1,17 @@
---
title: Tech stack
post: 20c19b09-92e0-4fae-9adf-bf54e02f443c
draft: false
order: 3
permalink: "/2026/05/31/tech-stack/"
alternate_permalinks: []
layout: menu_internal
uuid: 27ee2193-c539-4930-a421-04c91ebd089a
render_with_liquid: false
usuaries:
- 27
- 2104
created_at: 2026-05-31 15:29:58.029912576 -06:00
last_modified_at: 2026-06-30 14:40:29.987353953 -06:00
---
+37
View File
@@ -0,0 +1,37 @@
---
title: Tech stack
description: "..."
image:
description: ''
path:
category: []
topic:
- tech
status: pending
author: []
permalink: "/2026/06/30/tech-stack/"
activity: false
locales: []
draft: false
order: 8
alternate_permalinks: []
layout: document
uuid: 20c19b09-92e0-4fae-9adf-bf54e02f443c
render_with_liquid: false
usuaries:
- 2104
created_at: 2026-06-30 14:40:08.608656827 -06:00
---
<p style="text-align:start">A brief paragraph (expanded from the home page) plus a list of suggested links to start. </p>
<ul>
<li>
<p style="text-align:start">aoeu</p>
</li>
<li>
<p style="text-align:start">aoeu</p>
</li>
<li>
<p style="text-align:start">-drddr</p>
</li>
</ul>
+36
View File
@@ -0,0 +1,36 @@
---
title: The Community
description: CoopCloud is a community of people with shared values and objectives
image:
description: ''
path:
category: []
topic:
- community
status: in_progress
author: []
locales: []
draft: false
order: 7
permalink: "/2026/06/30/the-community/"
alternate_permalinks: []
layout: document
uuid: fdf68be0-1c27-4588-aa33-a57db70da755
render_with_liquid: false
usuaries:
- 2104
created_at: 2026-06-30 14:29:08.943282163 -06:00
---
<p style="text-align:start">Brief paragraph about the community (maybe expanded a bit from the home page) plus a list of suggested nodes to read/start: </p>
<ul>
<li>
<p style="text-align:start">aoeuaoeu </p>
</li>
<li>
<p style="text-align:start">aoeu aoeu oa</p>
</li>
<li>
<p style="text-align:start">aoeu</p>
</li>
</ul>
+50
View File
@@ -0,0 +1,50 @@
---
class:
type: 'string'
default: 'bg-transparent justify-content-between px-0'
items:
type: 'array'
default: []
coopcloud_url:
type: 'string'
default: '?#'
color:
type: 'string'
default: 'primary'
uuid:
type: 'string'
default: ''
---
<nav class="navbar d-flex w-100 align-items-center justify-content-between {{ class }} bg-primary">
<div class="py-2">
<a class="navbar-brand d-flex flex-row align-items-end text-decoration-none" href="{{ coopcloud_url }}">
<div class="d-none d-md-flex w-150px">
{%- render 'svg/cloud.svg', color: -%}
</div>
<div class="d-md-none d-flex w-80px">
{%- render 'svg/cloud_text.svg', color: 'white' -%}
</div>
</a>
</div>
<div class="flex-grow-1 d-flex flex-row align-items-center justify-content-end">
<div class="d-none d-lg-flex justify-content-end w-100">
{% for item in items reversed %}
{% assign class = 'nav-link text-decoration-none p-3 fs-5 fw-bold text-' | append: color %}
{% if items.last %}
{% assign class = class | append: ' pe-0' %}
{% endif %}
{% render 'sutty/a.html',
content: item.title,
href: item.post.url,
class: class
%}
{% endfor %}
</div>
<div class="d-block d-lg-none">
{%- render 'menu.html',
items:,
id: 'menu',
coopcloud_url: '/#'
-%}
</div>
</nav>
+47
View File
@@ -0,0 +1,47 @@
---
items:
type: 'array'
default: []
id:
type: 'string'
class:
type: 'string'
default: 'position-fixed top-0 start-0 vh-100 w-100 bg-black z-3'
coopcloud_url:
type: 'string'
default: '/#'
color:
type: 'string'
default: 'white'
---
{%- block 'sutty/toggler/toggler_label.html', id: , class: 'py-3 ps-3' -%}
<div class="d-flex d-lg-none">
{%- render 'svg/menu.svg', class: 'w-35px cursor-pointer', color: -%}
</div>
{%- endblock -%}
{%- block 'sutty/toggler/toggler.html', id: , class: -%}
{%- block 'sutty/toggler/toggler_label.html', id: , class: 'w-100' -%}
<div class="d-flex justify-content-end p-4">
{%- render 'svg/x.svg', class: 'w-35px cursor-pointer', color: 'white' -%}
</div>
{%- endblock -%}
<div class="d-flex flex-column align-items-center justify-content-start p-3 w-100 h-100 text-center">
<div class="w-150px py-2">
<a class="navbar-brand" href="{{ coopcloud_url }}">
{%- render 'svg/cloud.svg', color: -%}
</a>
</div>
<ul class="p-0">
{% for item in items reversed %}
<li class="list-unstyled p-2 fw-bold {{ forloop.last | value_if: ' mb-3' }}">
{% render 'sutty/a.html',
content: item.title,
href: item.post.url,
class: 'nav-link text-white hover-secondary text-decoration-none fw-bold x-1 fs-4'
%}
</li>
{% endfor %}
</ul>
</div>
{%- endblock -%}
+21
View File
@@ -0,0 +1,21 @@
---
title:
type: 'string'
placeholder:
type: 'string'
---
<div class="d-flex flex-column">
<div class="d-flex align-items-center justify-content-start">
<p class="ps-2">{{ title }}</p>
</div>
<div class="d-flex align-items-center position-relative pb-3 right-0 pl-0 zindex-dropdown">
<div class="d-flex w-100">
<div class="d-flex w-44px p-2 bg-light">
{% render 'svg/search.svg', class:'purple w-35px' %}
</div>
<form class="w-100" action="/buscador/" method="get" data-pagefind-target="form">
<input type="search" class="form-control w-100 p-2" placeholder="{{ placeholder }}" name="q">
</form>
</div>
</div>
</div>
+4 -1
View File
@@ -6,6 +6,9 @@ href:
attributes:
type: 'string'
default: ''
class:
type: 'string'
default: ''
---
{%- assign internal_or_external = 'SUTTY ' | append: href -%}
@@ -13,6 +16,6 @@ attributes:
{%- assign attributes = attributes | append: ' rel="noopener noreferrer" target="_blank"' -%}
{%- endif -%}
<a href="{{ href | component_escape }}" {{ attributes }}>
<a class="{{ class }}" href="{{ href | component_escape }}" {{ attributes }}>
{{- content -}}
</a>
+1
View File
@@ -1,6 +1,7 @@
---
image:
type: 'hash'
default: 'public/0m4e7sur4hab4lhh44r9axuga12k/placeholder.png'
class:
type: 'string'
default: ''
+17
View File
@@ -0,0 +1,17 @@
---
title:
type: 'string'
h:
type: 'string'
default: '1'
description:
type: 'string'
default: ''
---
<div class="d-flex flex-column w-100">
<h{{- h -}}>{{ title }}</h{{- h -}}>
{% if description %}
<p>{{ description }}</p>
{% endif %}
</div>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+24
View File
@@ -0,0 +1,24 @@
---
color:
type: 'string'
default: ''
---
<svg class="{{ color }}" version="1.1" viewBox="0 0 47.137 28.756" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-115.89 -129.12)">
<g transform="matrix(.17373 0 0 .17373 62.634 97.149)" fill="{{ color }}">
<g fill="{{ color }}">
<path class="st0" d="m322.14 242.57v-3.9h-7.81v-3.9h-3.9v-7.81h-3.9v-27.33h3.9v-7.81h3.9v-3.9h7.81v-3.9h15.62v3.9h7.81v3.9h3.9v11.71h-7.81v-3.9h-3.9v-3.9h-15.62v3.9h-3.9v27.33h3.9v3.9h15.62v-3.9h3.9v-3.9h7.81v11.71h-3.9v3.9h-7.81v3.9z"/>
<path class="st0" d="m375.95 242.57v-3.9h-7.81v-3.9h-3.9v-7.81h-3.9v-27.33h3.9v-7.81h3.9v-3.9h7.81v-3.9h15.62v3.9h7.81v3.9h3.9v7.81h3.9v27.33h-3.9v7.81h-3.9v3.9h-7.81v3.9zm15.61-11.71v-3.9h3.9v-27.33h-3.9v-3.9h-15.62v3.9h-3.9v27.33h3.9v3.9z"/>
<path class="st0" d="m459.4 215.24h-42.95v-11.71h42.95z"/>
<path class="st0" d="m484.41 242.57v-3.9h-7.81v-3.9h-3.9v-7.81h-3.9v-27.33h3.9v-7.81h3.9v-3.9h7.81v-3.9h15.62v3.9h7.81v3.9h3.9v7.81h3.9v27.33h-3.9v7.81h-3.9v3.9h-7.81v3.9zm15.61-11.71v-3.9h3.9v-27.33h-3.9v-3.9h-15.62v3.9h-3.9v27.33h3.9v3.9z"/>
<path class="st0" d="m527.11 266v-81.99h11.71v7.81h3.9v-3.9h3.9v-3.9h15.62v3.9h7.81v3.9h3.9v7.81h3.9v27.33h-3.9v7.81h-3.9v3.9h-7.81v3.9h-15.62v-3.9h-3.9v-3.9h-3.9v31.23zm35.14-35.14v-3.9h3.9v-27.33h-3.9v-3.9h-15.62v3.9h-3.9v3.9h-3.9v19.52h3.9v3.9h3.9v3.9h15.62z"/>
<path class="st0" d="m322.14 349.51v-3.9h-7.81v-3.9h-3.9v-7.81h-3.9v-27.33h3.9v-7.81h3.9v-3.9h7.81v-3.9h15.62v3.9h7.81v3.9h3.9v11.71h-7.81v-3.9h-3.9v-3.9h-15.62v3.9h-3.9v27.33h3.9v3.9h15.62v-3.9h3.9v-3.9h7.81v11.71h-3.9v3.9h-7.81v3.9z"/>
<path class="st0" d="m362.16 349.51v-78.08h11.71v78.08z"/>
<path class="st0" d="m401.81 349.51v-3.9h-7.81v-3.9h-3.9v-7.81h-3.9v-27.33h3.9v-7.81h3.9v-3.9h7.81v-3.9h15.62v3.9h7.81v3.9h3.9v7.81h3.9v27.33h-3.9v7.81h-3.9v3.9h-7.81v3.9zm15.62-11.71v-3.9h3.9v-27.33h-3.9v-3.9h-15.62v3.9h-3.9v27.33h3.9v3.9z"/>
<path class="st0" d="m452.2 349.51v-3.9h-3.9v-3.9h-3.9v-50.75h11.71v42.95h3.9v3.9h11.71v-3.9h3.9v-3.9h3.9v-39.04h11.71v58.56h-11.71v-7.81h-3.9v3.9h-3.9v3.9h-19.52z"/>
<path class="st0" d="m517.72 349.51v-3.9h-7.81v-3.9h-3.91v-7.81h-3.9v-27.33h3.9v-7.81h3.9v-3.9h7.81v-3.9h15.62v3.9h3.9v3.9h3.9v-27.33h11.71v78.08h-11.71v-7.81h-3.9v3.9h-3.9v3.9h-15.61zm15.61-11.71v-3.9h3.9v-3.9h3.9v-19.52h-3.9v-3.9h-3.9v-3.9h-15.62v3.9h-3.9v27.33h3.9v3.9h15.62z"/>
</g>
</g>
</g>
</svg>
+13
View File
@@ -0,0 +1,13 @@
---
color:
type: 'string'
title:
type: 'string'
default: 'language'
---
<svg class="w-100" fill="{{ color }}" version="1.1" viewBox="0 0 13.525 15.663" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="{{ title }}">
<title>{{ title }}</title>
<g transform="translate(-113.25 -122.06)">
<path d="m118.38 137.59c-0.8797-0.1968-2.4247-0.8678-2.4247-1.0528 0-0.1833 0.1249-0.1512 1.0265 0.2616 1.0273 0.4709 1.771 0.633 2.8953 0.6313 1.1226 0 2.3627-0.3373 3.1505-0.8527 0.2415-0.1579 0.2451-0.1802 0.071-0.445l-0.1827-0.2788h0.6329c0.348 0 0.6328 0.034 0.6328 0.074s-0.086 0.3484-0.1918 0.6829l-0.1917 0.6082-0.1943-0.2577-0.1942-0.2573-0.431 0.2404c-1.2648 0.7054-3.1492 0.9699-4.5992 0.6453zm-5.1295-6.6816v-4.8327l0.7608-0.2669 0.7606-0.2668 0.057-1.6514 0.057-1.6513 2.3666 0.8386c1.3017 0.4613 2.4681 0.8171 2.5921 0.7907 0.1233-0.026 1.4171-0.4548 2.8737-0.9517s2.6864-0.88 2.7328-0.8511c0.047 0.029 0.085 0.902 0.085 1.9407v1.8886l0.6197 0.1955 0.6199 0.1953v9.4345l-0.648-0.1991c-0.3565-0.1095-1.8784-0.5907-3.3819-1.0695l-2.7339-0.8701-3.2391 1.0796c-1.7814 0.5939-3.3024 1.0797-3.3798 1.0797-0.111 0-0.1403-1.0422-0.1403-4.8326zm3.5782 3.4311 2.9583-0.9839v-4.5669c0-3.6061-0.029-4.556-0.1403-4.5151-0.077 0.028-1.4721 0.4946-3.0992 1.0356l-2.9582 0.984v4.5669c0 3.6061 0.029 4.5559 0.1404 4.5151 0.077-0.029 1.4721-0.4946 3.0991-1.0357zm-1.6636-2.1012c1.0303-1.2383 2.5525-3.7099 2.2846-3.7099-0.314 0-1.6565 0.4751-1.7661 0.625-0.085 0.1157-0.2539 0.1692-0.4578 0.1451-0.3395-0.04-0.5242-0.29-0.266-0.3606 0.9411-0.2573 1.9614-0.5981 2.491-0.8318 0.3576-0.1579 0.6826-0.2548 0.7221-0.2154 0.088 0.089-0.2387 0.827-0.7244 1.634-0.2014 0.3347-0.3657 0.6403-0.3648 0.6793 0 0.038 0.4026 0.2394 0.8927 0.4453 0.7682 0.3228 1.1405 0.6149 0.9836 0.7719-0.086 0.086-0.6978-0.2093-1.3345-0.6439l-0.6493-0.4433-0.6082 0.8158c-0.7478 1.0026-1.4603 1.7734-1.6392 1.7734-0.074 0 0.1218-0.3083 0.4363-0.6852zm0.6386-4.5923c-0.2045-0.2259-0.2509-0.4105-0.077-0.3026 0.06 0.037 0.375-0.016 0.6984-0.1063 0.6017-0.1788 0.8277-0.1188 0.7103 0.1865-0.1582 0.4123-1.0289 0.5577-1.3323 0.2224zm9.6229 5.0804c0-0.047-0.3398-1.3399-0.7609-2.8742l-0.7654-2.7896-0.3672-0.1218c-0.202-0.066-0.4221-0.1034-0.4893-0.08-0.2095 0.069-2.0173 4.6448-1.8675 4.7261 0.072 0.038 0.2904 0.1048 0.4838 0.1465 0.3303 0.071 0.3629 0.048 0.5353-0.3836 0.2044-0.5109 0.1388-0.5054 1.3906-0.1187 0.3537 0.1095 0.6552 0.2433 0.6698 0.2976 0.016 0.054 0.083 0.317 0.1512 0.5835 0.083 0.3226 0.2076 0.5181 0.3725 0.5844 0.3112 0.125 0.6406 0.1404 0.6468 0.029zm-2.103-2.599-0.5767-0.1903 0.3148-0.7326c0.1887-0.4389 0.3383-0.6647 0.3732-0.5634 0.097 0.2833 0.5011 1.691 0.4827 1.6835-0.016 0-0.2768-0.092-0.594-0.1972zm1.8729-6.0506c0-0.8986-0.037-1.634-0.082-1.634-0.1675 0-4.9895 1.6325-4.9873 1.6885 0 0.073 4.5984 1.5502 4.872 1.5674 0.1793 0.016 0.1972-0.1357 0.1972-1.6219z" stroke-width=".42594"/>
</g>
</svg>
+29
View File
@@ -0,0 +1,29 @@
---
class:
type: 'string'
default: ''
width:
type: 'string'
default: "100%"
height:
type: 'string'
default: "100%"
color:
type: 'string'
default: 'black'
title:
type: 'string'
default: 'menú icon'
---
<svg
class="{{ class }}"
width="{{ width }}"
height="{{ height }}"
viewBox="0 0 16 14"
fill="{{ color }}"
xmlns="http://www.w3.org/2000/svg" role="img" aria-label="{{ title }}">
<title>{{ title }}</title>
<line x1="1" y1="1" x2="15" y2="1" stroke="{{ color }}" stroke-width="2" stroke-linecap="round"/>
<line x1="1" y1="6.81836" x2="15" y2="6.81836" stroke="{{ color }}" stroke-width="2" stroke-linecap="round"/>
<line x1="1" y1="12.6362" x2="15" y2="12.6362" stroke="{{ color }}" stroke-width="2" stroke-linecap="round"/>
</svg>
+11
View File
@@ -0,0 +1,11 @@
---
class:
type: 'string'
default: 'w-35px'
---
<svg class="{{ class }}" version="1.1" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg">
<g transform="translate(-80.963 -139.44)">
<path d="m103.23 163.54-4.0687-4.0706-0.4132 0.276c-0.9006 0.6013-2.5997 1.3447-3.5633 1.5591-0.7618 0.1693-1.4293 0.2098-2.6695 0.1611-2.8188-0.1104-4.7117-0.9273-6.6929-2.8883-2.0166-1.9963-3.041-4.4223-3.041-7.2018 0-2.7632 1.0283-5.1748 3.0831-7.2302 0.9479-0.9483 1.3294-1.2207 2.5138-1.7947 1.8176-0.8811 3.1659-1.1604 5.1266-1.0616 4.4121 0.222 8.1177 3.2352 9.2655 7.5339 0.3998 1.4978 0.4005 3.6735 0 5.1058-0.2865 1.0281-0.9418 2.4589-1.5068 3.2893l-0.2774 0.40772 8.1525 8.1573-0.9208 0.9136-0.9207 0.9137zm-8.5099-4.6964c3.3858-0.7981 5.8474-3.9403 5.8549-7.4735 0.011-3.2818-2.21-6.2526-5.4332-7.2811-1.305-0.4164-3.1583-0.409-4.4883 0.018-5.6673 1.8198-7.2078 9.0573-2.771 13.018 1.8508 1.6525 4.3992 2.2928 6.8376 1.718z" fill="#7659ff" stroke-width=".51356"/>
</g>
</svg>
+14
View File
@@ -0,0 +1,14 @@
---
class:
type: 'string'
default: ''
title:
type: 'string'
default: 'arrow link external'
---
<svg class="{{ class }}" width="5.3263mm" height="4.9764mm" fill="#8e00f7" version="1.1" viewBox="0 0 5.3263 4.9764" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="{{ title }}">
<title>{{ title }}</title>
<g transform="translate(-115.67 -123.39)">
<path d="m115.78 127.96 1.1028-0.027c1.4503-6e-4 1.6705-0.0268 1.9105-0.26683 0.1063-0.1063 0.1344-0.1544 0.1863-0.3186 0.094-0.2977 0.1132-0.6707 0.1053-2.0545l-0.01-1.2275-0.5888 0.6713c-0.3238 0.369-0.6131 0.6882-0.6428 0.7089-0.1026 0.072-0.2342 0.029-0.2933-0.096-0.033-0.07-0.033-0.089 0-0.1576 0.043-0.1007 1.4866-1.7102 1.5406-1.7541 0.054-0.0439 0.13628-0.0501 0.2289-0.047 0.0926 3e-3 0.13345 1e-3 0.2068 0.049 0.0733 0.048 1.44 1.6848 1.4626 1.7747 0.037 0.1481-0.1384 0.3023-0.282 0.2477-0.033-0.013-0.3006-0.3147-0.6171-0.6972l-0.5582-0.6751-0.014 1.4534c-0.01 0.8653-0.024 1.5063-0.04 1.5844-0.05 0.2601-0.084 0.3722-0.163 0.5395-0.1912 0.4059-0.529 0.6057-1.1416 0.6752-0.1179 0.013-0.7095 0.024-1.3146 0.024l-1.0784 1e-4c-0.1499-0.082-0.1499-0.3398 0-0.40677z"/>
</g>
</svg>
+37
View File
@@ -0,0 +1,37 @@
---
class:
type: 'string'
default: ''
width:
type: 'string'
default: "100%"
height:
type: 'string'
default: "100%"
color:
type: 'string'
default: 'black'
title:
type: 'string'
default: 'close'
---
<svg
class="{{ class }}"
width="{{ width }}"
height="{{ height }}"
fill="{{ color }}"
viewBox="0 0 13 13"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg" role="img" aria-label="{{ title }}">
<title>{{ title }}</title>
<defs
id="defs1" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M 0.961648,0.3138003 C 0.678571,0.3414483 0.437603,0.53143695 0.344765,0.80030695 0.251675,1.0691769 0.324215,1.3674719 0.529934,1.5638119 l 4.93175,4.94318 -4.93175,4.9317701 c -0.285611,0.285601 -0.285611,0.7485 0,1.034101 0.28561,0.2857 0.748508,0.2857 1.03416,0 l 4.94318,-4.9431411 4.9317,4.9431411 c 0.2857,0.2857 0.7486,0.2857 1.0339,0 0.2857,-0.285601 0.2857,-0.7485 3e-4,-1.034101 l -4.94318,-4.9317701 4.94318,-4.94318 c 0.2169,-0.20952 0.2821,-0.531401 0.1636,-0.80889495 -0.1187,-0.277493 -0.3962,-0.4530258 -0.6978,-0.44110377 -0.1884,0.004566 -0.3675,0.0819282 -0.4999,0.21610977 L 6.507284,5.4616819 1.564104,0.52992295 C 1.426114,0.39016345 1.237403,0.31228721 1.041325,0.31381318 c -0.02663,-0.001268 -0.05301,-0.001268 -0.07965,0 z"
id="path1"
/>
</svg>
+14
View File
@@ -0,0 +1,14 @@
---
data:
type: hash
locale:
type: string
i18n:
type: hash
---
{% render 'sutty/title.html',
title: 'Title blog post',
h: '1',
description: 'Celebrating the mid-point between solar solstices with 2000+ words of updates on the (many) happenings in our corner of radical technology co-operativism.'
%}
+10 -3
View File
@@ -34,11 +34,18 @@
{{ site.i18n.accessibility.skip_to_content }}
</a>
</div>
{% unless page.layout == 'home' %}
{% render 'bootstrap/navbar.html',
class: 'px-5',
items: site.menu_internals,
color: 'white',
uuid: uuid,
cache: false
%}
{% endunless %}
<main tabindex="-1" role="main" id="content" class="flex-grow-1 container">
<main tabindex="-1" role="main" id="content" class="flex-grow-1 m-0">
{{ content }}
</main>
{% include_cached footer.html about=site.about license=site.license privacy_policy=site.privacy_policy code_of_conduct=site.code_of_conduct %}
</body>
</html>
+71
View File
@@ -0,0 +1,71 @@
---
layout: default
---
{% assign license = site.posts | find: 'layout', 'license' %}
{%- assign date_format = site.i18n.date.format | default: '%b %-d, %Y' -%}
<article class="h-entry mw-content m-auto ms-3" itemscope itemtype="http://schema.org/Article">
<header>
<h1 class="p-name" itemprop="name headline">{{ page.title | default: '' | escape }}</h1>
{%- if page.description -%}
<p class="lead p-summary" itemprop="description">{{ page.description | default: '' | escape }}</p>
{%- endif -%}
{%- if page.image.path -%}
<picture>
{% for size in site.images.sizes %}
<source srcset="{{ page.image.path | thumbnail: size }}" media="(max-width: {{ size }}px)">
{% endfor %}
<img class="img-fluid" src="{{ page.image.path | thumbnail: 1140 }}" alt="{{ page.image.description }}">
</picture>
{%- endif -%}
<p>
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
{{ page.date | date_local: date_format }}
</time>
{%- for author in page.author -%}
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span class="p-author h-card" itemprop="name">
{{ author | default: '' | escape }}
</span>
</span>
{%- endfor -%}
</p>
</header>
<div class="e-content content" itemprop="articleBody">
{{ content }}
</div>
<footer>
<a class="u-url" itemprop="url" href="{{ page.url }}" hidden>
{{ site.url -}}
{{- page.url }}
</a>
{%- if page.uuid -%}
<span hidden itemprop="identifier">{{ page.uuid }}</span>
{%- endif -%}
{%- if license -%}
<p itemprop="license" itemtype="http://schema.org/CreativeWork">
<a rel="license" itemprop="url" href="{{ license.url }}">
<span itemprop="articleBody">
{{ license.description }}
</span>
</a>
</p>
{%- endif -%}
{%- if page.tags %}
<span itemprop="keywords" hidden>{{ page.tags | join: ', ' }}</span>
{%- for tag in page.tags -%}
<span hidden class="h-category">{{ tag }}</span>
{%- endfor -%}
{%- endif -%}
</footer>
</article>
+8 -8
View File
@@ -1,7 +1,6 @@
---
layout: default
---
<h1>{{ site.i18n.locale | default: site.locale }}</h1>
<section class="row align-items-center justify-content-center w-100 mx-0 h-100vh">
<div class="col-12 col-md-6 d-flex flex-column justify-content-between bg-primary h-100vh text-white">
@@ -12,16 +11,17 @@ layout: default
uuid: uuid,
cache: false
%}
<div class="fs-3 fw-bold fst-italic text-monospace">
<p>We are a a federation, an open, democratic, peer governed community...</p>
<p>
Public interest infrastructure.<br>
An alternative to corporate clouds built by tech co-ops.
</p>
</div>
<div class="fs-3 fw-bold fst-italic text-monospace">
<p>We are a a federation, an open, democratic, peer governed community...</p>
<p>
Public interest infrastructure.<br>
An alternative to corporate clouds built by tech co-ops.
</p>
</div>
</div>
<div class="col-12 col-md-6 d-flex flex-column justify-content-between m-0 h-100vh">
{% render 'svg/cloud_srv.svg' %}
{% render 'search.html', title:site.i18n.search_title, placeholder:site.i18n.search_placeholder %}
</div>
</section>
+71
View File
@@ -0,0 +1,71 @@
---
layout: default
---
{% assign license = site.posts | find: 'layout', 'license' %}
{%- assign date_format = site.i18n.date.format | default: '%b %-d, %Y' -%}
<article class="h-entry mw-content m-auto ms-3" itemscope itemtype="http://schema.org/Article">
<header>
<h1 class="p-name" itemprop="name headline">{{ page.title | default: '' | escape }}</h1>
{%- if page.description -%}
<p class="lead p-summary" itemprop="description">{{ page.description | default: '' | escape }}</p>
{%- endif -%}
{%- if page.image.path -%}
<picture>
{% for size in site.images.sizes %}
<source srcset="{{ page.image.path | thumbnail: size }}" media="(max-width: {{ size }}px)">
{% endfor %}
<img class="img-fluid" src="{{ page.image.path | thumbnail: 1140 }}" alt="{{ page.image.description }}">
</picture>
{%- endif -%}
<p>
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
{{ page.date | date_local: date_format }}
</time>
{%- for author in page.author -%}
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
<span class="p-author h-card" itemprop="name">
{{ author | default: '' | escape }}
</span>
</span>
{%- endfor -%}
</p>
</header>
<div class="e-content content" itemprop="articleBody">
{{ content }}
</div>
<footer>
<a class="u-url" itemprop="url" href="{{ page.url }}" hidden>
{{ site.url -}}
{{- page.url }}
</a>
{%- if page.uuid -%}
<span hidden itemprop="identifier">{{ page.uuid }}</span>
{%- endif -%}
{%- if license -%}
<p itemprop="license" itemtype="http://schema.org/CreativeWork">
<a rel="license" itemprop="url" href="{{ license.url }}">
<span itemprop="articleBody">
{{ license.description }}
</span>
</a>
</p>
{%- endif -%}
{%- if page.tags %}
<span itemprop="keywords" hidden>{{ page.tags | join: ', ' }}</span>
{%- for tag in page.tags -%}
<span hidden class="h-category">{{ tag }}</span>
{%- endfor -%}
{%- endif -%}
</footer>
</article>
+7
View File
@@ -0,0 +1,7 @@
@font-face {
font-family: 'BBH Hegarty';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(../fonts/bbhhegarty/v1/yYLt0hbb_dvjg8talgb5vDHR.ttf) format('truetype');
}
+1
View File
@@ -5,3 +5,4 @@
@use "saira_ital_wght_0_100..900_1_100..900";
@use "space_grotesk_wght_300..700";
@use "ibm_plex_mono";
@use "bbh_hegarty";
Binary file not shown.
Binary file not shown.