CSS : Add code for element collapse/expand;

Python : Addd support for UBports;
SVG    : Add more icons;
TOML   : Add more clients;
XHTML  : Add a note of UBports, and an element to collapse/expand details.
This commit is contained in:
Schimon Jehudah, Adv. 2024-10-25 15:52:52 +03:00
parent 4c9621972a
commit 6625035969
10 changed files with 4189 additions and 80 deletions

View file

@ -1,6 +1,5 @@
#[atalk]
#title = "aTalk"
#home = "https://atalk.sytes.net/atalk/"
#about = """
#XMPP/Jabber client with encrypted instant messaging and video calls.
##
@ -8,19 +7,36 @@
#"""
#android = "https://f-droid.org/packages/org.atalk.android/"
#features = ["chat", "fdroid", "graphical", "mobile", "omemo", "otr", "zrtp"]
#resources = [
# { url = "https://atalk.sytes.net/atalk/", txt = "Homepage" },
#]
[aparte]
title = "Aparté"
home = "https://github.com/paulfariello/aparte"
about = """
Simple XMPP console client written in Rust and inspired by Profanity.
"""
posix = "https://github.com/paulfariello/aparte/releases"
features = ["chat", "console", "desktop"]
resources = [
{ url = "https://github.com/paulfariello/aparte", txt = "Homepage" },
]
#[adium]
#title = "Adium"
#about = """
#Adium is a free instant messaging application for macOS which lets you connect \
#accounts on multiple chat networks simultaneously. This means that you can be \
#chatting with friends on XMPP and sitting in an IRC channel at the same time.
#"""
#apple = "https://adium.im"
#features = ["chat", "desktop", "openpgp", "otr"]
#resources = [
# { url = "https://adium.im", txt = "Homepage" },
#]
#[beagle]
#title = "Beagle"
#home = "https://beagle.im"
#about = """
#Beagle IM by Tigase, Inc. is a lightweight and powerful XMPP client for macOS.
#
@ -32,20 +48,24 @@ features = ["chat", "console", "desktop"]
#"""
#apple = "https://beagle.im/#about"
#features = ["chat", "desktop", "graphical", "omemo"]
#resources = [
# { url = "https://beagle.im", txt = "Homepage" },
#]
[blabber]
title = "blabber.im"
home = "https://blabber.im"
about = """
blabber.im is a fork of Conversations. The changes aim to improve usability \
and ease transition from pre-installed and other widespread messengers.
"""
android = "https://blabber.im"
features = ["adhoc", "chat", "graphical", "mobile", "omemo", "openpgp"]
resources = [
{ url = "https://blabber.im", txt = "Homepage" },
]
#[bruno]
#title = "Bruno"
#home = "https://yaxim.org/bruno/"
#about = """
#Bruno is the cutest Jabber/XMPP Instant Messaging (IM) app available. It is a \
#themed version of the open source yaxim app.
@ -54,10 +74,12 @@ features = ["adhoc", "chat", "graphical", "mobile", "omemo", "openpgp"]
#"""
#android = "https://yaxim.org/download/"
#features = ["chat", "graphical", "mobile"]
#resources = [
# { url = "https://yaxim.org/bruno/", txt = "Homepage" },
#]
#[candy]
#title = "Candy"
#home = "http://candy-chat.github.io/candy/"
#about = """
#A JavaScript-based multi-user chat client.
#
@ -70,10 +92,12 @@ features = ["adhoc", "chat", "graphical", "mobile", "omemo", "openpgp"]
#"""
#browser = "http://candy-chat.github.io/candy/"
#features = ["chat", "desktop", "graphical", "mobile"]
#resources = [
# { url = "http://candy-chat.github.io/candy/", txt = "Homepage" },
#]
#[chat-o-matic]
#title = "Chat-O-Matic"
#home = "https://github.com/JadedCtrl/Chat-O-Matic"
#about = """
#A multi-protocol chat program for Haiku
#
@ -81,10 +105,12 @@ features = ["adhoc", "chat", "graphical", "mobile", "omemo", "openpgp"]
#"""
#haiku = "https://github.com/JadedCtrl/Chat-O-Matic/releases"
#features = ["chat", "desktop", "graphical"]
#resources = [
# { url = "https://github.com/JadedCtrl/Chat-O-Matic", txt = "Homepage" },
#]
[chatsecure]
title = "ChatSecure"
home = "https://chatsecure.org"
about = """
ChatSecure is a free and open source messaging app that features OMEMO \
encryption and OTR encryption over XMPP.
@ -94,10 +120,12 @@ fully interoperable with other clients that support OMEMO or OTR and XMPP.
"""
apple = "https://chatsecure.org"
features = ["chat", "fdroid", "graphical", "mobile", "omemo", "otr"]
resources = [
{ url = "https://chatsecure.org", txt = "Homepage" },
]
[cheogram]
title = "Cheogram"
home = "https://cheogram.com"
about = """
The Cheogram Android app allows you to join a worldwide communication network.
@ -106,10 +134,12 @@ on other networks as well, such as SMS-enabled phone numbers.
"""
android = "https://f-droid.org/packages/com.cheogram.android"
features = ["adhoc", "chat", "fdroid", "graphical", "mobile", "omemo", "openpgp"]
resources = [
{ url = "https://cheogram.com", txt = "Homepage" },
]
[conversations]
title = "Conversations"
home = "https://conversations.im"
about = """
Conversations is an encrypted, easy-to-use XMPP instant messenger for your \
mobile device.
@ -118,11 +148,13 @@ It is easy to use, reliable, battery friendly. With built-in support for \
images, group chats and e2e encryption.
"""
android = "https://f-droid.org/packages/eu.siacs.conversations"
features = ["chat", "fdroid", "graphical", "mobile", "omemo", "openpgp", "pwa"]
features = ["chat", "fdroid", "graphical", "mobile", "omemo", "openpgp"]
resources = [
{ url = "https://conversations.im", txt = "Homepage" },
]
[conversations-classic]
title = "Conversations Classic"
home = "https://conversations.im"
about = """
The very last word in instant messaging.
@ -131,23 +163,34 @@ been optimized to provide a unique mobile experience.
"""
android = "https://f-droid.org/packages/eu.siacs.conversations.classic"
features = ["chat", "fdroid", "graphical", "mobile", "omemo", "openpgp"]
resources = [
{ url = "https://conversations.im", txt = "Homepage" },
]
[conversejs]
title = "Converse"
home = "https://conversejs.org"
about = """
Converse is a free and open-source XMPP chat client that runs from browsers \
and desktops.
You can use it as a browser chat app, integrate it into your own site, or use \
it directly from your desktop or mobile devices.
It is 100% client-side JavaScript, HTML and CSS and the only backend required \
is a modern XMPP server.
"""
browser = "https://conversejs.org"
apple = "https://github.com/conversejs/converse-desktop/releases"
linux = "https://github.com/conversejs/converse-desktop/releases"
ubports = "https://open-store.io/app/conversejs.luigi311" # openstore://conversejs.luigi311
windows = "https://github.com/conversejs/converse-desktop/releases"
features = ["adhoc", "chat", "desktop", "graphical", "omemo"]
features = ["adhoc", "chat", "desktop", "graphical", "mobile", "omemo", "pwa"]
resources = [
{ url = "https://conversejs.org", txt = "Homepage" },
]
#[coyim]
#title = "CoyIM"
#home = "https://coy.im"
#about = """
#CoyIM is a standalone chat client for computers that focuses on safety and \
#security.
@ -169,10 +212,12 @@ features = ["adhoc", "chat", "desktop", "graphical", "omemo"]
#linux = "https://coy.im/#download-section"
#windows = "https://coy.im/#download-section"
#features = ["chat", "desktop", "graphical", "otr"]
#resources = [
# { url = "https://coy.im", txt = "Homepage" },
#]
[dino]
title = "Dino"
home = "https://dino.im"
about = """
Dino is a modern open-source chat client for desktop and mobile devices, which \
focuses on providing a clean and reliable Jabber/XMPP experience while having \
@ -187,10 +232,12 @@ services.
"""
linux = "https://dino.im/#download"
features = ["chat", "desktop", "graphical", "mobile", "omemo", "openpgp"]
resources = [
{ url = "https://dino.im", txt = "Homepage" },
]
[gajim]
title = "Gajim"
home = "https://gajim.org"
about = """
Gajim aims to be an easy to use and fully-featured XMPP client.
@ -204,20 +251,27 @@ apple = "https://gajim.org/download/#macos"
linux = "https://gajim.org/download/#linux"
windows = "https://gajim.org/download/#windows"
features = ["adhoc", "admin", "chat", "desktop", "graphical", "omemo", "openpgp"]
resources = [
{ url = "https://gajim.org", txt = "Homepage" },
]
[irssi]
title = "Irssi"
home = "https://cybione.org/~irssi-xmpp/"
about = """
Irssi is a modular text mode chat client. It comes with IRC support built in.
irssi-xmpp is an Irssi plugin to connect to the XMPP network (jabber).
"""
haiku = "https://depot.haiku-os.org/irssi"
posix = "https://cybione.org/~irssi-xmpp/"
features = ["chat", "console", "desktop", "haikudepot"]
resources = [
{ url = "https://cybione.org/~irssi-xmpp/", txt = "irssi-xmpp homepage" },
{ url = "https://irssi.org", txt = "Irssi homepage" },
]
[emacs]
title = "jabber.el"
home = "https://codeberg.org/emacs-jabber/emacs-jabber"
about = """
An XMPP client for Emacs
@ -229,10 +283,12 @@ android = "https://codeberg.org/emacs-jabber/emacs-jabber#how-to-install"
posix = "https://codeberg.org/emacs-jabber/emacs-jabber#how-to-install"
windows = "https://codeberg.org/emacs-jabber/emacs-jabber#how-to-install"
features = ["admin", "chat", "console", "desktop"]
resources = [
{ url = "https://codeberg.org/emacs-jabber/emacs-jabber", txt = "Homepage" },
]
[jsxc]
title = "JSXC"
home = "https://jsxc.org"
about = """
JavaScript XMPP Client.
@ -241,10 +297,12 @@ communication.
"""
browser = "https://github.com/narutogo/jsxc-na"
features = ["chat", "desktop", "graphical", "mobile", "omemo"]
resources = [
{ url = "https://jsxc.org", txt = "Homepage" },
]
[kaidan]
title = "Kaidan"
home = "https://kaidan.im"
about = """
Kaidan is a user-friendly and modern chat app for every device.
@ -255,11 +313,14 @@ provider, and your privacy is gauranteed more than ever before.
"""
android = "https://kaidan.im/download/#android-experimental"
linux = "https://kaidan.im/download/#linux"
ubports = "https://open-store.io/app/im.kaidan.kaidan" # openstore://im.kaidan.kaidan
features = ["chat", "desktop", "graphical", "mobile", "omemo"]
resources = [
{ url = "https://kaidan.im", txt = "Homepage" },
]
#[mcabber]
#title = "MCabber"
#home = "https://mcabber.com"
#about = """
#mcabber is a small XMPP (Jabber) console client.
#
@ -269,10 +330,12 @@ features = ["chat", "desktop", "graphical", "mobile", "omemo"]
#"""
#posix = "https://mcabber.com"
#features = ["admin", "chat", "console", "desktop", "openpgp", "otr"]
#resources = [
# { url = "https://mcabber.com", txt = "Homepage" },
#]
[miranda]
title = "Miranda NG"
home = "https://miranda-ng.org"
about = """
A multi-protocol client with extended XMPP support.
@ -283,10 +346,12 @@ It is very light on system resources and extremely fast.
"""
windows = "https://miranda-ng.org/downloads/"
features = ["adhoc", "chat", "desktop", "graphical", "omemo", "openpgp", "otr"]
resources = [
{ url = "https://miranda-ng.org", txt = "Homepage" },
]
[monal]
title = "Monal"
home = "https://monal-im.org"
about = """
Privacy like it's 1999.
@ -296,10 +361,12 @@ Divest OS.
"""
apple = "https://monal-im.org"
features = ["chat", "desktop", "graphical", "mobile", "omemo"]
resources = [
{ url = "https://monal-im.org", txt = "Homepage" },
]
[monocles]
title = "monocles chat"
home = "https://monocles.de/more/"
about = """
monocles chat is a modern and secure Android XMPP chat client.
@ -308,10 +375,12 @@ offers additional features to improve usability and security.
"""
android = "https://f-droid.org/packages/de.monocles.chat"
features = ["adhoc", "chat", "fdroid", "graphical", "mobile", "omemo", "openpgp", "otr"]
resources = [
{ url = "https://monocles.de/more/", txt = "Homepage" },
]
[movim]
title = "Movim"
home = "https://movim.eu"
about = """
Movim is a federated publishing and chat platform that acts as an HTML \
frontend for the XMPP protocol.
@ -328,11 +397,14 @@ desktop computer.
apple = "https://join.movim.eu"
browser = "https://join.movim.eu"
android = "https://join.movim.eu"
ubports = "https://open-store.io/app/eu.movim.ut.movim" # openstore://eu.movim.ut.movim
features = ["adhoc", "chat", "desktop", "graphical", "mobile", "omemo", "pubsub", "pwa"]
resources = [
{ url = "https://movim.eu", txt = "Homepage" },
]
[moxxy]
title = "Moxxy"
home = "https://moxxy.org"
about = """
Moxxy is an experimental XMPP client that aims to be modern and easy to use.
@ -341,23 +413,50 @@ functionalities. Please do not use Moxxy for anything important at this moment.
"""
android = "https://apt.izzysoft.de/fdroid/index/apk/org.moxxy.moxxyv2"
features = ["chat", "graphical", "izzyondroid", "mobile", "omemo"]
resources = [
{ url = "https://moxxy.org", txt = "Homepage" },
]
#[pade]
#title = "Pàdé"
#home = "https://igniterealtime.org/projects/pade/"
#about = """
#Browser Extension based XMPP unified communications client
#
#Pàdé is the Yoruba word for "Meet". It is a unified real-time collaboration \
#client optimized for business and organizations implemented as a cross-\
#platform browser extension.
#"""
#browser = "https://igniterealtime.org/projects/pade/"
#features = ["chat", "desktop", "extension", "graphical", "mobile", "omemo"]
[pade]
title = "Pàdé"
about = """
Browser Extension based XMPP unified communications client
Pàdé is the Yoruba word for "Meet". It is a unified real-time collaboration \
client optimized for business and organizations implemented as a cross-\
platform browser extension.
"""
browser = "https://igniterealtime.org/projects/pade/"
features = ["chat", "desktop", "extension", "graphical", "mobile", "omemo"]
resources = [
{ url = "https://igniterealtime.org/projects/pade/", txt = "Homepage" },
]
[pidgin]
title = "Pidgin"
about = """
Pidgin is a chat program which lets you log into accounts on multiple chat \
networks simultaneously. This means that you can be chatting with friends on \
XMPP and sitting in an IRC channel at the same time.
Pidgin is compatible with the following chat networks out of the box: \
Jabber/XMPP, Bonjour, Gadu-Gadu, IRC, Novell GroupWise Messenger, Lotus \
Sametime, SILC, SIMPLE, and Zephyr. It can support many more with plugins.
Pidgin supports many features of these chat networks, such as file transfers, \
away messages, buddy icons, custom smileys, and typing notifications. Numerous \
plugins also extend Pidgins functionality above and beyond the standard \
features.
"""
linux = "https://pidgin.im/install/"
windows = "https://pidgin.im/install/"
features = ["chat", "desktop", "openpgp", "otr"]
resources = [
{ url = "https://pidgin.im", txt = "Homepage" },
]
[poezio]
title = "Poezio"
home = "https://poez.io"
about = """
Poezio is a free console XMPP client (the protocol on which the Jabber IM \
network is built).
@ -374,16 +473,21 @@ anonymous spirit of IRC while using a powerful, standard and open protocol.
haiku = "https://depot.haiku-os.org/poezio"
posix = "https://poez.io/en/#download"
features = ["adhoc", "chat", "console", "desktop", "haikudepot", "omemo", "openpgp", "otr"]
resources = [
{ url = "https://poez.io", txt = "Homepage" },
]
#[profanity]
#title = "Profanity"
#home = "https://profanity-im.github.io"
#about = """
#Profanity is a console based XMPP client written in C using ncurses and \
#libstrophe, inspired by Irssi.
#"""
#posix = "https://profanity-im.github.io"
#features = ["chat", "console", "desktop", "omemo", "openpgp", "otr"]
#resources = [
# { url = "https://profanity-im.github.io", txt = "Homepage" },
#]
[prose]
title = "Prose"
@ -396,10 +500,12 @@ Decentralized Team Messaging in an Era of Centralized SaaS.
apple = "https://prose.org/downloads/"
browser = "https://prose.org/downloads/"
features = ["chat", "desktop", "graphical", "mobile"]
resources = [
{ url = "https://prose.org", txt = "Homepage" },
]
[psi]
title = "Psi"
home = "https://psi-im.org"
about = """
Psi is a cross-platform powerful XMPP client designed for experienced people.
@ -410,10 +516,12 @@ apple = "https://psi-im.org"
linux = "https://psi-im.org"
windows = "https://psi-im.org"
features = ["adhoc", "admin", "chat", "desktop", "graphical", "omemo", "openpgp", "otr"]
resources = [
{ url = "https://psi-im.org", txt = "Homepage" },
]
[psi-plus]
title = "Psi+"
home = "https://psi-im.org"
about = """
Psi+ is a development branch of Psi XMPP client. Thanks to rolling release \
development model Psi+ recieves new features and fixes very quickly.
@ -426,10 +534,12 @@ haiku = "https://depot.haiku-os.org/psi_plus"
linux = "https://psi-plus.com/wiki/en:downloads#linux"
windows = "https://psi-plus.com/wiki/en:downloads#ms_windows"
features = ["adhoc", "admin", "chat", "desktop", "graphical", "haikudepot", "omemo", "openpgp", "otr"]
resources = [
{ url = "https://psi-im.org", txt = "Homepage" },
]
[reeder]
title = "Reeder"
home = "https://github.com/SeveFP/Reeder"
about = """
Reeder is an Atom/RSS feed reader with the peculiar meticulousness that is \
purely based on the XMPP PubSub system. This means, that the content which \
@ -438,10 +548,12 @@ XMPP PubSub services.
"""
browser = "https://github.com/SeveFP/Reeder"
features = ["desktop", "graphical", "pubsub"]
resources = [
{ url = "https://github.com/SeveFP/Reeder", txt = "Homepage" },
]
[renga]
title = "Renga"
home = "https://pulkomandy.tk/projects/renga"
about = """
A simple but powerful client for chatting on XMPP networks.
@ -450,20 +562,24 @@ provides a clean and easy to use interface.
"""
haiku = "https://depot.haiku-os.org/renga"
features = ["chat", "desktop", "graphical", "haikudepot"]
resources = [
{ url = "https://pulkomandy.tk/projects/renga", txt = "Homepage" },
]
#[siskin]
#title = "Siskin"
#home = "https://siskin.im"
#about = """
#Siskin IM by Tigase, Inc. is a lightweight and powerful XMPP client for iPhone \
#and iPad. It provides an easy way to talk and share moments with your friends.
#"""
#apple = "https://siskin.im/#about"
#features = ["chat", "graphical", "mobile", "omemo"]
#resources = [
# { url = "https://siskin.im", txt = "Homepage" },
#]
#[spark]
#title = "Spark"
#home = "https://igniterealtime.org/projects/spark/"
#about = """
#Spark is an Open Source, cross-platform IM client optimized for businesses and \
#organizations.
@ -478,10 +594,12 @@ features = ["chat", "desktop", "graphical", "haikudepot"]
#linux = "https://igniterealtime.org/projects/spark/"
#windows = "https://igniterealtime.org/projects/spark/"
#features = ["chat", "desktop", "graphical", "omemo"]
#resources = [
# { url = "https://igniterealtime.org/projects/spark/", txt = "Homepage" },
#]
#[speeqe]
#title = "Speeqe"
#home = "https://github.com/thepug/Speeqe"
#about = """
#Speeqe is an HTML based client to XMPP/MUC rooms.
#
@ -499,10 +617,29 @@ features = ["chat", "desktop", "graphical", "haikudepot"]
#"""
#browser = "https://github.com/thepug/Speeqe"
#features = ["chat", "desktop", "graphical"]
#resources = [
# { url = "https://github.com/thepug/Speeqe", txt = "Homepage" },
#]
[squawk]
title = "Squawk"
about = """
Squawk is a lightweight XMPP desktop messenger.
The primary objective of this project is to offer you a fast and user-friendly \
messaging experience that closely aligns with your systems style, while also \
minimizing resource consumption.
Squawk is still at a very early stage and might not suit everyone but you are welcome to try it out.
"""
linux = "https://macaw.me/projects/squawk/"
features = ["chat", "desktop", "graphical"]
resources = [
{ url = "https://macaw.me/projects/squawk/", txt = "Homepage" },
]
[stork]
title = "Stork"
home = "https://stork.im"
about = """
Stork IM by Tigase, Inc. is a lightweight and powerful XMPP client for Android.
@ -510,10 +647,12 @@ It provides an easy way to talk and share moments with your friends.
"""
android = "https://stork.im/#about"
features = ["chat", "graphical", "mobile", "omemo"]
resources = [
{ url = "https://stork.im", txt = "Homepage" },
]
[swift]
title = "Swift"
home = "https://swift.im"
about = """
An elegant, secure, adaptable and intuitive XMPP Client.
@ -527,6 +666,9 @@ apple = "https://swift.im/downloads.html"
linux = "https://swift.im/downloads.html"
windows = "https://swift.im/downloads.html"
features = ["chat", "desktop", "graphical"]
resources = [
{ url = "https://swift.im", txt = "Homepage" },
]
[uwpx]
title = "UWPX"
@ -539,12 +681,13 @@ maintainer.
There is support for a wide range of features link bookmarks, user avatars, \
chat markers and experimental OMEMO support.
For a complete list of features, please refer to the project: \
https://github.com/UWPX/UWPX-Client?tab=readme-ov-file#features
"""
windows = "https://uwpx.org"
features = ["chat", "desktop", "graphical", "mobile", "omemo"]
resources = [
{ url = "https://github.com/UWPX/UWPX-Client?tab=readme-ov-file#features", txt = "A complete list of features" },
{ url = "https://uwpx.org", txt = "Homepage" },
]
[weechat]
title = "WeeChat"
@ -559,10 +702,13 @@ android = "https://github.com/bqv/weechat-xmpp"
haiku = "https://depot.haiku-os.org/weechat"
posix = "https://github.com/bqv/weechat-xmpp"
features = ["chat", "console", "desktop", "omemo", "openpgp"]
resources = [
{ url = "https://github.com/bqv/weechat-xmpp", txt = "weechat-xmpp homepage" },
{ url = "https://weechat.org", txt = "WeeChat homepage" },
]
[xabber]
title = "Xabber"
home = "https://xabber.com"
about = """
Open source Jabber (XMPP) client with multi-account support, and a clean \
interface to provide you with a first-class chat experience.
@ -574,19 +720,23 @@ interoperable open standards.
browser = "https://xabber.com"
android = "https://xabber.com"
features = ["chat", "desktop", "graphical", "omemo", "mobile"]
resources = [
{ url = "https://xabber.com", txt = "Homepage" },
]
#[xmpp-web]
#title = "XMPP Web"
#home = "https://github.com/nioc/xmpp-web"
#about = """
#Lightweight HTML chat client for XMPP servers.
#"""
#browser = "https://github.com/nioc/xmpp-web/releases"
#features = ["chat", "desktop", "graphical", "mobile", "pwa"]
#resources = [
# { url = "https://github.com/nioc/xmpp-web", txt = "Homepage" },
#]
[yaxim]
title = "yaxim"
home = "https://yaxim.org"
about = """
yaxim (Yet Another XMPP Instant Messenger) is a lean Jabber/XMPP client for \
Android.
@ -596,3 +746,6 @@ devices starting with Android 4.0.
"""
android = "https://yaxim.org/download/"
features = ["chat", "graphical", "mobile"]
resources = [
{ url = "https://yaxim.org", txt = "Homepage" },
]

View file

@ -317,7 +317,7 @@ h1 {
}
#selection dd {
font-size: 1.5em;
font-size: 1.1em;
}
#selection > dd span.text {
@ -347,12 +347,17 @@ h1 {
#selection img.narrow {
display: none;
height: 1em;
width: 1em;
/*
height: 30px;
width: 30px;
*/
}
#selection a {
font-size: 30px;
#selection dt a {
/* font-size: 30px; */
font-size: 1.5em;
text-decoration: none;
}
@ -361,9 +366,31 @@ h1 {
margin: 1em;
}
#selection .features > label,
#selection .features > span {
margin-left: 0.5em;
margin-right: 0.5em;
white-space: nowrap;
}
#selection .features > .details {
display: none;
}
#selection .features > input[type="checkbox"] {
display: none; /* Hide checkbox */
}
#selection .features > input[type="checkbox"]:checked + label:before {
content: "📖️ "; /* Change + to - when checked */
}
#selection .features > input[type="checkbox"]:not(:checked) + label:before {
content: "📚️ "; /* Default content is + */
}
#selection .features > input[type="checkbox"]:checked + label + .details {
display: block; /* Show details upon checked checkbox */
}
#security-notices {
@ -607,6 +634,10 @@ h1 {
display: none;
}
#security-notices {
display: grid;
}
}
/* NOTE This rule useful, for larger images (800x800), to switch from
@ -623,17 +654,9 @@ h1 {
}
*/
@media (max-width: 950px) {
#security-notices {
display: grid;
}
}
@media (max-width: 820px) {
#action-bar > #reactos {
#action-bar > #windows {
display: none;
}

View file

@ -692,6 +692,7 @@ class HttpInstance:
name = software.title()
if software == 'posix': name = 'POSIX'
if software == 'ubports': name = 'UBports'
filename_clients = 'clients.toml'
clients = Data.open_file_toml(filename_clients)
@ -703,7 +704,8 @@ class HttpInstance:
'about' : clients[client]['about'],
'features' : clients[client]['features'],
'iden' : client,
'href' : clients[client][software]}
'href' : clients[client][software],
'resources' : clients[client]['resources'] if 'resources' in clients[client] else ''}
client_selection.append(client_selected)
template_file = 'download.xhtml'

120
img/openstore.svg Normal file
View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 512.00001 512.00001"
id="svg5962"
version="1.1"
inkscape:version="0.92.1 r"
sodipodi:docname="logo.svg"
inkscape:export-filename="/home/brian/dev/web/openstore-web/www/img/logo.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48">
<defs
id="defs5964" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="241.05258"
inkscape:cy="256.67235"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5967">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(396,-510.64792)">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#292929;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect5957"
width="512"
height="512"
x="-396"
y="510.64792"
inkscape:export-xdpi="45"
inkscape:export-ydpi="45"
inkscape:export-filename="/home/michal/Devel/BigText/BigMovingText.png" />
<path
style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:12.0041132px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Medium';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#f7f7f7;fill-opacity:1;stroke:none;enable-background:new"
d="m -168.59375,614.14792 -1.09017,2.31661 c -9.9759,21.13501 -19.46128,42.83725 -28.86628,64.53843 -9.40259,21.70122 -19.1827,45.06146 -28.86625,69.0351 -2.69911,6.88463 -5.44336,14.05924 -8.16859,21.10706 l 61.41185,0 c 4.97743,-13.13851 9.87186,-25.89339 14.42935,-37.86033 7.02218,-17.82625 13.26517,-32.25924 18.92624,-45.61219 5.41765,12.90428 10.90019,26.6892 17.8361,44.52956 4.75638,12.233 9.60795,25.4309 14.5732,38.94296 l 62.766943,0 c -2.87426,-7.05589 -5.797541,-14.22527 -8.577369,-21.10706 -9.404127,-23.98776 -18.231117,-47.31916 -27.639873,-69.0351 -9.405279,-21.70111 -19.026931,-43.407 -29.002541,-64.53843 l -1.09017,-2.31661 -56.64244,0 z m -102.12594,170.19994 c -19.31108,0 -34.85457,15.55065 -34.85457,34.86187 0,19.3112 15.54349,34.85458 34.85457,34.85458 l 261.4393915,0 c 19.3111375,0 34.8545615,-15.54338 34.8545615,-34.85458 0,-19.31122 -15.543424,-34.86187 -34.8545615,-34.86187 l -261.4393915,0 z m 0,17.42728 152.50758,0 c 9.65568,0 17.4273,7.77917 17.4273,17.43459 0,9.65579 -7.77162,17.42727 -17.4273,17.42727 l -152.50758,0 c -9.65565,0 -17.42726,-7.77148 -17.42726,-17.42727 0,-9.65542 7.77161,-17.43459 17.42726,-17.43459 z m -0.53752,65.49956 c -5.2212,14.84394 -10.59032,30.27062 -16.20842,46.29335 l -2.18029,5.57987 64.40976,0 13.33918,-36.76234 c 1.82805,-5.00719 3.70443,-10.04591 5.45079,-15.11088 l -64.2735,0 c -0.18213,0 -0.35578,10e-4 -0.53752,0 z m 195.114331,0 c 1.725842,5.13119 3.470656,10.18485 5.314483,15.11088 4.251187,11.35922 8.287881,22.9393 12.25664,34.58241 l 0.946297,2.17993 3.406733,0 64.538468,0 -2.3090391,-5.57987 C 2.3833234,897.51986 -3.1737917,882.09886 -8.6064894,867.2747 c -0.2269658,0.003 -0.4459965,0 -0.6738091,0 l -66.8625805,0 z"
id="path2996"
inkscape:connector-curvature="0" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="guides"
sodipodi:insensitive="true"
style="display:none">
<path
sodipodi:nodetypes="sssssssss"
inkscape:connector-curvature="0"
id="path3774"
d="m 166.05406,17.999974 179.89189,0 c 145.29729,0 166.05406,20.73726 166.05406,165.899046 l 0,144.20253 c 0,145.16118 -20.75677,165.89848 -166.05406,165.89848 l -179.89189,0 C 20.756747,494.00003 -7.5e-6,473.26273 -7.5e-6,328.10155 l 0,-144.20253 C -7.5e-6,38.737234 20.756747,17.999974 166.05406,17.999974 Z"
style="display:inline;fill:#0000ff;fill-opacity:0.08118083;stroke:#0000ff;enable-background:new" />
<circle
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#0000ff;fill-opacity:0.08118083;stroke:#0000ff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker:none;enable-background:accumulate"
id="path4118"
cx="256"
cy="256"
r="143.99997" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#0000ff;fill-opacity:0.08118083;stroke:#0000ff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4152"
width="272"
height="272"
x="120"
y="120" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#0000ff;fill-opacity:0.08118083;stroke:#0000ff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4154"
width="304"
height="240"
x="104"
y="136" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#0000ff;fill-opacity:0.08118083;stroke:#0000ff;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect4156"
width="240"
height="304"
x="136"
y="104" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

1
img/pade.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.2 KiB

102
img/pidgin.svg Normal file
View file

@ -0,0 +1,102 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="Gradient_0" d="m 11.411 24.312 a 1.241 1.295 0 1 1 -2.482 0 1.241 1.295 0 1 1 2.482 0 z"/>
<filter id="t">
<feGaussianBlur stdDeviation="0.272"/>
</filter>
<filter id="s" height="1.554" width="1.191" y="-0.277" x="-0.095">
<feGaussianBlur stdDeviation="0.3102"/>
</filter>
<linearGradient id="g" y2="12.892" gradientUnits="userSpaceOnUse" x2="16.545" gradientTransform="matrix(1.5025 0 0 1 -6.595 -2.14)" y1="10.03" x1="13.06">
<stop stop-color="#3b1941"/>
<stop stop-color="#a949b9" offset="1"/>
</linearGradient>
<linearGradient id="h" y2="23.676" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="9.642" y1="24.936" x1="10.499"/>
<linearGradient id="f" y2="13.895" gradientUnits="userSpaceOnUse" x2="16.14" gradientTransform="matrix(1.2363 0 0 0.5496 -5.483 3.775)" y1="10.603" x1="12.409">
<stop stop-color="#3b1941"/>
<stop stop-color="#a646b7" offset="1"/>
</linearGradient>
<linearGradient id="l" y2="43.35" gradientUnits="userSpaceOnUse" x2="0" y1="40.42">
<stop stop-color="#6b3678"/>
<stop stop-color="#6b3678" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="e" y2="18.719" gradientUnits="userSpaceOnUse" x2="10.625" y1="24.343" x1="11.563">
<stop stop-color="#9a5ba8"/>
<stop stop-color="#744380" offset="1"/>
</linearGradient>
<linearGradient id="m" y2="44.32" gradientUnits="userSpaceOnUse" x2="0" y1="39.1">
<stop stop-color="#7a1d90"/>
<stop stop-color="#6b3678" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="d" y2="18.251" gradientUnits="userSpaceOnUse" x2="26.01" y1="23.377" x1="24.917">
<stop stop-color="#9a5ba8"/>
<stop stop-color="#6b3e75" offset="1"/>
</linearGradient>
<linearGradient id="c" y2="33.679" gradientUnits="userSpaceOnUse" x2="41.875" y1="1.804" x1="26.12">
<stop stop-color="#729fcf"/>
<stop stop-color="#25486d" offset="1"/>
</linearGradient>
<linearGradient id="i" y2="23.676" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="9.751" y1="25.21" x1="10.487"/>
<linearGradient id="a">
<stop/>
<stop stop-color="#fff" offset="1"/>
</linearGradient>
<linearGradient id="p" y2="47.02" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1 0 0 0.9882 1.563 -2.396)" y1="40.669">
<stop stop-color="#fff" stop-opacity="0.955"/>
<stop stop-color="#eee" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="o" y2="22.782" gradientUnits="userSpaceOnUse" x2="0" y1="4.887">
<stop stop-color="#fff"/>
<stop stop-color="#d3e1f1" offset="1"/>
</linearGradient>
<linearGradient id="r" y2="49.07" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1 0 0 0.9882 1.447 -2.486)" y1="41.606">
<stop stop-color="#3b1941"/>
<stop stop-color="#3b1941" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="j" y2="30.19" gradientUnits="userSpaceOnUse" x2="18.14" y1="29.495" x1="17.969">
<stop stop-color="#6e3100"/>
<stop stop-color="#6e3100" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="q" y2="47.758" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1 0 0 0.9882 1.447 -2.486)" y1="43.45">
<stop stop-color="#7e408d"/>
<stop stop-color="#82508e" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="k" y2="30.431" gradientUnits="userSpaceOnUse" x2="18.03" y1="29.339" x1="18.34">
<stop stop-color="#522400"/>
<stop stop-color="#6e3100" stop-opacity="0" offset="1"/>
</linearGradient>
<linearGradient id="n" y2="29.854" gradientUnits="userSpaceOnUse" x2="19.985" gradientTransform="matrix(1.0769 0 0 1.1429 -0.905 -4.68)" y1="29.911" x1="18.5">
<stop stop-color="#fdb751"/>
<stop stop-color="#ce5c00" offset="1"/>
</linearGradient>
<radialGradient id="b" gradientUnits="userSpaceOnUse" cy="25.802" cx="14.93" gradientTransform="matrix(1.3365 0 0 1.3895 -0.759 -10.712)" r="16.39">
<stop stop-color="#fff"/>
<stop stop-color="#eee" stop-opacity="0" offset="1"/>
</radialGradient>
</defs>
<path d="m20.531 1.5c-3.338 0-6.031 3.1112-6.031 6.9688v12.062c0 3.858 2.693 6.969 6.031 6.969h13.999s-0.124 3.18-1.601 5.034c5.191 0 6.425-5.048 6.425-5.048l2.146 0.014c4.013 0 5-3.117 5-6.969v-12.062c0-3.8578-2.693-6.969-6.031-6.969h-19.938z" stroke="url(#c)" fill="#efefef"/>
<path d="m20.531 2.5c-2.715 0-5.031 2.5779-5.031 5.9688v12.062c0 3.391 2.316 5.969 5.031 5.969h14c0.552 0.002 0.999 0.448 1 1 0 0-0.163 2.713-0.781 3.842 2.103 0 3.781-4.654 3.781-4.654 0.173-0.124 0.381-0.19 0.594-0.188h2.375c1.747 0 2.565-0.567 3.156-1.562 0.591-0.996 0.844-2.566 0.844-4.407v-12.062c0-3.3911-2.316-5.969-5.031-5.969h-19.938z" stroke="#fff" fill="url(#o)"/>
<rect rx="0.814" ry="0.93" height="1.86" width="7" y="26.409" x="15.643" fill="#eee"/>
<path d="m10.968 7.6822c2.858-1.8057 7.715 1.4135 8.234 3.0698h-3.946c-0.062-2.3438-4.288-3.0698-4.288-3.0698z" fill="url(#g)"/>
<path d="m8.921 9.9272c1.622-1.8572 6.613-0.4174 6.613 0.9328l-3.791 0.552c1.216-1.6133-2.822-1.4848-2.822-1.4848z" fill="url(#f)"/>
<path d="m16.447 10.482c-6.6236 0-12.516 5.448-11.937 12.231 1.2669 14.842-2.5696 12.83-3.01 19.603 0 2.06 0.9854 3.04 3.0921 3.04 1.1874 0 26.215 0.144 28.906 0.144 2.115 0 1.949-2.035 1.949-2.035 0-2.634-6.402-4.844-8.186-6.778-1.829-1.977 0.186-9.033 0.186-9.033 0.642-1.512 1-3.187 1-4.941 0-6.819-5.376-12.231-12-12.231z" stroke="url(#r)" fill="url(#q)"/>
<path opacity="0.55" d="m16.25 11.5c-6.012 0-11.222 5.111-10.75 11.334 0.5644 7.436 0.3175 9.988-1.4763 14.707-2.88 4.745-0.9002 6.992 1.4422 6.992 1.9365 0 20.055-0.029 25.881-0.029 1.167 0 3.153 0.498 3.153-0.95 0-0.219-0.2-0.631-0.75-1.142-0.55-0.512-1.373-1.061-2.281-1.606s-1.878-1.097-2.75-1.637-1.645-1.044-2.188-1.76c-0.61-0.804-0.89-1.75-0.944-2.779-0.055-1.029 0.083-2.133 0.2-3.181 0.234-2.095 0.744-3.922 0.744-3.922 0.015-0.063 0.036-0.125 0.063-0.185 0.587-1.385 0.906-2.928 0.906-4.54 0-6.27-5.228-11.302-11.25-11.302z" stroke="url(#p)" fill="url(#b)"/>
<path d="m 11.06 17 c -1.336 0 -2.44 0.784 -3.094 1.75 -0.654 0.965 -0.969 2.13 -0.969 3.281 0 2.695 1.992 5.03 4.563 5.03 1.071 0 2.127 -0.504 3 -1.312 0.872 -0.809 1.562 -2.01 1.562 -3.438 0 -1.277 -0.669 -2.472 -1.562 -3.469 -0.894 -0.996 -2.085 -1.843 -3.5 -1.843 z" fill="url(#e)"/>
<path d="m15.094 22.321c0 2.208-2.106 3.71-3.527 3.71-1.9461 0-3.5259-1.792-3.5259-4 0-1.919 1.0829-4 3.0299-4 1.946 0 4.023 2.546 4.023 4.29z" fill="#fff"/>
<use transform="matrix(1.2378 0 0 1.5448 -1.03 -15.388)" fill="#6b1a80" xlink:href="#Gradient_0"/>
<use transform="matrix(0.4029 0 0 0.7724 7.497 3.252)" fill="url(#i)" xlink:href="#Gradient_0"/>
<path d="m 25.723 17 c -1.052 0.04 -2 0.44 -2.657 1.156 -1.565 1.719 -1.352 4.456 0.281 6.25 0.699 0.767 1.605 1.35 2.626 1.563 1.02 0.212 2.213 -0.04 3.03 -0.938 0.874 -0.96 1.071 -2.246 1 -3.469 -0.071 -1.222 -0.403 -2.419 -1.188 -3.281 -0.874 -0.96 -2.052 -1.321 -3.093 -1.281 z" fill="url(#d)"/>
<path d="m28.071 18.985c-1.305-1.433-3.427-1.051-4.26-0.136-1.141 1.253-1.009 3.433 0.296 4.866 1.133 1.245 2.998 1.897 4.139 0.644 1.142-1.253 0.855-4.242-0.175-5.374z" fill="#fff"/>
<use transform="matrix(1.2086 0 0 1.5988 13.243 -16.766)" fill="#6b1a80" xlink:href="#Gradient_0"/>
<g fill="#5c3566">
<path d="m19.062 25.219c-0.461 0-0.788 0.285-0.968 0.5-0.18 0.214-0.278 0.433-0.406 0.656-0.258 0.446-0.526 0.906-0.876 1.25-0.349 0.344-1.059 0.806-1.721 0.833-1.322-0.305-2.524-0.883-3.648-1.069-0.252 0.238-0.318 0.614-0.162 0.923 1.167 2.168 2.424 3.341 4.878 4.673 1.208 0.655 3.393 1.304 4.504 1.752 1.368-0.902 4.88-4.398 5.087-6.612 0.094-0.317-0.02-0.658-0.287-0.854-0.984 0.546-2.103 0.895-3.213 1.155-0.463-0.017-0.74-0.433-1.031-0.77-0.291-0.336-0.539-0.827-0.781-1.281-0.122-0.227-0.229-0.438-0.407-0.656-0.177-0.219-0.506-0.5-0.969-0.5z" transform="matrix(0.9903 0 0 1.0468 0.68 -1.632)" filter="url(#t)"/>
<path d="m15.812 26.625c-0.677 0-1.187 0.627-1.187 1.313 0 0.685 0.51 1.312 1.187 1.312h5.376c0.677 0 1.187-0.627 1.187-1.312 0-0.686-0.51-1.313-1.187-1.313h-5.376z" transform="translate(1.049 -0.591)" filter="url(#s)"/>
</g>
<rect rx="0.814" ry="0.93" height="1.86" width="7" y="26.17" x="16.02" fill="#fff"/>
<path d="m12.018 27.284c6.314 3.664 6.517-2.25 7.604-2.25 1.072 0 1.267 5.912 6.396 2.196-0.285 3.081-3.95 5.835-4.998 6.835-2.032-1.093-6.981-2.311-9.002-6.781z" fill="url(#n)"/>
<path opacity="0.611" d="m 18.385 29.726 a 0.287 0.641 0 1 1 -0.575 0 0.287 0.641 0 1 1 0.575 0 z" transform="matrix(-1.0946 0.9356 0.6068 1.521 23.29 -33.12)" fill="url(#k)"/>
<path opacity="0.611" d="m 18.385 29.726 a 0.287 0.641 0 1 1 -0.575 0 0.287 0.641 0 1 1 0.575 0 z" transform="matrix(1.0946 0.9356 -0.6068 1.521 16.746 -33.1)" fill="url(#j)"/>
<use transform="matrix(0.4029 0 0 0.7724 21.438 3.255)" fill="url(#h)" xlink:href="#Gradient_0"/>
<path opacity="0.611" d="m3.375 44.938c-1.625-0.376-2.25-3.876 0.8125-9.188 1.2106 5.008 6.8125 8.625 6.8125 8.625l-7.625 0.563z" fill="url(#m)"/>
<path opacity="0.611" d="m33.648 44.938c1.625-0.376 3.125-2.376-4.875-6.376 0.352 4.133-2.75 5.813-2.75 5.813l7.625 0.563z" fill="url(#l)"/>
</svg>

After

Width:  |  Height:  |  Size: 8.9 KiB

3460
img/smuxi.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 128 KiB

214
img/squawk.svg Normal file
View file

@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created using Karbon, part of Calligra: http://www.calligra.org/karbon -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="300"
height="300"
version="1.1"
id="svg26"
sodipodi:docname="logo.svg"
inkscape:version="0.92.4 5da689c313, 2019-01-14">
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1864"
inkscape:window-height="1051"
id="namedview28"
showgrid="false"
inkscape:zoom="2.2076429"
inkscape:cx="68.745512"
inkscape:cy="206.04055"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer0"
units="px"
inkscape:document-units="px" />
<defs
id="defs7">
<radialGradient
id="gradient0"
gradientTransform="scale(0.94311191,1.0603196)"
gradientUnits="userSpaceOnUse"
cx="12.693479"
cy="13.028501"
fx="10.760019"
fy="13.364172"
r="4.6974659"
spreadMethod="pad">
<stop
stop-color="#ffffff"
offset="0.00000000000"
stop-opacity="1.00000000000"
id="stop2" />
<stop
stop-color="#000000"
offset="1.00000000000"
stop-opacity="1.00000000000"
id="stop4" />
</radialGradient>
<radialGradient
id="gradient0-3"
gradientTransform="scale(0.94311191,1.0603196)"
gradientUnits="userSpaceOnUse"
cx="12.693479"
cy="13.028501"
fx="10.760019"
fy="13.364172"
r="4.6974659"
spreadMethod="pad">
<stop
stop-color="#ffffff"
offset="0.00000000000"
stop-opacity="1.00000000000"
id="stop2-6" />
<stop
stop-color="#000000"
offset="1.00000000000"
stop-opacity="1.00000000000"
id="stop4-7" />
</radialGradient>
</defs>
<ellipse
id="path3735"
cx="152.87799"
cy="153.56145"
rx="147.44232"
ry="145.17746"
style="fill:#ffff00"
inkscape:label="Circle" />
<g
id="layer0"
transform="matrix(1.0580707,0,0,1.0550395,2.6163722,-12.379721)"
inkscape:label="Bird">
<g
id="group11-5"
transform="matrix(0.96611966,0,0,0.95548953,18.812562,39.448087)"
style="fill:#000000"
inkscape:label="Shadow">
<path
id="shape01111-3"
transform="translate(3.18245,95.0383)"
stroke-miterlimit="2.00000000000"
d="M 17.369867,-34.271073 C -17.091633,43.802527 8.7157368,106.88642 77.150337,133.40042 44.326637,108.44542 30.100783,80.437846 46.300783,50.372546 61.907283,49.470346 73.84,43.5254 80.1452,6.75174 33.201,22.6404 27.475867,-19.092673 17.369867,-34.271073 Z"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2"
sodipodi:nodetypes="ccccc" />
<path
id="shape111-5"
transform="translate(54.2195,121.178)"
stroke-miterlimit="2.00000000000"
d="m 3.1406091,55.33901 c -0.543214,16.8286 7.3292969,25.786466 15.5225069,28.928266 21.222,1.7453 32.14898,8.538567 55.81848,-4.789033 C 57.604396,29.655843 42.9197,-6.13745 32.7592,0.846351 16.4607,22.2043 11.0825,38.7613 12.7363,45.2078 13.4399,59.4199 11.44049,58.37521 3.1406091,55.33901 Z"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2"
sodipodi:nodetypes="cccccc" />
<path
id="shape211-6"
transform="translate(84.4363,97.7813)"
stroke-miterlimit="2.00000000000"
d="M 0,3.77601 C 43.9897,-12.5294 40.7758,24.5227 44.3914,104.264 35.0913,79.6628 15.105,14.3304 2.61126,24.3949 7.76681,16.2578 11.3816,-0.456263 0,3.77601 Z"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2" />
<path
id="path20-2"
stroke-miterlimit="2.00000000000"
d="m 0.84715,91.842 c -16.2078,-70.056 128.4951,-165.699641 228.6201,0.448559 16.12731,27.437901 0.94719,82.389511 -14.97804,100.053971 -15.92522,17.66446 -36.38304,36.03837 -76.87441,38.58904 C 112.99694,232.48431 113.14735,206.21651 112.25,198.816 105.108,126.757 110.69875,80.7434 67.31895,100.0938 16.672499,112.6365 5.10955,105.9806 0.84715,91.842 Z"
inkscape:connector-curvature="0"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2"
transform="translate(16.0179,3.1963)"
sodipodi:nodetypes="cczsccc" />
<path
id="shape411-9"
transform="translate(63.3722,34.6296)"
stroke-miterlimit="2.00000000000"
d="M 56.7239,19.2268 C 37.966,17.1261 29.6656,-0.584886 21.6961,0.0148868 9.74219,0.914534 0.0246784,12.0039 8.52215e-5,22.9858 -0.0245092,33.9678 5.27104,44.5144 20.0558,43.6912 34.8409,42.868 37.9017,25.6966 56.7239,19.2268 Z"
inkscape:connector-curvature="0"
style="fill:#000000;stroke:#000000;stroke-width:1.41732526;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2" />
<path
id="shape311-1"
transform="matrix(0.970618,-0.245439,0.175175,0.985449,72.5667,48.1365)"
stroke-miterlimit="2.00000000000"
d="M 20.2398,11.4553 C 20.2398,5.1287 15.709,0 10.1199,0 4.53084,0 0,5.1287 0,11.4553 c 0,6.3265 4.53084,11.4552 10.1199,11.4552 5.5891,0 10.1199,-5.1287 10.1199,-11.4552"
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2"
inkscape:connector-curvature="0" />
</g>
<g
id="group11"
transform="matrix(0.96611966,0,0,0.95548955,22.517704,31.485182)"
style="fill:none"
inkscape:label="Shape">
<path
id="shape01111"
transform="translate(3.18245,95.0383)"
stroke-miterlimit="2.00000000000"
d="M 17.369867,-34.271073 C -17.091633,43.802527 8.7157368,106.88642 77.150337,133.40042 44.326637,108.44542 30.100783,80.437846 46.300783,50.372546 61.907283,49.470346 73.84,43.5254 80.1452,6.75174 33.201,22.6404 27.475867,-19.092673 17.369867,-34.271073 Z"
inkscape:connector-curvature="0"
style="fill:#2e2e2e;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2"
sodipodi:nodetypes="ccccc" />
<path
id="shape111"
transform="translate(54.2195,121.178)"
stroke-miterlimit="2.00000000000"
d="m 3.1406091,55.33901 c -0.543214,16.8286 7.3292969,25.786466 15.5225069,28.928266 21.222,1.7453 32.14898,8.538567 55.81848,-4.789033 C 57.604396,29.655843 42.9197,-6.13745 32.7592,0.846351 16.4607,22.2043 11.0825,38.7613 12.7363,45.2078 13.4399,59.4199 11.44049,58.37521 3.1406091,55.33901 Z"
inkscape:connector-curvature="0"
style="fill:#2e2e2e;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2"
sodipodi:nodetypes="cccccc" />
<path
id="shape211"
transform="translate(84.4363,97.7813)"
stroke-miterlimit="2.00000000000"
d="M 0,3.77601 C 43.9897,-12.5294 40.7758,24.5227 44.3914,104.264 35.0913,79.6628 15.105,14.3304 2.61126,24.3949 7.76681,16.2578 11.3816,-0.456263 0,3.77601 Z"
inkscape:connector-curvature="0"
style="fill:#dfa700;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2" />
<path
id="path20"
stroke-miterlimit="2.00000000000"
d="m 0.84715,91.842 c -16.2078,-70.056 128.4951,-165.699641 228.6201,0.448559 16.12731,27.437901 0.94719,82.389511 -14.97804,100.053971 -15.92522,17.66446 -36.38304,36.03837 -76.87441,38.58904 C 112.99694,232.48431 113.14735,206.21651 112.25,198.816 105.108,126.757 110.69875,80.7434 67.31895,100.0938 16.672499,112.6365 5.10955,105.9806 0.84715,91.842 Z"
inkscape:connector-curvature="0"
style="fill:#005ddf;fill-rule:evenodd;stroke:#000000;stroke-width:1.41732526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2"
transform="translate(16.0179,3.1963)"
sodipodi:nodetypes="cczsccc" />
<path
id="shape411"
transform="translate(63.3722,34.6296)"
stroke-miterlimit="2.00000000000"
d="M 62.152173,19.002129 C 43.394273,16.901429 36.751338,-0.14211813 22.360786,0.0148868 10.374692,0.14565843 -0.35355185,10.818049 -0.37814502,21.799949 c -0.0245944,10.982 8.27778972,23.977398 23.06255002,23.154198 14.7851,-0.8232 20.645568,-19.482218 39.467768,-25.952018 z"
inkscape:connector-curvature="0"
style="fill:#dfa700;stroke:#000000;stroke-width:1.41732526;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2"
sodipodi:nodetypes="csscc" />
<path
id="shape311"
transform="matrix(0.970618,-0.245439,0.175175,0.985449,72.5667,48.1365)"
stroke-miterlimit="2.00000000000"
d="M 9.4153514,0.54997691 C 3.8262914,0.54997691 0,5.1287 0,11.4553 c 0,6.3265 5.3658246,11.300437 10.954885,11.300437 5.5891,0 9.970315,-4.730067 9.389992,-11.435528 C 19.764555,4.6147479 15.004451,0.54997691 9.4153514,0.54997691 Z"
style="fill:url(#gradient0);fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ssszs" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

1
img/ubports.svg Normal file
View file

@ -0,0 +1 @@
<svg height="350" width="350" xmlns="http://www.w3.org/2000/svg"><g style="stroke-width:4.039"><g style="fill:#f15a24"><path d="M248.2 159.9s-28.3-9.7-72.6-9.6c-44.3-.1-72.6 9.6-72.6 9.6-11.2 188.4 61.6 188.6 72.6 187.6 11 1 83.8.8 72.6-187.6m-5.9-149s-13.6-7.7-67-8.3c-53.3.6-67 8.3-67 8.3C79 24.7 73 53.5 72.6 72.5c.4 19 6.3 47.7 35.7 61.6 0 0 13.7 7.7 67 8.2 53.4-.5 67-8.2 67-8.2 29.5-13.9 35.4-42.6 35.8-61.6-.4-19-6.3-47.8-35.8-61.6"/><path d="M74.7 49.7s-6.6 15.7-1.6 40.7c0 0-13.6-1.1-13.8-3.3 0 0-8.6-13.5 0-33.8 0 0 1-1.7 15.4-3.6M133.5 176c3.8 5 9 8.3 14.4 9.7-7 7.4-15.8 15.3-25.9 23-30 22.8-59.7 34.5-66 26-6.4-8.3 12.8-33.7 43-56.5 10-7.7 20-14.1 29.2-19a26 26 0 0 0 5.3 16.9"/></g><g style="fill:#db481b"><path d="M248.2 159.9s-28.3-9.7-72.6-9.7v197.5c11 .8 83.8.6 72.7-187.7m-5.7-149.5s-13.6-7.7-67-8.3V142c53.4-.5 67-8.2 67-8.2 29.5-14 35.4-42.8 35.8-61.8-.4-19-6.3-47.7-35.8-61.6"/><path d="M276 49.7s6.6 15.7 1.7 40.7c0 0 13.6-1.1 13.7-3.3 0 0 8.7-13.5 0-33.8 0 0-1-1.7-15.4-3.6M213.5 176a26 26 0 0 1-14.4 9.7c7 7.4 15.9 15.3 26 23 30 22.8 59.6 34.5 66 26 6.4-8.3-12.9-33.7-43-56.5-10-7.7-20.1-14.1-29.2-19a26 26 0 0 1-5.4 16.9"/></g><g style="fill:#333"><path d="M249 53.7a45.2 45.2 0 0 1 4.3 18.8c-.3 12-4.7 30-27.1 38.7 0 0-10.4 4.8-51 5.2-40.5-.4-50.9-5.3-50.9-5.3a40.3 40.3 0 0 1-27.1-38.6c.1-5.5 1.1-12.3 4.4-18.9z"/><path d="M249 90.9a45.2 45.2 0 0 0 4.4-18.8c-.3-12-4.7-30-27.1-38.7 0 0-10.4-4.9-51-5.2-40.5.3-50.9 5.2-50.9 5.2A40.3 40.3 0 0 0 97.2 72c.2 5.4 1.2 12.2 4.4 18.8zm-88 104.6a14.3 14.3 0 1 1-28.7 0 14.3 14.3 0 0 1 28.6 0"/></g><g style="fill:#1a1a1a"><path d="M124.3 41.2s10.4-4.7 51-5c40.5.3 50.9 5 50.9 5a38.7 38.7 0 0 1 27 34.3l.1-3.3a40 40 0 0 0-27.1-38.7s-10.4-4.8-51-5.1c-40.5.3-50.9 5.1-50.9 5.1a40.3 40.3 0 0 0-27 42c1-11.4 6.6-26.6 27-34.3"/><path d="M226.2 33.5s-10.3-4.8-50.9-5.2V116c40.5-.2 51-5.1 51-5.1a40.3 40.3 0 0 0 27-38.7 40 40 0 0 0-27-38.7m-81.1 150.7a14.3 14.3 0 0 1 13.6 18.7A14.3 14.3 0 1 0 133 191c2.6-4.1 7.1-7 12.3-7"/></g><path d="M147.8 71.9a12.8 12.8 0 1 1-25.6 0 12.8 12.8 0 0 1 25.6 0m81.2 0a12.8 12.8 0 1 1-25.6 0 12.8 12.8 0 0 1 25.6 0m-69.4 15.3c2 8 8.3 14 16 14 7.5 0 13.9-6 15.8-14z" style="fill:#f2f2f2"/><g style="fill:#fff"><path d="m142.6 190.2 1.2 2a4.8 4.8 0 0 0 0 7.7l-1.2 2-.2-.2a7 7 0 0 1-2.6-3.7v-.4c1-1 1-2.3 0-3.2v-.3a6.9 6.9 0 0 1 2.6-3.8h.1l.1-.1m10.8 6.1a7 7 0 0 1-1.4 3.9l-.1.1c-.3.4-.6.6-1.1.5-1-.3-2.1.5-2.4 1.6 0 .2-.2.3-.4.3a7 7 0 0 1-4.6-.5l1-2c.7.2 1.3.4 2 .4 2.4 0 4.3-1.7 4.7-4 0-.2 0-.3.3-.3h2m0-.8h-2.3a4.7 4.7 0 0 0-6.7-3.8l-1-2 .2-.2a7 7 0 0 1 4.5-.4l.3.3c.3 1.2 1.5 2 2.7 1.6h.4a7 7 0 0 1 1.9 4.2v.3"/><path d="M152.2 203c0 1-.7 1.7-1.6 1.7-.9 0-1.6-.8-1.6-1.6a1.6 1.6 0 1 1 3.2 0m-14-8.8c1 0 1.7.7 1.7 1.6a1.6 1.6 0 1 1-1.7-1.6m10.8-5.7a1.6 1.6 0 1 1 3.2 0c0 1-.8 1.7-1.7 1.6-.9 0-1.6-.7-1.6-1.6"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -47,7 +47,7 @@
Linux
</a>
<a href="/download/windows" id="windows">
Win
Windows
</a>
</div>
<div id="container-of-selection">
@ -89,9 +89,10 @@
<span>
We further suggest using an updated Android system. If your
smartphone manufacturer has ceased to provide updates,
please visit <a href="https://divestos.org">DivestOS
Mobile</a> or <a href="https://customrombay.org">
CustomRomBay</a> to find an updated version for your device.
then you can install <a href="https://divestos.org">DivestOS
Mobile</a>, <a href="https://grapheneos.org/">GrapheneOS</a>
or find another custom ROM for your device at
<a href="https://customrombay.org">CustomRomBay</a>.
<strong>(optional)</strong>
</span>
</span>
@ -103,7 +104,7 @@
<img src="/img/haikudepot.svg" />
<span>
Most of the software that are listed here should be available
for you to install directly from desktop with HaikuDepot.
for you to install from desktop directly with HaikuDepot.
</span>
</span>
</div>
@ -113,8 +114,8 @@
<span class="notice">
<img src="/img/tux.svg" />
<span>
The listed XMPP clients, herein, are also usable with the
Linux systems that are designed for mobile devices, e.g.
The listed XMPP clients, herein, are also usable with Linux
systems that are designed for mobile devices, such as
<a href="https://droidian.org">Droidian</a>,
<a href="https://mobian.org">Mobian</a> and
<a href="https://postmarketos.org">postmarketOS</a>.
@ -125,9 +126,30 @@
<img src="/img/posix.svg" />
</a>
<span>
Please refer to the section <a href="/download/posix">XMPP
Clients For POSIX</a>, if you prefer software with text
based (i.e. console) interface.
Please refer to section <a href="/download/posix">XMPP
Clients For POSIX</a>, if you prefer console software with
text based interface.
</span>
</span>
<span class="notice">
<a href="/download/ubports">
<img src="/img/ubports.svg" />
</a>
<span>
Please refer to section <a href="/download/ubports">XMPP
Clients For UBports</a>, if you are using the UBports
mobile system (also Ubuntu Touch).
</span>
</span>
</div>
{% endif %}
{% if title == 'UBports' %}
<div id="security-notices">
<span class="notice">
<img src="/img/openstore.svg" style="border-radius: 8px" />
<span>
Most of the software that are listed here should be available
for you to install from device directly with OpenStore.
</span>
</span>
</div>
@ -135,7 +157,9 @@
{% if title == 'Windows' %}
<div id="security-notices">
<span class="notice">
<img src="/img/reactos.svg" />
<a href="https://reactos.org">
<img src="/img/reactos.svg" />
</a>
<span>
The listed XMPP clients, herein, are compatible with the
<a href="https://reactos.org">ReactOS</a> operating system.
@ -177,6 +201,15 @@
{% if 'pubsub' in client['features'] %}
<span>📡️ PubSub</span>
{% endif %}
{% if 'resources' in client %}
<input type="checkbox" id="toggle-{{client['iden']}}" />
<label for="toggle-{{client['iden']}}" title="Click to display more information.">Details</label>
<ul class="details">
{% for resource in client['resources'] %}
<li><a href="{{resource['url']}}">{{resource['txt']}}</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
</span>
<span>