Benutzerdefinierte Header-Links lehnt Matrix-URL ab

Beim Update auf 3.4 weigerte sich die Custom Header Links Theme-Komponente, aufgrund eines Matrix-Links wie https://matrix.to/#/#matrix-meta-chat:fedoraproject.org zu aktualisieren. Fehler: The property at JSON Pointer '/3/url' must be a valid URL.

Sobald dieser Link entfernt wurde, funktionierte das Update einwandfrei, aber das Hinzufügen des Links war unmöglich.

(Workaround: Erstellen Sie einen Permalink /matrix, der auf https://matrix.to/#/#matrix-meta-chat:fedoraproject.org weiterleitet, und fügen Sie dann /matrix als benutzerdefinierten Header-Link hinzu)

Dennoch wäre es gut, dies etwas flexibler zu gestalten. Anscheinend ist das Linkformat für einen Permalink in Ordnung.

3 „Gefällt mir“

Der doppelte # lässt die Validierung der Objektkonfiguration im Kern fehlschlagen (nicht unbedingt in diesem TC).

bad URI(is not URI?): "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)

Es ist kein streng gültiger URI, daher müssten Sie das Fragment kodieren.
Hier funktioniert die Verwendung von https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org.

Wenn man sich den Code ansieht:
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url ist hier definiert:

Sie sehen, dass sie bereits eine andere Funktion haben, um mit dieser Situation umzugehen, und diese wird an anderen Stellen verwendet:

Ich denke, es ist vernünftig, relaxed_parse für die URL-Validierung von Theme-Objekten zu verwenden.
Z. B.: if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)

6 „Gefällt mir“