Set up Hugo, add new website/content #8

Merged
raucao merged 25 commits from feature/hugo into master 2022-07-11 11:07:01 +00:00
57 changed files with 3541 additions and 5 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
.hugo_build.lock
node_modules
out

View File

@ -1,6 +1,10 @@
# kosmos.org
This website (or rather foundation for a future website) is just a simple
static site. There are no dependencies to install or build tools to run.
This website (or rather foundation for a future website) is a simple static
site. It is built using the [Hugo](https://gohugo.io/) static site generator.
Just edit and submit a PR.
## Getting started
1. Clone this Git repository
2. [Install Hugo](https://gohugo.io/getting-started/installing/)
3. Run `hugo server`

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

14
config.yaml Normal file
View File

@ -0,0 +1,14 @@
theme: kosmos-22
baseURL: https://kosmos.org/
languageCode: en-us
title: Kosmos
disableKinds:
- taxonomy
- term
- RSS
- sitemap
- robotsTXT
markup:
goldmark:
renderer:
unsafe: true # Allow HTML in md files

View File

@ -0,0 +1,80 @@
---
title: Kosmos Infrastructure Foundation
description: Providing physical infrastructure for Kosmos software and services
headerImage: servers-02.jpg
menu:
main:
identifier: foundation
name: Foundation
weight: 10
---
The Kosmos Infrastructure Foundation (KIF) is the legal, physical, and financial
host organization for Kosmos hosted services.
It acts as an infrastructure provider to the developers and users of Kosmos
software. It is appointed this role by the Kosmos co-operative, and is run by
members of the co-operative itself.
The foundation also accepts financial contributions on behalf of the
co-operative, both for the development and maintenance of Kosmos (and related)
software, as well as for providing hosted services to people and organizations.
As per the KIF's founding statutes, which are legally binding, any and all of
its funds must only be used for these purposes.
## Our Mission
We believe that neither the development nor usage of [free and open-source
software](https://en.wikipedia.org/wiki/Free_and_open-source_software) should
be entirely dependent upon select corporations or VC-funded startup companies.
Thus, we think that free software benefits from community-owned, sovereign and
open communication and collaboration platforms that are only beholden to free
software's most important stakeholders: its creators and users.
In this context, our mission is as follows:
<ul class="list-disc ml-4">
<li class="mb-2">
Provide community-controlled infrastructure for the collaborative
development of all Kosmos applications, as well as related and unrelated
free software
</li>
<li class="mb-2">
Provide a professional, reliable hosting environment for research,
development, testing, and demonstration of all Kosmos applications
</li>
<li>
Provide, on a not-for-profit basis, easy-to-use services surrounding Kosmos
applications to end users, both individual and organizations
</li>
<li>
Help other organizations with both self-hosting and providing hosted
services to their own users or the wider public
</li>
</ul>
## Board of Directors
{{< partial "kif/board" >}}
## Contact
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
<div>
### Snail Mail
Stichting Kosmos Infrastructure Foundation
Herengracht 449A
1017 BR Amsterdam
Netherlands
</div>
<div>
### E-Mail
[foundation@kosmos.org](mailto:foundation@kosmos.org)
</div>
</div>

View File

@ -0,0 +1,10 @@
---
title: Projects
menu:
main:
identifier: projects
name: Projects
weight: 3
---
{{< partial "projects" >}}

View File

@ -0,0 +1,12 @@
---
title: Services
menu:
main:
identifier: services
name: Services
weight: 5
---
## Community Services
{{< partial "services/community" >}}

10
data/kif/board.yaml Normal file
View File

@ -0,0 +1,10 @@
- name: Sebastian Kippe
role: Chairman
- name: Garret Alfert
role: Secretary
- name: Michael Bumann
role: Treasurer
- name: Greg Karékinian
role: Director
- name: Nick Jennings
role: Director

70
data/projects.yaml Normal file
View File

@ -0,0 +1,70 @@
- name: Kosmos Chat
description: >-
Kosmos Chat is a group chat application, based
exclusively on open protocols, standards, and data
formats. All of its components can be either
self-hosted or connected to hosted services. No user
data is ever locked into hosted silos.
status: >-
An alpha version of the client app is in use by developers, and a public
beta version is planned for 2022.
links:
- section: Links
items:
- title: Overview & planned features (partially outdated)
url: https://wiki.kosmos.org/Kosmos_Chat
- title: Web client (alpha version)
url: https://hyperchannel.kosmos.org
- section: Source code
items:
- title: Hyperchannel (Web client)
url: https://github.com/67P/hyperchannel
- title: Sockethub (Protocol proxy)
url: https://github.com/sockethub/sockethub/
- name: Kosmos Accounts & Services
description: >-
Kosmos Accounts give people access to our hosted
services. An account dashboard and control panel
offers account management functionality and
additional integrations.
status: >-
Accounts are in beta and already in use by some
developers and other users. Registration is
currently by invitation only.
links:
- section: Links
items:
- title: Account dashboard (beta version)
url: https://accounts.kosmos.org
- title: Services
url: "/services"
- section: Source code
items:
- title: Akkounts (account dashboard/control panel)
url: https://gitea.kosmos.org/kosmos/akkounts
- title: Chef cookbooks (infrastructure automation)
url: https://gitea.kosmos.org/kosmos/chef
- name: Kredits
description: >-
Kredits are a system for tracking opensource project
contributions, enabling and facilitating the fair
and transparent use of project funds, as well as
improving project management and governance.
status: >-
We have been experimenting with the system in
pre-production for a while, and have run multiple
trials for development grant payouts. Currently
working on production migration/launch.
links:
- section: Links
items:
- title: Overview & technical details
url: https://wiki.kosmos.org/Kredits
- title: Contribution Dashboard
url: https://kredits.kosmos.org
- section: Source code
items:
- title: List of software and repositories
url: https://wiki.kosmos.org/Kredits#Software

View File

@ -0,0 +1,36 @@
- category: Communication
items:
- name: Chat
url: https://wiki.kosmos.org/Services:Chat
description: Chat rooms and instant messaging (XMPP/Jabber)
- name: Social
url: https://kosmos.social
description: Social media (micro-blogging on the fediverse)
- name: Forums
url: https://community.kosmos.org
description: Kosmos community forums and user support/help site
- category: Software development
items:
- name: Gitea
url: https://gitea.kosmos.org
description: Code hosting and collaboration for software projects
- name: Drone CI
url: https://drone.kosmos.org
description: Continuous integration and build pipelines
- category: Account & Auxiliary services
items:
- name: Accounts
url: https://accounts.kosmos.org
description: Manage your Kosmos account, and invite new users
- name: Sockethub
url: https://sockethub.org
description: Access other Internet protocols from Web apps
- name: IPFS Gateway
url: https://wiki.kosmos.org/Kredits:IPFS
description: Web gateway for the IPFS decentralized filesystem
- category: Documentation
items:
- name: Wiki
url: https://wiki.kosmos.org
description: Kosmos documentation and knowledge base

2823
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

26
package.json Normal file
View File

@ -0,0 +1,26 @@
{
"name": "website",
"version": "1.0.0",
"private": true,
"description": "The website on kosmos.org",
"scripts": {
"clean": "rm -rf public/*",
"build:css": "tailwindcss -i ./themes/kosmos-22/source/main.css -o ./themes/kosmos-22/assets/css/main.css",
"build:site": "hugo",
"build:release": "npm-run-all clean prod:css prod:site",
"prod:css": "npm run build:css -- --minify",
"prod:site": "hugo --gc --minify",
"dev": "npm-run-all --parallel dev:*",
"dev:css": "npm run build:css -- --watch",
"dev:site": "hugo server --disableFastRender"
},
"repository": {
"type": "git",
"url": "git@gitea.kosmos.org:kosmos/website.git"
},
"author": "Kosmos Contributors",
"license": "MIT",
"devDependencies": {
"tailwindcss": "3.0.24"
}
}

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

1
public/img/comet.svg Normal file
View File

@ -0,0 +1 @@
<svg width="65.364" height="55.773" enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 65.364 55.773" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="layer1" transform="translate(28.868 20.259)" fill="#000"><path id="path2" d="m22.81-9.2546-0.0137-0.0072c-0.0445-0.0196-0.0895-0.04052-0.13335-0.06078l-23.822-10.937s2.0034 9.219 2.914 11.778c0 0-27.292-8.1582-30.623-8.9354 1.0916 4.2618 20.006 40.848 20.006 40.848 3.8225 7.7608 12.677 12.083 21.912 12.083 12.949 0 23.446-10.497 23.446-23.446 6.6e-4 -9.4655-5.609-17.62-13.685-21.323z" fill="#fff" stroke-width=".65365"/></g></svg>

After

Width:  |  Height:  |  Size: 611 B

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
public/img/network-01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

BIN
public/img/servers-01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

BIN
public/img/servers-02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB

15
public/index.html Normal file
View File

@ -0,0 +1,15 @@
<!doctype html><html lang=en><head><meta name=generator content="Hugo 0.100.2"><meta charset=utf-8><title>Kosmos</title><meta content="width=device-width,minimum-scale=1,maximum-scale=1" name=viewport><link href=https://assets.kosmos.org/fonts/open-sans/open-sans.css rel=stylesheet><link href=/css/style.css rel=stylesheet></head><body><div id=wrapper><header><h1>Kosmos</h1><h2>Group communication for the 21st century</h2></header><main><p>We are an open co-operative of people, who are developing a free,
open-source, and user-centric alternative to centralized group chat
platforms, based on widely used protocols and standards.</p><p>We also develop a system for rewarding contributors and enabling
governance based on contributions, called Kredits, which we started
using in production recently.</p><p>You can find all relevant information and further links in our
<a href=https://wiki.kosmos.org>wiki</a>.
We collaborate on source code on
<a href=https://github.com/67P rel=me>GitHub</a>
as well as our own
<a href=https://gitea.kosmos.org/kosmos rel=me>Gitea</a>.
For announcements and other news, you can follow us on the
<a href=https://kosmos.social/@kosmos rel=me>fediverse</a>
(recommended) or on
<a href=https://twitter.com/KosmosHQ rel=me>Twitter</a>.</p><p class=hidden>For status and incident updates regarding Kosmos infrastructure, please follow
<a href=https://kosmos.social/@ops rel=me>ops@kosmos.social</a>.</p></main><footer></footer></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
shortcodes/partial.html Normal file
View File

@ -0,0 +1 @@
{{ partial (.Get 0) }}

View File

@ -0,0 +1,12 @@
{
"links": [
{
"rel": "urn:xmpp:alt-connections:xbosh",
"href": "https://xmpp.kosmos.org:5443/bosh"
},
{
"rel": "urn:xmpp:alt-connections:websocket",
"href": "wss://xmpp.kosmos.org:5443/ws"
}
]
}

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
static/img/network-01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

BIN
static/img/servers-01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

BIN
static/img/servers-02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB

15
tailwind.config.js Normal file
View File

@ -0,0 +1,15 @@
module.exports = {
content: [
"./content/**/*.{md,html}",
"./layouts/**/*.{html,js}",
"./themes/**/*.{html,js}"
],
theme: {
extend: {
fontFamily: {
sans: ['Open Sans', 'sans-serif']
}
},
},
plugins: [],
}

20
themes/kosmos-22/LICENSE Normal file
View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2022 YOUR_NAME_HERE
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,2 @@
+++
+++

File diff suppressed because one or more lines are too long

View File

View File

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
{{ partial "meta.html" . }}
<title>{{ block "title" . }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
<link href='https://assets.kosmos.org/fonts/open-sans/open-sans.css' rel='stylesheet'>
{{ $css := resources.Get "css/main.css" | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}" />
</head>
<body class="text-center">
{{ partial "topnav" . }}
<main class="text-left">
{{- block "main" . }}{{- end }}
</main>
<footer>
</footer>
</body>
</html>

View File

@ -0,0 +1,3 @@
{{ define "main" }}
{{ .Content }}
{{ end }}

View File

@ -0,0 +1,23 @@
{{ define "main" }}
{{ if .Params.HeaderImage }}
<!-- <div class="w&#45;full h&#45;32 bg&#45;[center_bottom_23rem] bg&#45;cover" -->
<!-- style="background&#45;image: url(/img/{{ .Params.HeaderImage }})"> -->
<div class="w-full h-32 bg-[center] bg-cover"
style="background-image: url(/img/{{ .Params.HeaderImage }})">
</div>
{{ else }}
<div class="w-full h-32 bg-[url('/img/lagoon-close-02.jpg')]
bg-[center_top_30rem] bg-cover">
</div>
{{ end }}
<div class="max-w-5xl mx-auto -mt-12 py-8 px-8 text-left bg-white">
<header class="mb-8">
<h1 class="text-2xl font-bold">{{ .Title }}</h1>
{{ if .Description }}
<p class="mt-2 text-lg text-zinc-500">{{ .Description }}</p>
{{ end }}
</header>
<div class="content">
{{ .Content }}
</div>
{{ end }}

View File

@ -0,0 +1,15 @@
{{ define "main" }}
<div class="w-full h-32 bg-[url('/img/lagoon-close-02.jpg')]
bg-[center_top_30rem] bg-cover">
</div>
<div class="max-w-5xl mx-auto -mt-12 py-8 px-8 text-left bg-white">
<header class="mb-8">
<h1 class="text-2xl font-bold">{{ .Title }}</h1>
{{ if .Description }}
<p class="mt-2 text-lg text-zinc-500">{{ .Description }}</p>
{{ end }}
</header>
<div class="content">
{{ .Content }}
</div>
{{ end }}

View File

@ -5,7 +5,7 @@
<title>Kosmos</title>
<meta content='width=device-width, minimum-scale=1.0, maximum-scale=1.0' name='viewport'>
<link href='https://assets.kosmos.org/fonts/open-sans/open-sans.css' rel='stylesheet'>
<link href="/styles/style.css" rel="stylesheet" />
<link href="/css/style.css" rel="stylesheet" />
</head>
<body>
<div id="wrapper">

View File

@ -0,0 +1,8 @@
<ul class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 gap-6 mb-8">
{{ range site.Data.kif.board }}
<li>
{{ .name }}<br>
<span class="text-discreet text-sm">{{ .role }}</span>
</li>
{{ end }}
</ul>

View File

@ -0,0 +1,2 @@
<meta charset="utf-8">
<meta content='width=device-width, minimum-scale=1.0, maximum-scale=1.0' name='viewport'>

View File

@ -0,0 +1,19 @@
{{ range site.Data.projects }}
<h2>{{ .name }}</h2>
<p>{{ .description | markdownify }}</p>
<p class="text-discreet">
<strong>Status:</strong> {{ .status | markdownify }}
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
{{ range .links }}
<div>
<h3 class="mt-6">{{ .section }}</h3>
<ul class="list-disc list-inside leading-relaxed">
{{ range .items }}
<li><a href="{{ .url }}">{{ .title | markdownify }}</a></li>
{{ end }}
</ul>
</div>
{{ end }}
</div>
{{ end }}

View File

@ -0,0 +1,13 @@
{{ range site.Data.services.community }}
<h3>{{ .category }}</h3>
<ul class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 mb-8">
{{ range .items }}
<li>
<h4 class="text-lg font-bold mb-2">
<a href="{{ .url }}" class="!text-black">{{ .name }}</a>
</h4>
<p>{{ .description }}</p>
</li>
{{ end }}
</ul>
{{ end }}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{{ partial (.Get 0) (.Get 1) }}

View File

@ -0,0 +1,51 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
h2 {
@apply text-lg font-bold mb-6 mt-8;
}
h3 {
@apply mb-4 text-sm uppercase text-zinc-500;
}
h3:not(:first-child) {
@apply mt-6;
}
p + p,
p + ul {
@apply mt-6;
}
/* ul { */
/* @apply list-disc list-inside leading-relaxed; */
/* } */
}
@layer components {
.text-discreet {
@apply text-zinc-500;
}
.content {
@apply pb-20;
}
.content a { @apply text-sky-600 border-b border-zinc-300; }
.content a:hover { @apply text-sky-700 border-b border-zinc-400; }
.content a:visited { @apply text-indigo-600 }
.content a:active { @apply text-sky-500; }
input#mobile-nav-is-open + div > a svg:last-of-type { @apply hidden; }
input#mobile-nav-is-open:checked + div > a svg:first-of-type { @apply hidden; }
input#mobile-nav-is-open:checked + div > a svg:last-of-type { @apply block; }
input#mobile-nav-is-open + div > div.backdrop { @apply hidden; }
input#mobile-nav-is-open:checked + div > div.backdrop { @apply block; }
input#mobile-nav-is-open + div > nav { @apply hidden; }
input#mobile-nav-is-open:checked + div > nav { @apply block }
}

View File

@ -0,0 +1,91 @@
* {
margin: 0;
padding: 0;
}
body, html {
box-sizing: border-box;
height: 100%;
font-size: 16px;
}
*, *:before, *:after {
box-sizing: inherit;
}
body {
background-color: #fff;
color: #232323;
font-family: 'Open Sans', sans-serif;
text-rendering: optimizeLegibility;
text-align: center;
}
html, body, #wrapper {
min-height: 100%;
}
#wrapper {
min-height: 100%;
margin: 0 auto;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
header {
height: 100%;
max-width: 90%;
margin: 0 auto 10vh;
text-align: center;
}
header h1 {
display: inline-block;
margin-bottom: 2rem;
margin-right: -0.25em; /* fix trailing space from letter-spacing */
font-size: 7vw;
font-weight: 700;
letter-spacing: 0.5em;
text-transform: uppercase;
background: #232323 url(https://kredits.kosmos.org/img/bg-947d3bf6bb15a1a3b07afcba4c307690.jpg);
background-size: cover;
background-repeat: no-repeat;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}
header h2 {
font-weight: 300;
font-size: 1.4rem;
}
main {
width: 768px;
max-width: 90%;
text-align: left;
}
main p {
line-height: 1.6em;
margin-bottom: 1em;
}
.hidden {
display: none !important;
}
@media screen and (max-width: 760px) {
header {
margin-top: 4rem;
}
header h1 {
font-size: 8vw;
}
footer {
margin-bottom: 4rem;
}
}

View File

@ -0,0 +1 @@
<svg width="65.364" height="55.773" enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 65.364 55.773" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="layer1" transform="translate(28.868 20.259)" fill="#000"><path id="path2" d="m22.81-9.2546-0.0137-0.0072c-0.0445-0.0196-0.0895-0.04052-0.13335-0.06078l-23.822-10.937s2.0034 9.219 2.914 11.778c0 0-27.292-8.1582-30.623-8.9354 1.0916 4.2618 20.006 40.848 20.006 40.848 3.8225 7.7608 12.677 12.083 21.912 12.083 12.949 0 23.446-10.497 23.446-23.446 6.6e-4 -9.4655-5.609-17.62-13.685-21.323z" fill="#fff" stroke-width=".65365"/></g></svg>

After

Width:  |  Height:  |  Size: 611 B

View File

@ -0,0 +1,21 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "Kosmos 22"
license = "MIT"
licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
description = ""
homepage = "http://example.com/"
tags = []
features = []
min_version = "0.41.0"
[author]
name = ""
homepage = ""
# If porting an existing theme
[original]
name = ""
homepage = ""
repo = ""