From 6f19c64b03a65fee46ffd043ded79efbb9d49e1b Mon Sep 17 00:00:00 2001 From: wurstsalat Date: Fri, 22 Dec 2023 00:43:19 +0100 Subject: [PATCH] Replace usage of external-link shortcode with internal markdown override --- content/about.md | 10 ++++----- content/apps.md | 2 +- ...2-04-25-start-of-xmpp-providers-website.md | 4 ++-- ...022-08-17-xmpp-providers-and-blabber-im.md | 4 ++-- .../2023-11-22-xmpp-providers-automation.md | 22 +++++++++---------- content/faq.md | 16 +++++++------- .../layouts/_default/_markup/render-link.html | 10 +++++++++ .../layouts/shortcodes/external-link.html | 3 --- 8 files changed, 39 insertions(+), 32 deletions(-) create mode 100644 themes/xmpp-providers/layouts/_default/_markup/render-link.html delete mode 100644 themes/xmpp-providers/layouts/shortcodes/external-link.html diff --git a/content/about.md b/content/about.md index 46263d5..d8b9524 100644 --- a/content/about.md +++ b/content/about.md @@ -11,15 +11,15 @@ Some support registrations via your app and some only via their websites. Some provide more space for sharing media than others or store them longer than others. The curated list of XMPP providers on this website makes it easy for you to find a suitable provider. -This website uses data from {{< external-link url="https://invent.kde.org/melvo/xmpp-providers" text="XMPP Providers" >}}. +This website uses data from [XMPP Providers](https://invent.kde.org/melvo/xmpp-providers). Many properties of the included providers have references to the providers' web pages in order to verify and maintain them. Therefore, it is important that the providers add corresponding statements to their websites. As soon as that is done, the corresponding provider entry can be updated. -Help us to make _free communication_ possible and {{< external-link url="https://invent.kde.org/melvo/xmpp-providers/-/blob/master/CONTRIBUTING.md" text="contribute to XMPP Providers" >}} or {{< external-link url="https://github.com/xsf/xmpp-providers-website" text="improve this website" >}}! +Help us to make _free communication_ possible and [contribute to XMPP Providers](https://invent.kde.org/melvo/xmpp-providers/-/blob/master/CONTRIBUTING.md) or [improve this website](https://github.com/xsf/xmpp-providers-website)! ## History -XMPP Providers arose from {{< external-link url="https://www.kaidan.im" text="Kaidan" >}}'s onboarding introduced in {{< external-link url="https://www.kaidan.im/2020/04/06/kaidan-0.5.0/" text="Kaidan 0.5" >}}. +XMPP Providers arose from [Kaidan](https://www.kaidan.im)'s onboarding introduced in [Kaidan 0.5](https://www.kaidan.im/2020/04/06/kaidan-0.5.0/). The goal was to speed up the onboarding by making registrations as simple as possible. Until then, a usual onboarding raised the following questions: @@ -27,7 +27,7 @@ Until then, a usual onboarding raised the following questions: 1. Which *password* should I take? 1. Which *provider* should I take? -We, {{< external-link url="https://invent.kde.org/melvo" text="Melvin Keskin" >}} and {{< external-link url="https://wiki.xmpp.org/web/User:Echolon" text="Edward Maurer" >}}, wanted to tackle the third question. +We, [Melvin Keskin](https://invent.kde.org/melvo) and [Edward Maurer](https://wiki.xmpp.org/web/User:Echolon), wanted to tackle the third question. There were several approaches on the web but none provided a good user experience via a curated list. Furthermore, there were no criteria for recommended providers. Thus, we created a list containing all properties of providers relevant to the users during the onboarding. @@ -35,4 +35,4 @@ Thus, we created a list containing all properties of providers relevant to the u When we saw that our approach worked out for Kaidan, we decided to spin it off as an independent project. That way, other apps could use our list as well. Since then, we added more providers, filtering, results, badges and [apps that integrate XMPP Providers](/apps). -Finally, {{< external-link url="https://github.com/cal0pteryx" text="Daniel Brötzmann" >}} created this wonderful website. +Finally, [Daniel Brötzmann](https://github.com/cal0pteryx) created this wonderful website. diff --git a/content/apps.md b/content/apps.md index f99209a..cdc8b24 100644 --- a/content/apps.md +++ b/content/apps.md @@ -22,5 +22,5 @@ These apps are not developed anymore but support the XMPP Providers lists. ## For Developers -Would you like to {{< external-link url="https://invent.kde.org/melvo/xmpp-providers" text="integrate XMPP Providers in your app" >}}? +Would you like to [integrate XMPP Providers in your app](https://invent.kde.org/melvo/xmpp-providers)? There is an API for querying provider lists which are regularly updated. diff --git a/content/blog/2022-04-25-start-of-xmpp-providers-website.md b/content/blog/2022-04-25-start-of-xmpp-providers-website.md index 6519d35..1e9ef43 100644 --- a/content/blog/2022-04-25-start-of-xmpp-providers-website.md +++ b/content/blog/2022-04-25-start-of-xmpp-providers-website.md @@ -6,7 +6,7 @@ date: 2022-04-25 ## It's Your Choice Are you looking for an XMPP provider that suits you? -There is this new website now based on the data of {{< external-link url="https://invent.kde.org/melvo/xmpp-providers" text="XMPP Providers" >}}. +There is this new website now based on the data of [XMPP Providers](https://invent.kde.org/melvo/xmpp-providers). **XMPP Providers** has a curated list of providers and tools for filtering them, creating badges and more. Each provider is [categorized](/faq/#why-do-we-collect-and-categorize-providers) based on its properties to make decisions for users as easy as possible. @@ -34,4 +34,4 @@ We need to find ways to simplify the maintenance while still providing results t If you are a developer, please help us with automating the tasks we currently have to do manually. If you are an operator of an already listed public provider, please update your website to improve your category. You can see what is needed on your details page after selecting a provider entry and clicking the *Details* button. -If your provider is not listed yet, please {{< external-link url="https://invent.kde.org/melvo/xmpp-providers/-/blob/master/CONTRIBUTING.md" text="contribute to the list" >}}. +If your provider is not listed yet, please [contribute to the list](https://invent.kde.org/melvo/xmpp-providers/-/blob/master/CONTRIBUTING.md). diff --git a/content/blog/2022-08-17-xmpp-providers-and-blabber-im.md b/content/blog/2022-08-17-xmpp-providers-and-blabber-im.md index 4da812e..a4524ae 100644 --- a/content/blog/2022-08-17-xmpp-providers-and-blabber-im.md +++ b/content/blog/2022-08-17-xmpp-providers-and-blabber-im.md @@ -5,7 +5,7 @@ date: 2022-08-17 ## Easy Onboarding with Android Chat App -A new version of the Android XMPP chat app {{< external-link url="https://blabber.im" text="blabber.im" >}} has been released. +A new version of the Android XMPP chat app [blabber.im](https://blabber.im) has been released. It provides an easy onboarding. Passwords are generated automatically and XMPP providers are suggested. Those suggestions are based on our curated list of XMPP providers. @@ -19,7 +19,7 @@ But that would have little impact if no app integrated it. Only with the help of app developers, it is possible to have that impact. Thus, we are glad to announce such a big step towards free **and** easy communication! -{{< external-link url="https://f-droid.org/en/packages/de.pixart.messenger/" text="Install blabber.im via F-Droid" >}} and try it out now! +[Install blabber.im via F-Droid](https://f-droid.org/en/packages/de.pixart.messenger/) and try it out now! There are even more [apps integrating XMPP Providers](/apps/) already. Support by other apps is planned. If you are an XMPP developer and interested in integrating XMPP Providers, please get in touch with us. diff --git a/content/blog/2023-11-22-xmpp-providers-automation.md b/content/blog/2023-11-22-xmpp-providers-automation.md index dd49f34..126cb03 100644 --- a/content/blog/2023-11-22-xmpp-providers-automation.md +++ b/content/blog/2023-11-22-xmpp-providers-automation.md @@ -5,28 +5,28 @@ date: 2023-11-22 ## Automating the Automatable -During the past year, the team behind the [XMPP Providers](https://providers.xmpp.net/) project worked on automating the process of gathering data about XMPP providers. +During the past year, the team behind the [XMPP Providers](/) project worked on automating the process of gathering data about XMPP providers. Automating this process reduces manual work significantly (for example, checking websites by hand, verifying information, listing sources, etc.) and helps to sustain the team's efforts. Automation also enables the project to be up to date - every day! At the beginning of this year, work on automating the collection of several provider 'properties' (for example, available size for file uploads) started. -An overview of all these provider properties gathered for each XMPP provider can be found on the [overview page](https://providers.xmpp.net/overview/). +An overview of all these provider properties gathered for each XMPP provider can be found on the [overview page](/overview/). Some of these properties were already available in a machine-readable format, making it easy to be collected. -A {{< external-link url="https://invent.kde.org/melvo/xmpp-providers/-/blob/master/TOOLS.md#automation" text="suite of tools" >}} has been developed since, providing the ability to query properties via XMPP and through the web. +A [suite of tools](https://invent.kde.org/melvo/xmpp-providers/-/blob/master/TOOLS.md#automation) has been developed since, providing the ability to query properties via XMPP and through the web. All of these tools are working together in a GitLab pipeline, which runs every night to keep the data up to date. **So far, the following properties are collected automatically:** -- Account Creation via XMPP Apps: For determining whether a server supports the creation of accounts via XMPP apps, {{< external-link url="https://xmpp.org/extensions/xep-0077.html" text="XEP-0077: In-Band Registration" >}} is used. -- Account Creation via Web Page: For retrieving a web page that can be used to create accounts, {{< external-link url="https://xmpp.org/extensions/xep-0077.html#redirect" text="XEP-0077: In-Band Registration - Redirection" >}} is used. -- Server Software: For determining which software (including its version) a server runs, {{< external-link url="https://xmpp.org/extensions/xep-0092.html" text="XEP-0092: Software Version" >}} is used. -- Support Addresses: For retrieving the support addresses of a provider, {{< external-link url="https://xmpp.org/extensions/xep-0157.html" text="XEP-0157: Contact Addresses for XMPP Services" >}} is used. +- Account Creation via XMPP Apps: For determining whether a server supports the creation of accounts via XMPP apps, [XEP-0077: In-Band Registration](https://xmpp.org/extensions/xep-0077.html) is used. +- Account Creation via Web Page: For retrieving a web page that can be used to create accounts, [XEP-0077: In-Band Registration - Redirection](https://xmpp.org/extensions/xep-0077.html#redirect) is used. +- Server Software: For determining which software (including its version) a server runs, [XEP-0092: Software Version](https://xmpp.org/extensions/xep-0092.html) is used. +- Support Addresses: For retrieving the support addresses of a provider,[XEP-0157: Contact Addresses for XMPP Services](https://xmpp.org/extensions/xep-0157.html) is used. Support addresses will be available in version 2 (`v2`) of the API. Please note that due to limitations of the standard, only one language is supported for addresses. -- Upload Limits and Storage Durations: For determining how much users can upload to a server and how long those files are stored, {{< external-link url="https://xmpp.org/extensions/xep-0363.html#disco" text="XEP-0363: HTTP File Upload - Discovering Support" >}} is used. +- Upload Limits and Storage Durations: For determining how much users can upload to a server and how long those files are stored, [XEP-0363: HTTP File Upload - Discovering Support](https://xmpp.org/extensions/xep-0363.html#disco) is used. -The [FAQ section](https://providers.xmpp.net/faq/#where-do-we-have-the-providers-properties-from) explains how these properties can be provided by server admins. +The [FAQ section](/faq/#where-do-we-have-the-providers-properties-from) explains how these properties can be provided by server admins. ## More Automation @@ -37,6 +37,6 @@ With increasing automation and thus reduced manual intervention, the XMPP Provid ## Spread the Word -The project lives from the community and client implementations, so {{< external-link url="https://fosstodon.org/@xmpp_providers" text="follow us and spread the word" >}}! +The project lives from the community and client implementations, so [follow us and spread the word](https://fosstodon.org/@xmpp_providers)! -{{< figure src="/images/xmpp-providers.svg" caption="XMPP Providers Logo" class="text-center w-100 pt-5" height="300" link="https://providers.xmpp.net" >}} +{{< figure src="/images/xmpp-providers.svg" caption="XMPP Providers Logo" class="text-center w-100 pt-5" height="300" link="/" >}} diff --git a/content/faq.md b/content/faq.md index 96ee13d..c49bfb7 100644 --- a/content/faq.md +++ b/content/faq.md @@ -32,7 +32,7 @@ For properties such as the web registration or the website language alternatives And there have to be statements e.g. about the service price or the support channels on the provider's website. If properties are not verifiable, they are seen as not available which often results in a bad [category](#in-which-categories-can-providers-be). -Verifiable properties must meet specific {{< external-link text="criteria" url="https://invent.kde.org/melvo/xmpp-providers#criteria" >}} we decided on for a good user experience. +Verifiable properties must meet specific [criteria](https://invent.kde.org/melvo/xmpp-providers#criteria) we decided on for a good user experience. The criteria are used to answer different questions. Here are some of them: @@ -45,7 +45,7 @@ If a provider meets all criteria of a category, it is part of the providers in t ## In which categories can providers be? Here are all categories from best to worst. -If you want to integrate XMPP Providers in your app, have a look at the {{< external-link text="category details" url="https://invent.kde.org/melvo/xmpp-providers#categories" >}}. +If you want to integrate XMPP Providers in your app, have a look at the [category details](https://invent.kde.org/melvo/xmpp-providers#categories). {{< category-heading category="A" >}} @@ -75,7 +75,7 @@ Those providers should only be used for autocomplete (e.g., while adding a conta Each property is retrieved by one of the following methods: * A rating service's HTTP server is requested to gather a provider's rating. -* A provider's [XMPP server is requested](#how-can-server-operators-provide-properties-via-xmpp) to gather data specified by an {{< external-link text="XMPP Extension Procotol (XEP)" url="https://xmpp.org/extensions/" >}}. +* A provider's [XMPP server is requested](#how-can-server-operators-provide-properties-via-xmpp) to gather data specified by an [XMPP Extension Procotol (XEP)](https://xmpp.org/extensions/). * A provider's [HTTP server is requested](#how-can-server-operators-provide-properties-via-http) to gather data via a [provider file](#provider-file). Those methods define a property's source. @@ -83,9 +83,9 @@ A source is needed for transparency and maintainability of the data. Furthermore, several properties are updated automatically on a daily basis. E.g., our web bot retrieves ratings from rating services and a provider file from a provider's web server while our XMPP bot retrieves registration support and upload limits from a providers' XMPP server. -The specific update methods for both {{< external-link text="basic information" url="https://invent.kde.org/melvo/xmpp-providers/-/tree/master#basic-information">}} and {{< external-link text="criteria" url="https://invent.kde.org/melvo/xmpp-providers/-/tree/master#criteria">}} are denoted in the *Automatic Updates* column. +The specific update methods for both [basic information](https://invent.kde.org/melvo/xmpp-providers/-/tree/master#basic-information) and [criteria](https://invent.kde.org/melvo/xmpp-providers/-/tree/master#criteria) are denoted in the *Automatic Updates* column. -All sources are stored in the {{< external-link text="providers file" url="https://invent.kde.org/melvo/xmpp-providers/-/blob/master/providers.json" >}}. +All sources are stored in the [providers file](https://invent.kde.org/melvo/xmpp-providers/-/blob/master/providers.json). That file is the data source of all provider properties. This website's provider listings and details are based on it. @@ -156,11 +156,11 @@ A property is called *unknown* if no [source](#where-do-we-have-the-providers-pr ### Provider File A provider file is a JSON file containing only the provider properties that cannot be retrieved via other methods. -Each provider can [generate a provider file](https://providers.xmpp.net/provider-file-generator/) and supply it via its web server. +Each provider can [generate a provider file](/provider-file-generator/) and supply it via its web server. ### Bus Factor -The term {{< external-link text="bus factor" url="https://en.wikipedia.org/wiki/Bus_factor" >}} describes the minimum number of team members that the service could not survive losing. +The term [bus factor](https://en.wikipedia.org/wiki/Bus_factor) describes the minimum number of team members that the service could not survive losing. ### Professional Hosting @@ -177,7 +177,7 @@ The *client-to-server (C2S)* connection is used for the communication between yo ### HTTP Upload -{{< external-link text="XEP-0363 HTTP File Upload" url="https://xmpp.org/extensions/xep-0363.html" >}} is a standard for sharing files between you and others. +[XEP-0363 HTTP File Upload](https://xmpp.org/extensions/xep-0363.html) is a standard for sharing files between you and others. ### Server-to-Server diff --git a/themes/xmpp-providers/layouts/_default/_markup/render-link.html b/themes/xmpp-providers/layouts/_default/_markup/render-link.html new file mode 100644 index 0000000..83aa8c3 --- /dev/null +++ b/themes/xmpp-providers/layouts/_default/_markup/render-link.html @@ -0,0 +1,10 @@ +{{- $link := .Destination -}} +{{- $isRemote := strings.HasPrefix $link "http" -}} +{{- if not $isRemote -}} +{{- $url := urls.Parse .Destination -}} +{{- if $url.Path -}} +{{- $fragment := "" -}} +{{- with $url.Fragment -}}{{- $fragment = printf "#%s" . -}}{{- end -}} +{{- with .Page.GetPage $url.Path -}}{{- $link = printf "%s%s" .RelPermalink $fragment -}}{{- end -}}{{- end -}} +{{- end -}} +{{- .Text | safeHTML -}}{{- if $isRemote -}}{{- end -}} \ No newline at end of file diff --git a/themes/xmpp-providers/layouts/shortcodes/external-link.html b/themes/xmpp-providers/layouts/shortcodes/external-link.html deleted file mode 100644 index 25ba157..0000000 --- a/themes/xmpp-providers/layouts/shortcodes/external-link.html +++ /dev/null @@ -1,3 +0,0 @@ -{{ $url := .Get "url" }} -{{ $text := .Get "text" }} -{{ $text }} \ No newline at end of file