Initial commit

This commit is contained in:
PapaTutuWawa 2023-01-24 18:20:04 +01:00
commit 58d94ad34a
18 changed files with 405 additions and 0 deletions

62
_config.yml Normal file
View File

@ -0,0 +1,62 @@
permalink: /posts/:year-:month-:day-:title:output_ext
sourceUrl: https://codeberg.org/moxxy/moxxy
githubMirrorUrl: https://github.com/PapaTutuWawa/moxxy
developerMuc: xmpp:moxxy@muc.moxxy.org?join
index:
heroText: An experimental and modern XMPP client
mainScreenshotUrl: /assets/img/screenshots/1.png
screenshots:
- /assets/img/screenshots/1.png
- /assets/img/screenshots/2.png
badges:
codeberg:
url: https://codeberg.org/moxxy/moxxy/releases/latest
izzy:
url: https://apt.izzysoft.de/fdroid/index/apk/org.moxxy.moxxyv2
features:
- End-to-End encryption using OMEMO
- Stickers
- Reactions
- Retract messages
- Voice messages
- Swipe-to-quote
- Chat background images
- Optional privacy-preserving integration with phone contacts
- Open-Source
developers:
libraries:
- name: moxxmpp
desc: XMPP library written in Dart
specific: false
url: https://codeberg.org/moxxy/moxxmpp
- name: moxdns
desc: DNS SRV resolver for Flutter
specific: true
url: https://codeberg.org/moxxy/moxdns
- name: moxlib
desc: Shared functions for Moxxy-specific projects
specific: true
url: https://codeberg.org/moxxy/moxlib
- name: moxplatform
desc: Platform-specific code
specific: true
url: https://codeberg.org/moxxy/moxplatform
- name: omemo_dart
desc: Implementation of the cryptography for OMEMO 0.8.3 with a high-level interface
specific: false
url: https://codeberg.org/PapaTutuWawa/omemo_dart
customXeps:
- name: Extensible File Thumbnails
desc: Provide an extensible way of specifying thumbnails that are neccessarily binary data
url: https://codeberg.org/moxxy/custom-xeps/src/branch/master/xep-xxxx-extensible-file-thumbnails.md
- name: File Upload Notification
desc: Allow communicating that an OOB file upload is currently running to improve the consistency of the conversation
url: https://codeberg.org/moxxy/custom-xeps/src/branch/master/xep-xxxx-file-upload-notification.md

20
_includes/header.html Normal file
View File

@ -0,0 +1,20 @@
<div class="relative h-16 inset-x-0 inset-y-0 px-4 shadow-md grid place-items-center">
<div class="flex flex-row items-center w-full">
<!-- The Moxxy logo -->
<!-- TODO: Asset -->
<a href="/index.html">
<img src="https://git.polynom.me/moxxy/moxxy/raw/branch/master/assets/images/logo.png" class="w-12 h-12 p-2" />
</a>
<a href="/index.html">
<span class="font-bold">Moxxy</span>
</a>
<!-- Spacer -->
<div class="grow"></div>
<a href="/posts.html" class="px-2 text-sky-400">Blog</a>
<a href="/developers.html" class="px-2 text-sky-400">Developers</a>
<a href="{{ site.sourceUrl }}" class="px-2 text-sky-400">Source</a>
</div>
</div>

25
_layouts/default.html Normal file
View File

@ -0,0 +1,25 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ page.title }}</title>
<link href="/dist/output.css" rel="stylesheet">
</head>
<body class="min-h-screen h-full flex flex-col">
{% include header.html %}
<div class="flex-grow">
{{ content }}
</div>
<footer class="h-8 w-full flex flex-row justify-center">
<span class="text-sm text-center">
Made with &lt;3 by
<a class="text-sky-400" href="https://polynom.me" target="_blank" rel="noopener noreferrer">PapaTutuWawa</a>
using <a class="text-sky-400" href="https://tailwindcss.com/" target="_blank" rel="noopener noreferrer">TailwindCSS</a>
and <a class="text-sky-400" href="https://jekyllrb.com/" target="_blank" rel="noopener noreferrer">Jekyll</a>
</span>
</footer>
</body>
</html>

15
_layouts/post.html Normal file
View File

@ -0,0 +1,15 @@
---
layout: default
---
<div class="w-full flex flex-row justify-center mt-2">
<div class="w-full lg:w-3/4 px-8 flex flex-col items-start">
<h1 class="text-3xl">{{ page.title }}</h1>
<span>Posted by <span class="italic">{{ page.author }}</span> on {{ page.date | date: "%d.%m.%Y" }}</span>
<article class="mt-5 prose lg:prose-xl max-w-none">
{{ page.content }}
</article>
</div>
</div>

View File

@ -0,0 +1,7 @@
---
layout: post
title: Test
author: PapaTutuWawa
---
Hallo welt

0
assets/css/.gitkeep Normal file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

75
developers.html Normal file
View File

@ -0,0 +1,75 @@
---
layout: default
title: Developer Information | Moxxy
---
<div class="w-full flex flex-row justify-center">
<div class="w-full lg:w-1/2">
<div class="w-full p-8 flex flex-col">
<div class="w-full pt-4">
<p>
Moxxy is fully open source. You can find the source code <a class="text-sky-400" href="{{ site.sourceUrl }}">on Codeberg</a>. Additionally, the code is
mirrored <a class="text-sky-400" href="{{ site.githubMirrorUrl }}">on GitHub</a>.
</p>
<p class="pt-1 pb-4">
Feel free to join the <a class="text-sky-400" href="{{ site.developerMuc }}">developer chat</a> with your favourite XMPP client.
</p>
</div>
<h1 class="text-3xl font-bold">Libraries</h1>
<p class="pb-4">
Moxxy is built from various smaller libraries that are custom-made for this purpose. Some of them are for general usage, some are specific to the use case of building Moxxy.
</p>
<table class="table-fixed">
<thead class="bg-gray-100">
<tr>
<th class="text-left px-1">Library</th>
<th class="text-left px-1">Description</th>
<th class="text-left px-1">Moxxy specific</th>
</tr>
</thead>
<tbody class="divide-y divide-blue-200">
{% for library in site.developers.libraries %}
<tr>
<td class="pr-4">
<a class="text-sky-400" href="{{ library.url}}">{{ library.name }}</a>
</td>
<td class="pr-4">{{ library.desc }}</td>
<td class="pr-4">{% if library.specific %}Yes{% else %}No{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="w-full p-8 flex flex-col">
<h1 class="text-3xl font-bold">Custom XEPs</h1>
<p class="pb-4">
Moxxy currently implements some custom XMPP protocols to provide additional functionality. These are experimental and are intended to be upstreamed at some point.
</p>
<table class="table-fixed">
<thead class="bg-gray-100">
<tr>
<th class="text-left px-1">Name</th>
<th class="text-left px-1">Description</th>
</tr>
</thead>
<tbody class="divide-y divide-blue-200">
{% for xep in site.developers.customXeps %}
<tr>
<td class="pr-4">
<a class="text-sky-400" href="{{ xep.url }}">{{ xep.name }}</a>
</td>
<td class="pr-4">{{ xep.desc }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>

43
flake.lock Normal file
View File

@ -0,0 +1,43 @@
{
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1674236650,
"narHash": "sha256-B4GKL1YdJnII6DQNNJ4wDW1ySJVx2suB1h/v4Ql8J0Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cfb43ad7b941d9c3606fb35d91228da7ebddbfc5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

32
flake.nix Normal file
View File

@ -0,0 +1,32 @@
{
description = "The website for Moxxy";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {
inherit system;
};
tailwindWithTypography = (pkgs.nodePackages.tailwindcss.overrideAttrs (old: {
plugins = [
pkgs.nodePackages."@tailwindcss/typography"
];
}));
in {
devShell = pkgs.mkShell {
buildInputs = with pkgs; [
tailwindWithTypography
jekyll
];
};
packages = {
website = pkgs.callPackage ./pkgs/page.nix {
inherit tailwindWithTypography;
};
};
});
}

57
index.html Normal file
View File

@ -0,0 +1,57 @@
---
layout: default
title: A modern XMPP client | Moxxy
---
<div class="w-full bg-moxxy-purple p-8 flex flex-row justify-center h-fit">
<div class="lg:w-1/2 grid grid-cols-2 gap-4">
<div class="grid grid-cols-1 place-items-center">
<span class="text-neutral-100 text-2xl text-center">{{ site.index.heroText }}</span>
</div>
<div class="grid grid-rows-1 place-items-center">
<img class="rounded-md h-64 lg:h-96" src="{{ site.index.mainScreenshotUrl }}" />
</div>
</div>
</div>
<div class="w-full p-8">
<div class="flex flex-col items-center">
<div class="flex flex-wrap gap-4">
<a href="{{ site.index.badges.izzy.url }}">
<img class="h-24 md:h-16" src="/assets/img/badges/IzzyOnDroid.png" />
</a>
<a href="{{ site.index.badges.codeberg.url }}">
<img class="h-24 md:h-16" src="/assets/img/badges/codeberg.png" />
</a>
</div>
</div>
</div>
<div class="w-full p-8">
<div class="flex flex-col items-center">
<div>
<h1 class="text-3xl font-bold pb-4 place-self-start">Features</h1>
<ul class="list-disc px-4">
{% for feature in site.index.features %}
<li>{{ feature }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<div class="w-full p-8">
<div class="flex flex-col items-center">
<div>
<h1 class="text-3xl font-bold pb-4 place-self-start">Screenshots</h1>
<div class="flex flex-nowrap gap-8 overflow-scroll">
{% for screenshot in site.index.screenshots %}
<img class="h-96 rounded-md" src="{{ screenshot }}" />
{% endfor %}
</div>
</div>
</div>
</div>

3
input.css Normal file
View File

@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

21
pkgs/page.nix Normal file
View File

@ -0,0 +1,21 @@
{
jekyll, tailwindWithTypography
, stdenv
}:
stdenv.mkDerivation {
pname = "moxxyv2-website";
version = "0.1.0";
src = ./../.;
buildPhase = ''
${jekyll}/bin/jekyll build
cp -r ./assets _site/assets
${tailwindWithTypography}/bin/tailwindcss --input ./input.css --output ./_site/assets/css/index.css
'';
installPhase = ''
mkdir -p $out/var/www/
cp -vr _site/ $out/var/www/website
'';
}

26
posts.html Normal file
View File

@ -0,0 +1,26 @@
---
layout: default
title: Blog Posts | Moxxy
---
<div class="w-full flex flex-row justify-center mt-2">
<div class="w-full lg:w-1/2 px-8 flex flex-col items-start">
<h1 class="text-3xl">Blog posts</h1>
<div class="divide-y divide-blue-200">
{% for post in site.posts %}
<div class="mb-2">
<a href="{{ post.url }}" class="text-2xl text-sky-400">{{ post.title }}</a>
<div class="flex flex-row pl-2">
<span>By <span>{{ post.author }}</span></span>
</div>
<p class="mt-2 pl-2 text-slate-600">
{{ post.excerpt | markdownify | strip_html | truncatewords: 100 }}
</p>
</div>
{% endfor %}
</div>
</div>
</div>

19
tailwind.config.js Normal file
View File

@ -0,0 +1,19 @@
module.exports = {
content: [
"./_layouts/*.html",
"./_includes/*.html",
"./index.html",
"./developers.html",
"./posts.html",
],
theme: {
extend: {
colors: {
'moxxy-purple': '#cf4aff',
},
},
},
plugins: [
require('@tailwindcss/typography'),
],
}