-
Notifications
You must be signed in to change notification settings - Fork 348
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Distributions Page #2182
base: main
Are you sure you want to change the base?
Add Distributions Page #2182
Changes from all commits
3cbb871
03fde7b
8f69a98
9c5e8ac
211aaee
db3dab2
a5f0879
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
/public | ||
.DS_Store | ||
gatsby | ||
|
||
.vscode |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
[[distributions]] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. add openDesk, probably? |
||
name = "matrix-docker-ansible-deploy" | ||
description = "🐳 Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker" | ||
vendor = "Splanteev" | ||
maturity = "Stable" | ||
frameworks = ["Ansible", "Docker"] | ||
licence = "AGPL-3.0" | ||
repository = "https://github.com/spantaleev/matrix-docker-ansible-deploy" | ||
room = "#matrix-docker-ansible-deploy:devture.com" | ||
support_level = "Community" | ||
|
||
[[distributions]] | ||
name = "Ananace Helm Charts" | ||
description = "Kubernetes applications packaged into helm charts" | ||
vendor = "Ananace" | ||
maturity = "Stable" | ||
frameworks = ["Helm", "Kubernetes"] | ||
licence = "Apache-2.0" | ||
repository = "https://gitlab.com/ananace/charts" | ||
room = "#matrix-on-kubernetes:fiksel.info" | ||
support_level = "Community" | ||
|
||
[[distributions]] | ||
name = "Element Server Suite" | ||
description = "Element Server Suite (ESS) is a professional backend for Matrix-based communications that supports self-hosted and fully managed deployments." | ||
vendor = "Element" | ||
maturity = "Stable" | ||
frameworks = ["Kubernetes"] | ||
licence = "Proprietary" | ||
repository = "https://element.io/server-suite" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ESS "Repo" link is obv wrong since it links to their marketing website and not a repo There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Tbh I was unable to quickly find a repo 😵💫😅 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And there might not be one, but then it needs a different label |
||
support_level = "Commercial" | ||
|
||
[[distributions]] | ||
name = "synapse-operator" | ||
description = "The Synapse operator offers a convenient way to deploy and manage a Synapse server. It was built with operator-sdk." | ||
vendor = "Red Hat" | ||
maturity = "Stable" | ||
frameworks = ["Kubernetes"] | ||
licence = "Apache-2.0" | ||
repository = "https://github.com/opdev/synapse-operator" | ||
support_level = "Community" | ||
|
||
|
||
[[distributions]] | ||
name = "BundesMessenger" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Some distros like BUM will have something special about them that makes them not exactly matrix standard (compatible), even though the distro still meets the requirement in the page summary. This should be pointed out prominently, or even qualify them for a different category. In the case of BUM i think there might be something like antivirus or allowlisting etc involved which requires specialized clients(?). so it's a weird edgecase. |
||
description = "The free & secure messenger for the public sector." | ||
vendor = "BWI GmbH" | ||
maturity = "Stable" | ||
frameworks = ["Helm", "Kubernetes"] | ||
licence = "Apache-2.0" | ||
repository = "https://gitlab.opencode.de/bwi/bundesmessenger/info" | ||
support_level = "Commercial" |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,10 @@ | ||||||
+++ | ||||||
title = "Distributions" | ||||||
template = "ecosystem/distributions.html" | ||||||
weight = 1 | ||||||
extra.summary = """ | ||||||
A Matrix distribution is a collection of software related to Matrix that are deployed and automatically configured to work together. The software deployed needs to be able to join and participate in the public federation if the administrator configures it for this purpose. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
""" | ||||||
+++ | ||||||
|
||||||
{{ all_distributions() }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -595,4 +595,3 @@ featured_in = ["client", "bot", "bridge"] | |
description = """ | ||
A .NET 8 library for interacting with Matrix. | ||
""" | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
.distributions { | ||
p { | ||
text-align: center; | ||
font-weight: 400; | ||
font-size: 1.125rem; | ||
line-height: 120%; | ||
margin: 0 auto 4rem auto; | ||
} | ||
} | ||
|
||
.distribution-links { | ||
margin-top: auto; | ||
display: flex; | ||
flex-direction: row; | ||
flex-wrap: wrap; | ||
justify-content: center; | ||
gap: .7rem; | ||
|
||
a { | ||
display: flex; | ||
align-items: center; | ||
gap: .3rem; | ||
|
||
border: 1px solid #777; | ||
border-radius: 999px; | ||
padding-inline: .5rem; | ||
|
||
font-size: .8rem; | ||
|
||
svg { | ||
width: 1.2em; | ||
height: 1.2em; | ||
|
||
* { | ||
fill: #777; | ||
} | ||
|
||
line { | ||
stroke: #777; | ||
} | ||
} | ||
} | ||
|
||
a:hover { | ||
color: #fff; | ||
background-color: #777; | ||
|
||
svg { | ||
|
||
* { | ||
fill: #fff; | ||
} | ||
|
||
line { | ||
stroke: #fff; | ||
} | ||
} | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { AllOfFilter, AnyOfFilter, refreshCardsView } from "./projects.js"; | ||
|
||
document.addEventListener('DOMContentLoaded', (event) => { | ||
|
||
var filters = []; | ||
let maturityFilter = new AnyOfFilter("filter-maturity", "all-distributions", filters); | ||
let supportFilter = new AnyOfFilter("filter-support", "all-distributions", filters); | ||
let licenceFilter = new AnyOfFilter("filter-licence", "all-distributions", filters); | ||
let frameworkFilter = new AnyOfFilter("filter-framework", "all-distributions", filters); | ||
filters.push( | ||
maturityFilter, | ||
supportFilter, | ||
licenceFilter, | ||
frameworkFilter | ||
); | ||
refreshCardsView("all-distributions", filters); | ||
for (const filter of filters) { | ||
filter.refreshActiveState(); | ||
} | ||
}) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{% extends "page.html" %} | ||
{% block head_extra %} | ||
<meta name="description" content="{{ page.extra.summary }}"> | ||
<noscript> | ||
<link rel="stylesheet" href="/no-js.css" /> | ||
</noscript> | ||
<script type="module" src="/js/distributions.js"></script> | ||
{% endblock head_extra%} | ||
{% block content %} | ||
<div class="page-header"> | ||
<div class="hero-block"> | ||
<h1>{{ page.title }}</h1> | ||
<p>{{ page.extra.summary }}</p> | ||
</div> | ||
</div> | ||
<div class="content distributions"> | ||
<p>{{ page.content | safe }}</p> | ||
</div> | ||
{% endblock content %} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
{% macro classes(distribution) %} | ||
maturity-{{ distribution.maturity | lower }} | ||
|
||
licence-{{ distribution.licence | slugify }} | ||
|
||
{% for framework in distribution.frameworks %} | ||
framework-{{ framework | slugify }} | ||
{% endfor %} | ||
|
||
support-{{ distribution.support_level | slugify }} | ||
{% endmacro %} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
{% import "macros/distributions.html" as srvutils %} | ||
{% set distributions_data = load_data(path="content/ecosystem/distributions/distributions.toml") %} | ||
{% set licences = [] %} | ||
{% set frameworks = [] %} | ||
{% set support_levels = [] %} | ||
{% for distribution in distributions_data.distributions %} | ||
{% set_global licences = licences | concat(with=distribution.licence) %} | ||
{% set_global frameworks = frameworks | concat(with=distribution.frameworks) %} | ||
{% set_global support_levels = support_levels | concat(with=distribution.support_level) %} | ||
{% endfor %} | ||
{% set licences = licences | unique | sort %} | ||
{% set frameworks = frameworks | unique | sort %} | ||
{% set support_levels = support_levels | unique | sort %} | ||
|
||
<div class="filters"> | ||
<div class="filter-wrap"> | ||
<button id="filter-maturity" class="filter"> | ||
Maturity | ||
<div class="divider"></div> | ||
<img src="/assets/down-arrow.svg" alt="Downard facing arrow"> | ||
</button> | ||
<div id="filter-maturity-menu" class="filter-menu"> | ||
<p>The distribution can support any of the maturity levels checked.</p> | ||
<div class="filter-option"> | ||
<input id="maturity-stable" type="checkbox" checked> | ||
<label for="maturity-stable">Stable</label> | ||
</div> | ||
<div class="filter-option"> | ||
<input id="maturity-beta" type="checkbox" checked> | ||
<label for="maturity-beta">Beta</label> | ||
</div> | ||
<div class="filter-option"> | ||
<input id="maturity-alpha" type="checkbox" checked> | ||
<label for="maturity-alpha">Alpha</label> | ||
</div> | ||
<div class="filter-option"> | ||
<input id="maturity-obsolete" type="checkbox"> | ||
<label for="maturity-obsolete">Obsolete</label> | ||
</div> | ||
<div class="reset-links">Select <button>all</button> - <button>none</button></div> | ||
</div> | ||
</div> | ||
<div class="filter-wrap"> | ||
<button id="filter-licence" class="filter"> | ||
Licence | ||
<div class="divider"></div> | ||
<img src="/assets/down-arrow.svg" alt="Downard facing arrow"> | ||
</button> | ||
<div id="filter-licence-menu" class="filter-menu"> | ||
<p>The distribution can support any of the licences checked.</p> | ||
{% for licence in licences %} | ||
<div class="filter-option"> | ||
<input id="licence-{{ licence | slugify }}" type="checkbox" checked> | ||
<label for="licence-{{ licence | slugify }}">{{ licence }}</label> | ||
</div> | ||
{% endfor %} | ||
<div class="reset-links">Select <button>all</button> - <button>none</button></div> | ||
</div> | ||
</div> | ||
<div class="filter-wrap"> | ||
<button id="filter-framework" class="filter"> | ||
Framework | ||
<div class="divider"></div> | ||
<img src="/assets/down-arrow.svg" alt="Downard facing arrow"> | ||
</button> | ||
<div id="filter-framework-menu" class="filter-menu"> | ||
<p>The distribution is using any of the frameworks checked.</p> | ||
{% for framework in frameworks %} | ||
<div class="filter-option"> | ||
<input id="framework-{{ framework | slugify }}" type="checkbox" checked> | ||
<label for="framework-{{ framework | slugify }}">{{ framework }}</label> | ||
</div> | ||
{% endfor %} | ||
<div class="reset-links">Select <button>all</button> - <button>none</button></div> | ||
</div> | ||
</div> | ||
<div class="filter-wrap"> | ||
<button id="filter-support" class="filter"> | ||
Support Level | ||
<div class="divider"></div> | ||
<img src="/assets/down-arrow.svg" alt="Downard facing arrow"> | ||
</button> | ||
<div id="filter-support-menu" class="filter-menu"> | ||
<p>The distribution has any of these support levels.</p> | ||
{% for support in support_levels %} | ||
<div class="filter-option"> | ||
<input id="support-{{ support | slugify }}" type="checkbox" checked> | ||
<label for="support-{{ support | slugify }}">{{ support }}</label> | ||
</div> | ||
{% endfor %} | ||
<div class="reset-links">Select <button>all</button> - <button>none</button></div> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div id="filters-overlay"></div> | ||
|
||
<div id="all-distributions" class="projects-card-deck"> | ||
{% for distribution in distributions_data.distributions | sort(attribute="maturity") | reverse %} | ||
<div> | ||
<div class="project-card {{ srvutils::classes(distribution=distribution) }}"> | ||
<div class="title-row"> | ||
<h3>{{ distribution.name }}</h3> | ||
<div class="maturity {{ distribution.maturity | lower }}">{{ distribution.maturity }}</div> | ||
</div> | ||
<div>{{ distribution.licence }} · {% for framework in distribution.frameworks | slice(end=2) %}{{ | ||
framework }}{% if not loop.last %} – {% endif %}{% endfor %}</div> | ||
<span>{{ distribution.description | safe }}</span> | ||
<div class="distribution-links"> | ||
{% if distribution.repository %} | ||
<a href="{{ distribution.repository }}"> | ||
{{ load_data(path="/assets/projects/repo.svg") | safe }} | ||
Repository | ||
</a> | ||
{% endif %} | ||
{% if distribution.room %} | ||
<a href="https://matrix.to/#/{{ distribution.room }}"> | ||
{{ load_data(path="/assets/projects/matrix.svg") | safe }} | ||
Matrix Room | ||
</a> | ||
{% endif %} | ||
</div> | ||
</div> | ||
</div> | ||
{% endfor %} | ||
</div> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no