matrix.org/templates/macros/sdks.html

118 lines
5.3 KiB
HTML

{% macro sdks_panel(type) %}
{% set sdks_data = load_data(path="content/ecosystem/sdks/sdks.toml") %}
{% set licences = [] %}
{% set languages = [] %}
{% for sdk in sdks_data.sdks %}
{% set_global licences = licences | concat(with=sdk.licence) %}
{% set_global languages = languages | concat(with=sdk.language) %}
{% endfor %}
{% set licences = licences | unique | sort %}
{% set languages = languages | unique | sort %}
{% set partial_path = "partials/sdks/" ~ type ~ ".md" %}
<div id="purpose-{{ type }}-panel" class="panel">
<p>
{{ load_data(path=partial_path) | markdown | safe }}
</p>
<div id="{{ type }}-sdks-filters" class="filters">
<div class="filter-wrap">
<button id="{{ type }}-sdks-filter-maturity" class="filter">
Maturity
<div class="divider"></div>
<img src="/assets/down-arrow.svg" alt="Downward facing arrow">
</button>
<div id="{{ type }}-sdks-filter-maturity-menu" class="filter-menu">
<p>The SDK 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="{{ type }}-sdks-filter-licence" class="filter">
Licence
<div class="divider"></div>
<img src="/assets/down-arrow.svg" alt="Downward facing arrow">
</button>
<div id="{{ type }}-sdks-filter-licence-menu" class="filter-menu">
<p>The client 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="{{ type }}-sdks-filter-language" class="filter">
Language
<div class="divider"></div>
<img src="/assets/down-arrow.svg" alt="Downward facing arrow">
</button>
<div id="{{ type }}-sdks-filter-language-menu" class="filter-menu">
<p>The client must support any of the languages checked.</p>
{% for language in languages %}
<div class="filter-option">
<input id="language-{{ language | slugify }}" type="checkbox" checked>
<label for="language-{{ language | slugify }}">{{ language }}</label>
</div>
{% endfor %}
<div class="reset-links">Select <button>all</button> - <button>none</button></div>
</div>
</div>
</div>
<div id="{{ type }}-sdks" class="projects-card-deck">
{% for sdk in sdks_data.sdks | sort(attribute="maturity") | reverse %}
{% if sdk.purpose is containing(type) %}
<div>
<div
class="project-card maturity-{{ sdk.maturity | lower }} licence-{{ sdk.licence | slugify }} language-{{ sdk.language | slugify }}">
<div class="title-row">
<h3>{{ sdk.name }}</h3>
<div class="maturity {{ sdk.maturity | lower }}">{{ sdk.maturity }}</div>
</div>
<div class="author">{{ sdk.maintainer }}</div>
<div class="licence-language">
<div class="pill">{{ sdk.licence }}</div>
<div class="pill">{{ sdk.language }}</div>
</div>
{% if sdk.description %}<p>{{ sdk.description }}</p>{% endif %}
<div class="server-links">
{% if sdk.repository %}
<a href="{{ sdk.repository }}">
{{ load_data(path="/assets/projects/repo.svg") | safe }}
Repository
</a>
{% endif %}
{% if sdk.room %}
<a href="https://matrix.to/#/{{ sdk.room }}">
{{ load_data(path="/assets/projects/matrix.svg") | safe }}
Matrix Room
</a>
{% endif %}
</div>
</div>
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endmacro %}