mirror of
https://github.com/matrix-org/matrix.org.git
synced 2026-01-11 20:07:22 +00:00
Zola responsive sdks (#1701)
* Set up base content for sdks * Make the grids work on mobile too * Add the filters to the SDKs page * I need to TWIM * Basic javascriptfull version of the panel selector * Use macros * Remove unused statements
This commit is contained in:
parent
854f04ba5d
commit
fe7a0fdf13
20 changed files with 649 additions and 319 deletions
|
|
@ -21,44 +21,4 @@ bots, bridges). Don't be surprised if a same SDK appears in several sections!
|
|||
If you are a developer and are not sure what the difference between clients and
|
||||
appservices, please head to [the developers documentation](/docs/developers/).
|
||||
|
||||
## Client SDKs
|
||||
|
||||
Client SDKs are used to develop clients humans will interact with. They handle
|
||||
all the Matrix heavy lifting and leave it up to the developer to implement a UI.
|
||||
|
||||
These are recommended SDKs if you want to write a client.
|
||||
|
||||
{{ sdk_table(type="client", featured=true) }}
|
||||
|
||||
If you're not happy with the recommended SDKs, you can try one of the following
|
||||
ones as well.
|
||||
|
||||
{{ sdk_table(type="client", featured=false) }}
|
||||
|
||||
## Bot SDKs
|
||||
|
||||
Bot SDKs are used to develop simple or advanced bots. The following bots SDKs
|
||||
are widely used in the Matrix ecosystem and are recommended by the Foundation:
|
||||
|
||||
{{ sdk_table(type="bot", featured=true) }}
|
||||
|
||||
If you're not happy with the recommended SDKs, you can try one of the following
|
||||
ones as well.
|
||||
|
||||
{{ sdk_table(type="bot", featured=false) }}
|
||||
|
||||
## Bridge SDKs
|
||||
|
||||
Bridge SDKs are used to create bridges, thus integrating third party platforms
|
||||
in Matrix. For more information about bridges, please head to [Ecosystem > Bridges](/ecosystem/bridges)
|
||||
and to the [Developers documentation](/docs/developers).
|
||||
|
||||
The following bridges SDKs are widely used in the Matrix ecosystem and are
|
||||
recommended by the Foundation:
|
||||
|
||||
{{ sdk_table(type="bridge", featured=true) }}
|
||||
|
||||
If you're not happy with the recommended SDKs, you can try one of the following
|
||||
ones as well.
|
||||
|
||||
{{ sdk_table(type="bridge", featured=false) }}
|
||||
{{ sdk_deck() }}
|
||||
|
|
|
|||
|
|
@ -1,449 +1,568 @@
|
|||
["Drupal matrix_api module"]
|
||||
[[sdks]]
|
||||
name = "Matrix.org AS Node SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Stable"
|
||||
language = "JavaScript"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-appservice-node"
|
||||
purpose = ["bot", "bridge"]
|
||||
featured_in = ["bridge"]
|
||||
description = """
|
||||
Matrix Application Service framework in Node.js.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "Matrix.org JS SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Stable"
|
||||
language = "JavaScript"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-js-sdk"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Matrix Client-Server SDK for JavaScript.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "Matrix.org React SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Stable"
|
||||
language = "JavaScript"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-react-sdk"
|
||||
purpose = ["client"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Matrix SDK for React Javascript.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "MatrixBot .NET Core SDK"
|
||||
maintainer = "enimatek-nl"
|
||||
maturity = "Stable"
|
||||
language = "C#"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/enimatek-nl/matrixbot-dotnet-sdk"
|
||||
purpose = ["bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Build .NET chat bots compatible with the Matrix Protocol. It has support for a limited subset of the APIs.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "Simple-Matrix-Bot-Lib"
|
||||
maintainer = "KrazyKirby99999"
|
||||
maturity = "Stable"
|
||||
language = "Python"
|
||||
licence = "MIT"
|
||||
repository = "https://codeberg.org/imbev/simplematrixbotlib"
|
||||
purpose = ["bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
An easy to use bot library for the Matrix ecosystem written in Python.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "Ruma"
|
||||
maintainer = "Ruma team"
|
||||
maturity = "Stable"
|
||||
language = "Rust"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/ruma"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = []
|
||||
description = """
|
||||
A set of Rust crates for interacting with the Matrix chat network.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "gomatrix"
|
||||
maintainer = "Matrix.org"
|
||||
maturity = "Stable"
|
||||
language = "Go"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/gomatrix"
|
||||
purpose = ["client"]
|
||||
featured_in = []
|
||||
description = """
|
||||
A Golang Matrix client.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "matrix-appservice-bridge"
|
||||
maintainer = "Matrix.org"
|
||||
maturity = "Stable"
|
||||
language = "TypeScript"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-appservice-bridge"
|
||||
purpose = ["bridge"]
|
||||
featured_in = ["bridge"]
|
||||
description = """
|
||||
Bridging infrastructure for Application Services.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "matrix-nio"
|
||||
maintainer = "poljar"
|
||||
maturity = "Stable"
|
||||
language = "Python"
|
||||
licence = "ISC"
|
||||
repository = "https://github.com/poljar/matrix-nio"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = ["client", "bot"]
|
||||
description = """
|
||||
A Python Matrix client library, designed according to sans I/O principles.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "mautrix-go"
|
||||
maintainer = "Tulir"
|
||||
maturity = "Stable"
|
||||
language = "Go"
|
||||
licence = "MPL-2.0"
|
||||
repository = "https://github.com/mautrix/go"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = ["client", "bot", "bridge"]
|
||||
description = """
|
||||
A Golang Matrix framework.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "mautrix-python"
|
||||
maintainer = "Tulir"
|
||||
maturity = "Stable"
|
||||
language = "Python"
|
||||
licence = "MPL-2.0"
|
||||
repository = "https://github.com/mautrix/python"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = ["client", "bot", "bridge"]
|
||||
description = """
|
||||
A Python 3 asyncio Matrix framework.
|
||||
"""
|
||||
|
||||
[[sdks]]
|
||||
name = "Drupal matrix_api module"
|
||||
maintainer = "freelock"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "PHP"
|
||||
license = "None"
|
||||
licence = "None"
|
||||
repository = "https://cgit.drupalcode.org/matrix_api"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Glitch in the Matrix"]
|
||||
[[sdks]]
|
||||
name = "Glitch in the Matrix"
|
||||
maintainer = "eta"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Rust"
|
||||
license = "CC0-1.0"
|
||||
licence = "CC0-1.0"
|
||||
repository = "https://github.com/eeeeeta/glitch-in-the-matrix"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[Gyr]
|
||||
[[sdks]]
|
||||
name = "Gyr"
|
||||
maintainer = "Adam Beckmeyer"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Python"
|
||||
license = "GPL-3.0-only"
|
||||
licence = "GPL-3.0-only"
|
||||
repository = "https://github.com/non-Jedi/gyr"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix .NET SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix .NET SDK"
|
||||
maintainer = "Half-Shot"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "C#"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/Half-Shot/matrix-dotnet-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix C# SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix C# SDK"
|
||||
maintainer = "Baking Bad"
|
||||
maturity = "Beta"
|
||||
language = "C#"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/baking-bad/matrix-dotnet-sdk"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Build .NET apps compatible with the Matrix Protocol.
|
||||
"""
|
||||
|
||||
["Matrix Client SDK for GLib"]
|
||||
[[sdks]]
|
||||
name = "Matrix Client SDK for GLib"
|
||||
maintainer = "Gergely Polonkai"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "C"
|
||||
license = "LGPL-3.0-or-later"
|
||||
licence = "LGPL-3.0-or-later"
|
||||
repository = "https://github.com/gergelypolonkai/matrix-glib-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix Dart SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix Dart SDK"
|
||||
maintainer = "Wilko Manger"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Dart"
|
||||
license = "MPL-2.0"
|
||||
licence = "MPL-2.0"
|
||||
repository = "https://git.pattle.im/pattle/library/matrix-dart-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix Java SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix Java SDK"
|
||||
maintainer = "Kamax.io"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Java"
|
||||
license = "AGPL-3.0-or-later"
|
||||
licence = "AGPL-3.0-or-later"
|
||||
repository = "https://github.com/kamax-io/matrix-java-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix on Haxe"]
|
||||
[[sdks]]
|
||||
name = "Matrix on Haxe"
|
||||
maintainer = "endes"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Haxe"
|
||||
license = "AGPL-3.0-only"
|
||||
licence = "AGPL-3.0-only"
|
||||
repository = "https://notabug.org/Tamaimo/haxe-matrix-im"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[Matrix-ClientServer-API-java]
|
||||
[[sdks]]
|
||||
name = "Matrix-ClientServer-API-java"
|
||||
maintainer = "Jojii"
|
||||
maturity = "Beta"
|
||||
language = "Java"
|
||||
license = "Unknown"
|
||||
licence = "Unknown"
|
||||
repository = "https://github.com/JojiiOfficial/Matrix-ClientServer-API-java"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
A small and simple java API for the Matrix ClientServer Protocol.
|
||||
"""
|
||||
|
||||
["Matrix.org AS Node SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix.org Android SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Stable"
|
||||
language = "JavaScript"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-appservice-node"
|
||||
purpose = ["bot", "bridge"]
|
||||
featured_in = ["bridge"]
|
||||
|
||||
["Matrix.org Android SDK"]
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Java"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-android-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix.org AngularJS SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix.org AngularJS SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "JavaScript"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-angular-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix.org JS SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix.org Python SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Stable"
|
||||
language = "JavaScript"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-js-sdk"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = []
|
||||
|
||||
["Matrix.org Python SDK"]
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Python"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-python-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Matrix.org React SDK"]
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Stable"
|
||||
language = "JavaScript"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-react-sdk"
|
||||
purpose = ["client"]
|
||||
featured_in = []
|
||||
|
||||
["Matrix.org iOS SDK"]
|
||||
[[sdks]]
|
||||
name = "Matrix.org iOS SDK"
|
||||
maintainer = "Matrix.org team"
|
||||
maturity = "Beta"
|
||||
language = "Objective-C"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-ios-sdk"
|
||||
purpose = ["client"]
|
||||
featured_in = ["client"]
|
||||
description = """
|
||||
The Matrix SDK for iOS.
|
||||
"""
|
||||
|
||||
["Matrix::Client"]
|
||||
[[sdks]]
|
||||
name = "Matrix::Client"
|
||||
maintainer = "matiaslina"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Raku"
|
||||
license = "Artistic2"
|
||||
licence = "Artistic2"
|
||||
repository = "https://github.com/matiaslina/perl6-matrix-client"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[MatrixAPI]
|
||||
[[sdks]]
|
||||
name = "MatrixAPI"
|
||||
maintainer = "VRocker"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "C#"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/VRocker/MatrixAPI"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["MatrixBot .NET Core SDK"]
|
||||
maintainer = "enimatek-nl"
|
||||
maturity = "Stable"
|
||||
language = "C#"
|
||||
license = "MIT"
|
||||
repository = "https://github.com/enimatek-nl/matrixbot-dotnet-sdk"
|
||||
purpose = ["bot"]
|
||||
featured_in = []
|
||||
|
||||
["Net::Async::Matrix (Perl)"]
|
||||
[[sdks]]
|
||||
name = "Net::Async::Matrix (Perl)"
|
||||
maintainer = "LeoNerd"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Perl"
|
||||
license = "GPL-1.0-or-later"
|
||||
licence = "GPL-1.0-or-later"
|
||||
repository = "https://metacpan.org/release/Net-Async-Matrix"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[Operator]
|
||||
[[sdks]]
|
||||
name = "Operator"
|
||||
maintainer = "uhoreg"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "C++"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://vcs.uhoreg.ca/git/cgit/operator/"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[Quotient]
|
||||
[[sdks]]
|
||||
name = "Quotient"
|
||||
maintainer = "The Quotient team"
|
||||
maturity = "Beta"
|
||||
language = "C++/Qt"
|
||||
license = "LGPL-2.1-only"
|
||||
language = "C++"
|
||||
licence = "LGPL-2.1-only"
|
||||
repository = "https://github.com/quotient-im"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
A Qt5 library to write cross-platform clients for Matrix
|
||||
"""
|
||||
|
||||
["Racket Matrix SDK"]
|
||||
[[sdks]]
|
||||
name = "Racket Matrix SDK"
|
||||
maintainer = "Aidan Gauland"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Racket"
|
||||
license = "LGPL-3.0-or-later"
|
||||
licence = "LGPL-3.0-or-later"
|
||||
repository = "https://gitlab.com/aidalgol/racket-matrix-sdk/"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["Ruby Matrix SDK"]
|
||||
[[sdks]]
|
||||
name = "Ruby Matrix SDK"
|
||||
maintainer = "Ananace"
|
||||
maturity = "Beta"
|
||||
language = "Ruby"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/ananace/ruby-matrix-sdk"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Ruby SDK for the Matrix communication protocol.
|
||||
"""
|
||||
|
||||
[Ruma]
|
||||
maintainer = "Ruma team"
|
||||
maturity = "Stable"
|
||||
language = "Rust"
|
||||
license = "MIT"
|
||||
repository = "https://github.com/ruma"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = []
|
||||
|
||||
[Simple-Matrix-Bot-Lib]
|
||||
maintainer = "KrazyKirby99999"
|
||||
maturity = "Stable"
|
||||
language = "Python"
|
||||
license = "MIT"
|
||||
repository = "https://github.com/KrazyKirby99999/simple-matrix-bot-lib"
|
||||
purpose = ["bot"]
|
||||
featured_in = []
|
||||
|
||||
["Swift MatrixSDK"]
|
||||
[[sdks]]
|
||||
name = "Swift MatrixSDK"
|
||||
maintainer = "gperdomor"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Swift"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/gperdomor/matrix-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[Trixnity]
|
||||
[[sdks]]
|
||||
name = "Trixnity"
|
||||
maintainer = "Trixnity Team"
|
||||
maturity = "Beta"
|
||||
language = "Kotlin"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://gitlab.com/trixnity/trixnity"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Multiplatform Kotlin SDK for Matrix.
|
||||
"""
|
||||
|
||||
[botkit-matrix]
|
||||
[[sdks]]
|
||||
name = "botkit-matrix"
|
||||
maintainer = "frankgerhardt"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "JavaScript"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/frankgerhardt/botkit-matrix"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[dial-phone]
|
||||
[[sdks]]
|
||||
name = "dial-phone"
|
||||
maintainer = "mtorials"
|
||||
maturity = "Alpha"
|
||||
language = "Kotlin"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/mtorials/dial-phone"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
A Matrix client-server SDK written in Kotlin.
|
||||
"""
|
||||
|
||||
[goMatrix]
|
||||
[[sdks]]
|
||||
name = "goMatrix"
|
||||
maintainer = "geir54"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Go"
|
||||
license = "MPL-2.0"
|
||||
licence = "MPL-2.0"
|
||||
repository = "https://github.com/geir54/goMatrix"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[godot-matrix]
|
||||
[[sdks]]
|
||||
name = "godot-matrix"
|
||||
maintainer = "vurpo"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "C++"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://gitlab.com/vurpo/godot-matrix"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[gomatrix]
|
||||
maintainer = "Matrix.org"
|
||||
maturity = "Stable"
|
||||
language = "Go"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/gomatrix"
|
||||
purpose = ["client"]
|
||||
featured_in = []
|
||||
|
||||
[jmsdk]
|
||||
[[sdks]]
|
||||
name = "jmsdk"
|
||||
maintainer = "ma1uta"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Java"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/ma1uta/jmsdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[libkazv]
|
||||
[[sdks]]
|
||||
name = "libkazv"
|
||||
maintainer = "The Kazv Project"
|
||||
maturity = "Alpha"
|
||||
language = "C++"
|
||||
license = "AGPL-3.0-or-later"
|
||||
licence = "AGPL-3.0-or-later"
|
||||
repository = "https://lily.kazv.moe/kazv/libkazv"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
A matrix client sdk built upon lager and the value-oriented design it enables.
|
||||
"""
|
||||
|
||||
[matrix-appservice-bridge]
|
||||
maintainer = "Kegsay, Matrix.org"
|
||||
maturity = "Stable"
|
||||
language = "TypeScript"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-appservice-bridge"
|
||||
purpose = ["bridge"]
|
||||
featured_in = ["bridge"]
|
||||
|
||||
[matrix-bot-sdk]
|
||||
[[sdks]]
|
||||
name = "matrix-bot-sdk"
|
||||
maintainer = "Travis Ralston"
|
||||
maturity = "Beta"
|
||||
language = "TypeScript"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/turt2live/matrix-bot-sdk"
|
||||
purpose = ["bot", "bridge"]
|
||||
featured_in = ["bot", "bridge"]
|
||||
description = """
|
||||
TypeScript/JavaScript SDK for Matrix bots.
|
||||
"""
|
||||
|
||||
[matrix-erlang-sdk]
|
||||
[[sdks]]
|
||||
name = "matrix-erlang-sdk"
|
||||
maintainer = "Andreas Hallberg"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Erlang"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/anhallbe/matrix-erlang-sdk"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[matrix-kt]
|
||||
[[sdks]]
|
||||
name = "matrix-kt"
|
||||
maintainer = "Dominic Fischer"
|
||||
maturity = "Beta"
|
||||
language = "Kotlin"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/Dominaezzz/matrix-kt"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Kotlin libraries for Matrix.
|
||||
"""
|
||||
|
||||
[matrix-nio]
|
||||
maintainer = "poljar"
|
||||
maturity = "Stable"
|
||||
language = "Python"
|
||||
license = "ISC"
|
||||
repository = "https://github.com/poljar/matrix-nio"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = ["client", "bot"]
|
||||
|
||||
[matrix-redux-wrap]
|
||||
[[sdks]]
|
||||
name = "matrix-redux-wrap"
|
||||
maintainer = "Luke Barnard"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "JavaScript"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/lukebarnard1/matrix-redux-wrap"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[matrix-rust-sdk]
|
||||
[[sdks]]
|
||||
name = "matrix-rust-sdk"
|
||||
maintainer = "poljar"
|
||||
maturity = "Beta"
|
||||
language = "Rust"
|
||||
license = "Apache-2.0"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = ["client", "bot", "bridge"]
|
||||
description = """
|
||||
An implementation of a Matrix client-server library in Rust.
|
||||
"""
|
||||
|
||||
[mautrix-appservice-go]
|
||||
[[sdks]]
|
||||
name = "mautrix-appservice-go"
|
||||
maintainer = "Tulir"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Go"
|
||||
license = "MPL-2.0"
|
||||
licence = "MPL-2.0"
|
||||
repository = "https://github.com/tulir/mautrix-appservice-go"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[mautrix-go]
|
||||
maintainer = "Tulir"
|
||||
maturity = "Stable"
|
||||
language = "Go"
|
||||
license = "MPL-2.0"
|
||||
repository = "https://github.com/mautrix/go"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = ["client", "bot", "bridge"]
|
||||
|
||||
[mautrix-python]
|
||||
maintainer = "Tulir"
|
||||
maturity = "Stable"
|
||||
language = "Python"
|
||||
license = "MPL-2.0"
|
||||
repository = "https://github.com/mautrix/python"
|
||||
purpose = ["client", "bot", "bridge"]
|
||||
featured_in = ["client", "bot", "bridge"]
|
||||
|
||||
[mtxclient]
|
||||
[[sdks]]
|
||||
name = "mtxclient"
|
||||
maintainer = "mujx"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "C++"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/mujx/mtxclient"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[newlisp-matrix-client]
|
||||
[[sdks]]
|
||||
name = "newlisp-matrix-client"
|
||||
maintainer = "Ingo Hohmann"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "Lisp"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/IngoHohmann/newlisp-matrix-client"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
[smallbot-matrix]
|
||||
[[sdks]]
|
||||
name = "smallbot-matrix"
|
||||
maintainer = "cybertim"
|
||||
maturity = "No longer maintained"
|
||||
maturity = "Obsolete"
|
||||
language = "TypeScript"
|
||||
license = "MIT"
|
||||
licence = "MIT"
|
||||
repository = "https://github.com/cybertim/SmallBotMatrix"
|
||||
purpose = []
|
||||
featured_in = []
|
||||
|
||||
["µtrix"]
|
||||
[[sdks]]
|
||||
name = "µtrix"
|
||||
maintainer = "Dominik George; Project Hack'n'Fun @ Teckids e.V."
|
||||
maturity = "Beta"
|
||||
language = "Python"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://edugit.org/hacknfun/thema-mechatronik/mytrix"
|
||||
licence = "Apache-2.0"
|
||||
repository = "https://edugit.org/Teckids/hacknfun/libs/mytrix"
|
||||
purpose = ["client", "bot"]
|
||||
featured_in = []
|
||||
description = """
|
||||
Matrix client library for MicroPython.
|
||||
"""
|
||||
|
|
|
|||
3
partials/sdks/bot.md
Normal file
3
partials/sdks/bot.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Bot SDKs are used to develop bots no humans will interact with. They handle all
|
||||
the Matrix heavy lifting so the developer can focus on what the bot is actually
|
||||
useful for.
|
||||
3
partials/sdks/bridge.md
Normal file
3
partials/sdks/bridge.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Bridge SDKs are used to develop appservices meant to either connect a Matrix
|
||||
community to a third party chat platform, or to exchange data with another
|
||||
platform.
|
||||
2
partials/sdks/client.md
Normal file
2
partials/sdks/client.md
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Client SDKs are used to develop clients humans will interact with. They handle
|
||||
all the Matrix heavy lifting and leave it up to the developer to implement a UI.
|
||||
|
|
@ -77,7 +77,6 @@ ol:last-child {
|
|||
max-width: var(--page-max-width);
|
||||
|
||||
margin: .625rem auto;
|
||||
padding: 0 1.5rem;
|
||||
|
||||
img {
|
||||
max-height: 40rem;
|
||||
|
|
@ -178,9 +177,11 @@ pre table {
|
|||
flex-direction: column;
|
||||
justify-content: center;
|
||||
padding-inline: 5.625rem;
|
||||
|
||||
@media (max-width: 767px) {
|
||||
padding-inline: 2rem;
|
||||
}
|
||||
|
||||
padding-bottom: calc(var(--navbar-height)/2);
|
||||
|
||||
min-height: var(--page-header-height);
|
||||
|
|
@ -220,7 +221,7 @@ pre table {
|
|||
}
|
||||
}
|
||||
|
||||
:not(pre) > code {
|
||||
:not(pre)>code {
|
||||
color: #f54029;
|
||||
border: 1px solid #f54029;
|
||||
border-radius: 4px;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ body:has(.projects-card-deck > div > .client-checkbox:checked) {
|
|||
|
||||
.clients_page {
|
||||
padding-top: 3rem;
|
||||
padding-inline: 2rem;
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
|
|
@ -88,6 +87,7 @@ body:has(.projects-card-deck > div > .client-checkbox:checked) {
|
|||
position: absolute;
|
||||
top: 1rem;
|
||||
left: 1rem;
|
||||
|
||||
@media (min-width: 767px) {
|
||||
right: 1rem;
|
||||
left: unset;
|
||||
|
|
@ -114,6 +114,10 @@ body:has(.projects-card-deck > div > .client-checkbox:checked) {
|
|||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 2rem;
|
||||
|
||||
.maturity {
|
||||
padding-block: .3rem;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,18 @@
|
|||
.projects-card-deck {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 2rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 280px);
|
||||
|
||||
@media (max-width: 767px) {
|
||||
max-width: 280px;
|
||||
}
|
||||
|
||||
gap: 1rem;
|
||||
margin-inline: auto;
|
||||
}
|
||||
|
||||
.projects-card-deck>div {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.project-card {
|
||||
|
|
@ -14,10 +23,7 @@
|
|||
padding: 24px;
|
||||
gap: 1rem;
|
||||
|
||||
flex: 1 0 280px;
|
||||
max-width: 280px;
|
||||
min-height: 343px;
|
||||
height: 100%;
|
||||
min-height: 100%;
|
||||
|
||||
border: 1px solid #D2D2D2;
|
||||
border-radius: 16px;
|
||||
|
|
@ -29,15 +35,21 @@
|
|||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
h3 {
|
||||
.title-row {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: .5rem;
|
||||
justify-content: space-between;
|
||||
gap: .2rem;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 0;
|
||||
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-size: 2rem;
|
||||
font-size: 1.8rem;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
|
|
@ -46,13 +58,30 @@
|
|||
color: #777;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.licence-language {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: .2rem;
|
||||
}
|
||||
|
||||
.pill {
|
||||
background-color: #e9e9e9;
|
||||
border-radius: 9999px;
|
||||
padding-inline: .5rem;
|
||||
color: var(--color-text);
|
||||
}
|
||||
}
|
||||
|
||||
.filtered-out {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#filters {
|
||||
.filters {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
|
|
@ -133,7 +162,8 @@
|
|||
accent-color: #000;
|
||||
}
|
||||
|
||||
input, label {
|
||||
input,
|
||||
label {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
|
@ -157,11 +187,10 @@
|
|||
.maturity {
|
||||
border: 1px solid var(--borders-color);
|
||||
border-radius: 9999px;
|
||||
padding: .3rem .6rem;
|
||||
padding: 0 .6rem;
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
max-width: fit-content;
|
||||
line-height: 1.6;
|
||||
|
||||
&.stable {
|
||||
background-color: #DFF6D5;
|
||||
|
|
|
|||
26
sass/_sdks.scss
Normal file
26
sass/_sdks.scss
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#sdk-purpose-selector {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 3rem;
|
||||
justify-content: center;
|
||||
border: transparent;
|
||||
|
||||
input {
|
||||
display: none;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
font-weight: 700;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
input[type="radio"]:checked+label {
|
||||
border-bottom: 3px solid black;
|
||||
}
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
|
@ -1,13 +1,10 @@
|
|||
.servers {
|
||||
padding-inline: 2rem;
|
||||
|
||||
p {
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
font-size: 1.125rem;
|
||||
line-height: 120%;
|
||||
margin: 0 auto 4rem auto;
|
||||
max-width: 40rem;
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
font-size: 1.125rem;
|
||||
line-height: 120%;
|
||||
margin: 0 auto 4rem auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
@import '_clients';
|
||||
@import '_bridges';
|
||||
@import '_servers';
|
||||
@import '_sdks';
|
||||
@import '_otwsu';
|
||||
@import '_guardians';
|
||||
@import '_legacy-docs';
|
||||
|
|
|
|||
13
static/js/panel-selector.js
Normal file
13
static/js/panel-selector.js
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
document.addEventListener("DOMContentLoaded", (event) => {
|
||||
let selector = document.getElementById("sdk-purpose-selector");
|
||||
for (const panelOption of selector.children) {
|
||||
panelOption.addEventListener("change", (event) => {
|
||||
let allPanels = document.getElementsByClassName("panel");
|
||||
for (const panel of allPanels) {
|
||||
panel.classList.add("hidden");
|
||||
}
|
||||
let panel = document.getElementById(panelOption.id + "-panel");
|
||||
panel.classList.remove("hidden");
|
||||
});
|
||||
}
|
||||
});
|
||||
49
static/js/sdks.js
Normal file
49
static/js/sdks.js
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
import { AllOfFilter, AnyOfFilter, refreshCardsView } from "./projects.js";
|
||||
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
|
||||
// Client SDKs
|
||||
var clientFilters = [];
|
||||
let clientMaturityFilter = new AnyOfFilter("client-sdks-filter-maturity", "client-sdks", clientFilters);
|
||||
let clientLicenceFilter = new AnyOfFilter("client-sdks-filter-licence", "client-sdks", clientFilters);
|
||||
let clientLanguageFilter = new AnyOfFilter("client-sdks-filter-language", "client-sdks", clientFilters);
|
||||
clientFilters.push(
|
||||
clientMaturityFilter,
|
||||
clientLicenceFilter,
|
||||
clientLanguageFilter
|
||||
);
|
||||
refreshCardsView("client-sdks", clientFilters);
|
||||
for (const filter of clientFilters) {
|
||||
filter.refreshActiveState();
|
||||
}
|
||||
|
||||
// Bot SDKs
|
||||
var botFilters = [];
|
||||
let botMaturityFilter = new AnyOfFilter("bot-sdks-filter-maturity", "bot-sdks", botFilters);
|
||||
let botLicenceFilter = new AnyOfFilter("bot-sdks-filter-licence", "bot-sdks", botFilters);
|
||||
let botLanguageFilter = new AnyOfFilter("bot-sdks-filter-language", "bot-sdks", botFilters);
|
||||
botFilters.push(
|
||||
botMaturityFilter,
|
||||
botLicenceFilter,
|
||||
botLanguageFilter
|
||||
);
|
||||
refreshCardsView("bot-sdks", botFilters);
|
||||
for (const filter of botFilters) {
|
||||
filter.refreshActiveState();
|
||||
}
|
||||
|
||||
// Bridge SDKs
|
||||
var bridgeFilters = [];
|
||||
let bridgeMaturityFilter = new AnyOfFilter("bridge-sdks-filter-maturity", "bridge-sdks", bridgeFilters);
|
||||
let bridgeLicenceFilter = new AnyOfFilter("bridge-sdks-filter-licence", "bridge-sdks", bridgeFilters);
|
||||
let bridgeLanguageFilter = new AnyOfFilter("bridge-sdks-filter-language", "bridge-sdks", bridgeFilters);
|
||||
bridgeFilters.push(
|
||||
bridgeMaturityFilter,
|
||||
bridgeLicenceFilter,
|
||||
bridgeLanguageFilter
|
||||
);
|
||||
refreshCardsView("bridge-sdks", bridgeFilters);
|
||||
for (const filter of bridgeFilters) {
|
||||
filter.refreshActiveState();
|
||||
}
|
||||
})
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
{% extends "page.html" %}
|
||||
{% import "macros/clients.html" as clients %}
|
||||
{% block head_extra %}
|
||||
<noscript><link rel="stylesheet" href="/no-js.css" /></noscript>
|
||||
<noscript>
|
||||
<link rel="stylesheet" href="/no-js.css" />
|
||||
</noscript>
|
||||
<script type="module" src="/js/clients.js"></script>
|
||||
{% endblock head_extra%}
|
||||
{% block content %}
|
||||
|
|
@ -13,7 +15,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="clients_page">
|
||||
<div class="content clients_page">
|
||||
|
||||
{{ page.content | safe }}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,11 @@
|
|||
{% extends "page.html" %}
|
||||
{% block head_extra %}
|
||||
<noscript>
|
||||
<link rel="stylesheet" href="/no-js.css" />
|
||||
</noscript>
|
||||
<script type="module" src="/js/sdks.js"></script>
|
||||
<script type="module" src="/js/panel-selector.js"></script>
|
||||
{% endblock head_extra%}
|
||||
{% block content %}
|
||||
<div class="page-header">
|
||||
<div class="hero-block">
|
||||
|
|
@ -7,7 +14,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div class="content sdks-page">
|
||||
|
||||
{{ page.content | safe }}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
{% extends "page.html" %}
|
||||
{% block head_extra %}
|
||||
<noscript><link rel="stylesheet" href="/no-js.css" /></noscript>
|
||||
<noscript>
|
||||
<link rel="stylesheet" href="/no-js.css" />
|
||||
</noscript>
|
||||
<script type="module" src="/js/servers.js"></script>
|
||||
{% endblock head_extra%}
|
||||
{% block content %}
|
||||
|
|
@ -10,7 +12,7 @@
|
|||
<p>{{ page.extra.summary }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="servers">
|
||||
<div class="content servers">
|
||||
<p>{{ page.content | safe }}</p>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
|
|
|||
117
templates/macros/sdks.html
Normal file
117
templates/macros/sdks.html
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
{% 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">
|
||||
<div id="{{ type }}-sdks-filter-maturity" class="filter">
|
||||
Maturity
|
||||
<div class="divider"></div>
|
||||
<img src="/assets/down-arrow.svg">
|
||||
</div>
|
||||
<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 <a>all</a> - <a>none</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter-wrap">
|
||||
<div id="{{ type }}-sdks-filter-licence" class="filter">
|
||||
Licence
|
||||
<div class="divider"></div>
|
||||
<img src="/assets/down-arrow.svg">
|
||||
</div>
|
||||
<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 <a>all</a> - <a>none</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter-wrap">
|
||||
<div id="{{ type }}-sdks-filter-language" class="filter">
|
||||
Language
|
||||
<div class="divider"></div>
|
||||
<img src="/assets/down-arrow.svg">
|
||||
</div>
|
||||
<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 <a>all</a> - <a>none</a></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 %}
|
||||
|
|
@ -79,21 +79,24 @@
|
|||
{% for server in servers_data.servers | sort(attribute="maturity") | reverse %}
|
||||
<div>
|
||||
<div class="project-card {{ srvutils::classes(server=server) }}">
|
||||
<h3>{{ server.name }} <div class="maturity {{ server.maturity | lower }}">{{ server.maturity }}</div></h3>
|
||||
<div class="title-row">
|
||||
<h3>{{ server.name }}</h3>
|
||||
<div class="maturity {{ server.maturity | lower }}">{{ server.maturity }}</div>
|
||||
</div>
|
||||
<div>{{ server.licence }} {{ server.language }}</div>
|
||||
<span>{{ server.description | safe }}</span>
|
||||
<div class="server-links">
|
||||
{% if server.repository %}
|
||||
<a href="{{ server.repository }}">
|
||||
{{ load_data(path="/assets/projects/repo.svg") | safe }}
|
||||
Repository
|
||||
</a>
|
||||
<a href="{{ server.repository }}">
|
||||
{{ load_data(path="/assets/projects/repo.svg") | safe }}
|
||||
Repository
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if server.room %}
|
||||
<a href="https://matrix.to/#/{{ server.room }}">
|
||||
{{ load_data(path="/assets/projects/matrix.svg") | safe }}
|
||||
Matrix Room
|
||||
</a>
|
||||
<a href="https://matrix.to/#/{{ server.room }}">
|
||||
{{ load_data(path="/assets/projects/matrix.svg") | safe }}
|
||||
Matrix Room
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
22
templates/shortcodes/sdk_deck.html
Normal file
22
templates/shortcodes/sdk_deck.html
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{% import "macros/sdks.html" as sdkutils %}
|
||||
|
||||
<fieldset id="sdk-purpose-selector">
|
||||
<input type="radio" name="sdk-purpose" id="purpose-client" checked />
|
||||
<label for="purpose-client">Client SDKs</label>
|
||||
|
||||
<input type="radio" name="sdk-purpose" id="purpose-bot" />
|
||||
<label for="purpose-bot">Bot SDKs</label>
|
||||
|
||||
<input type="radio" name="sdk-purpose" id="purpose-bridge">
|
||||
<label for="purpose-bridge">Bridge SDKs</label>
|
||||
</fieldset>
|
||||
|
||||
<div id="sdks-panels">
|
||||
{{ sdkutils::sdks_panel(type="client") }}
|
||||
|
||||
{{ sdkutils::sdks_panel(type="bot") }}
|
||||
|
||||
{{ sdkutils::sdks_panel(type="bridge") }}
|
||||
</div>
|
||||
|
||||
<div id="filters-overlay"></div>
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{% set sdks = load_data(path="content/ecosystem/sdks/sdks.toml") %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Project</th>
|
||||
<th>Language</th>
|
||||
<th>License</th>
|
||||
<th>Repository</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for name, sdk in sdks %}
|
||||
{% if not featured and sdk.featured_in is not containing(type) %}
|
||||
{% set display = true %}
|
||||
{% elif featured and sdk.featured_in is containing(type) %}
|
||||
{% set display = true %}
|
||||
{% else %}
|
||||
{% set display = false %}
|
||||
{% endif %}
|
||||
{% if sdk.purpose is containing(type) and display %}
|
||||
<tr>
|
||||
<td>{{ name }}</td>
|
||||
<td>{{ sdk.language }}</td>
|
||||
<td>{{ sdk.license }}</td>
|
||||
<td><a href="{{ sdk.repository }}">Link</a></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
Loading…
Add table
Reference in a new issue