I may be barking up the wrong tree here, so apologies if I am - but any pointers very much welcome!
There are some threads in our Discourse site which are displayed in part on our main website. Because the cooked version of a post contains all the HTML for the lightbox, which we don’t want on the main site, I’m working with the raw version of a post.
One thing that’s tripping me up is the file upload URLs. How can I convert an upload:// URL to a full URL? I’ve tried searching and come across SHA1 and Base62, but apart from that, no matter what I try, I can’t get the full URL.
As I said, I may looking at the wrong thing, or there’s (likely) to be an easier way to these things, so any advice welcome!
Interessant. Ich kann dies mit Javascript nicht reproduzieren. Da Ihre letzte Methode eine bin2hex-Konvertierung ist, ist das Ergebnis der Base62-Dekodierung meines Verständnisses nach keine binäre Darstellung.
function fromBase62(s) {
var digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var result = 0;
for (var i = 0; i < s.length; i++) {
var p = digits.indexOf(s[i]);
if (p < 0) {
return NaN;
}
result += p * Math.pow(digits.length, s.length - i - 1);
}
return result;
}
Leider helfen weder die bin2hex- noch die dec2hex-Methoden, wenn ich Ihre Eingabezeichenfolgen verwende.
Ich habe für dieses Problem einen Codesandbox erstellt, falls jemand daran interessiert ist, damit herumzuspielen. Der endgültige Wert ist 1 für meine Eingabezeichenfolge, was falsch ist ; (
Sie sollten binVal.toString(16) verwenden können, um den Hexadezimalwert zu erhalten.
Ich glaube jedoch (!), dass das Zwischenergebnis zu groß ist, um in eine normale Ganzzahl zu passen.
Danke für den Hinweis, Richard, aber ich komme auch mit dieser Idee nicht weiter.
Ich weiß nicht, wäre es nicht eine gute Funktion, eine Einstellung wie „Absolute Upload-Links in Rohansichten (Routen) aktivieren“ zu haben? Ich würde das in unserem Fall auf jeden Fall nutzen – denn meines Verständnisses nach ist die Verkürzung von Upload-URLs wirklich nur eine Discourse-Optimierung, um Code zu reduzieren, oder? Sie hat nichts mit Markdown zu tun.
Kann jemand aus dem Discourse-Team eine JS-Methode bereitstellen, die die absolute URL wiederherstellen kann?
Das wäre hilfreich für die Community, denkt nach.
Sie können von Base62 in Hex umwandeln, aber Sie werden die Upload-URL niemals vollständig rekonstruieren können, ohne eine Art Schnittstelle zur Discourse-Datenbank. Der vollständige Pfad zu einem Upload hängt von der id des Uploads ab, die nicht aus der Kurz-URL ermittelt werden kann.\n\nWie @pfaffman sagte, könnten wir Ihnen vielleicht besser helfen, wenn Sie Ihren Anwendungsfall beschreiben.