Inline-PDF-Vorschauen

:discourse2: Zusammenfassung Inline-PDF-Vorschauen ist eine Theme-Komponente nur für Desktop, mit der Sie Vorschauen für PDF-Anhänge erstellen können.
:eyeglasses: Vorschau Vorschau im Discourse Theme Creator (nur Desktop)
:hammer_and_wrench: Link zum Repository https://github.com/discourse/discourse-pdf-previews
:open_book: Neu bei Discourse-Themen? Anfängerleitfaden zur Verwendung von Discourse-Themen

Diese Theme-Komponente installieren

Funktionen

vorher

nachher

Wie oben erwähnt, funktioniert diese Komponente nur auf dem Desktop. Es gibt auf mobilen Geräten kaum einen Vorteil, Vorschauen anzuzeigen, da alles so klein und schwer lesbar wäre.

Diese Komponente verwendet die native Browser-Implementierung zum Rendern von PDFs, sodass die Ergebnisse in verschiedenen Browsern unterschiedlich aussehen können.

Bitte beachten Sie auch, dass PDF-Uploads in Discourse standardmäßig nicht erlaubt sind. Wenn Sie möchten, dass Ihre Benutzer PDF-Dateien hochladen können, müssen Sie diese Erweiterung entweder zu authorized_extensions hinzufügen, wenn alle Benutzer PDFs hochladen dürfen, oder zu authorized_extensions_for_staff, wenn dies auf Mitarbeiter beschränkt sein soll.

:information_source: Bei Verwendung von S3 müssen Sie möglicherweise auch Ihre CORS-Richtlinie aktualisieren. Bitte sehen Sie sich den folgenden Beitrag an: Inline PDF Previews - #106 by JammyDodger

Wie verwende ich es?

  1. Installieren Sie die Komponente
  2. Erlauben Sie PDF-Uploads
  3. Aktualisieren Sie die Seite
  4. Laden Sie ein PDF hoch

Das ist alles. Der Rest sollte automatisch funktionieren.

Einstellungen

Name Beschreibung
Vorschau-Modus Inline: PDF-Anhänge werden inline in Beiträgen gerendert

Neuer Tab: PDF-Anhang-Links führen den Benutzer zu einem neuen Tab, in dem das PDF gerendert wird

Zusätzliche Funktionen

Wenn Sie möchten, dass eine einzelne PDF nicht inline gerendert wird, können Sie einfach ein Leerzeichen vor den Dateinamen setzen – z. B.:

Dies wird inline angezeigt

[sample-pdf.pdf|attachment](upload://usvbcKiQSWqA3w10gnf5PtydiXR.pdf) (82.9 KB)

Dies wird nicht inline angezeigt

[ sample-pdf.pdf|attachment](upload://usvbcKiQSWqA3w10gnf5PtydiXR.pdf) (82.9 KB)

:discourse2: Von uns gehostet? Theme-Komponenten können auf unseren Standard-, Business- und Enterprise-Plänen verwendet werden.

68 „Gefällt mir“

Ich hoste meine Uploads und Bilder auf S3, und die Vorschau wird durch eine „CORS-Richtlinie: Kein Header ‚Access-Control-Allow-Origin’ vorhanden“ blockiert.

Hier ist die Ausgabe der Chrome-Konsole:

Der Zugriff auf den Abruf von 'https://travelmassive-discourse-cdn.s3.dualstack.us-west-1.amazonaws.com/original/2X/b/b578f6364592121964e6a2fd4969e5c1222bd909.pdf' (umgeleitet von 'https://lounge.travelmassive.com/uploads/short-url/pTnA3r043WfhDK8HSdPQrtNn8Lf.pdf') wurde von der Ursprungsadresse 'https://lounge.travelmassive.com' aufgrund einer CORS-Richtlinie blockiert: Auf der angeforderten Ressource ist kein Header 'Access-Control-Allow-Origin' vorhanden. Wenn eine undurchsichtige Antwort Ihre Anforderungen erfüllt, setzen Sie den Modus der Anforderung auf 'no-cors', um die Ressource mit deaktiviertem CORS abzurufen.

Update

Ich habe das Problem behoben, indem ich die folgende CORS-Richtlinie in die Konfiguration meines S3-Buckets aufgenommen habe.

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>https://mydiscourse.url/</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
 </CORSRule>
</CORSConfiguration>
2 „Gefällt mir“

Es ist wichtig hinzuzufügen: Wenn Sie in der Fehlermeldung den Text from origin 'https://lounge.travelmassive.com' has been sehen, wobei Ihre Domain ohne schrägen Strich / am Ende angegeben ist, dann müssen Sie in der CORS-Konfiguration Ihre Domain ebenfalls ohne schrägen Strich am Ende hinzufügen, wie folgt:
https://mydiscourse.url

1 „Gefällt mir“

Ich habe festgestellt, dass Ihre Uploads auf AWS gehostet werden. Das Problem liegt wahrscheinlich also im Zusammenhang mit CORS (die Komponente ist für mich auf Ihrer Seite nicht aktiv, um dies zu bestätigen). Schauen Sie sich den Beitrag unter Ihrem an.

Danke, dass Sie das geteilt haben!

Bitte beachten Sie, dass dieses Problem nur Self-Hoster betrifft, die etwas wie S3 eingerichtet haben. Self-Hoster, die kein S3 verwenden, werden auf dieses Problem nicht stoßen. Kunden, die von CDCK gehostet werden, müssen sich ebenfalls keine Sorgen machen, da dies bereits eingerichtet ist.

Das heißt, die CORS-Konfiguration liegt etwas außerhalb des Rahmens dieses Themas. Wenn Ihr Upload-Bucket den Zugriff auf Ihre eigene Domain nicht zulässt, muss dies unabhängig davon behoben werden, da dies zu weiteren Problemen führen könnte.

Ich bin mir nicht ganz sicher, was hier passiert ist. Beide Fälle scheinen bei jedem Versuch für mich zu funktionieren. Wir können das einfach auf ein vorübergehendes Netzwerkproblem zurückführen, aber lassen Sie es mich bitte wissen, falls Sie es erneut sehen :+1:

Ich habe ein kleines Update für diese Komponente veröffentlicht, das die wahrgenommene Ladezeit verbessern sollte. Es gibt jetzt einen Platzhalter basierend auf der Theme-Farbe anstelle der standardmäßigen Browser-Iframe-Stile. Dieser wird nur angezeigt, während die Datei geladen wird, sodass Sie ihn zu 99 % der Zeit gar nicht bemerken werden.

Da die meisten PDFs sofort geladen werden, hielt ich es nicht für sinnvoll, einen Ladebalken hinzuzufügen.

9 „Gefällt mir“

Wäre es möglich, die PDF-Vorschau zu unterdrücken, indem ein Leerzeichen vor den Upload-Link gesetzt wird, ähnlich wie bei der Oneboxing-Funktion? Manchmal möchte man eine Liste von Dokumenten und keine Vorschauen. Manchmal möchte man eine Vorschau.

9 „Gefällt mir“

Ich nutze Safari unter macOS Catalina und habe keine Einstellungen, die die PDF-Anzeige im Browser deaktivieren – beispielsweise wird http://www.orimi.com/pdf-test.pdf problemlos angezeigt. Dennoch erscheint beim Anzeigen der Vorschau im Theme-Creator das Fenster/die Meldung „Blockiertes Plug-in".

Die sitzungsspezifischen Einstellungen in den Safari-Einstellungen unterscheiden sich nicht von denen anderer Websites.

Tritt dies bei anderen auf?

3 „Gefällt mir“

Bei mir funktioniert es auf Safari unter macOS Big Sur immer noch nicht. Es gibt keine besonderen Einstellungen für Blog-Plugins, und andere PDFs werden im Browser angezeigt.

Safari Web Inspector meldt folgende Fehler beim Laden der Vorschauseite in theme-creator:
Unbekannte Content-Security-Policy-Direktive 'worker-src'.
Laden von blob:https://theme-creator.discourse.org/7b9b62c7-e782-4080-a521-04e3b06aa142 abgelehnt, da es nicht in der object-src-Direktive der Content Security Policy aufgeführt ist.

3 „Gefällt mir“

Das wäre eine enorme Verbesserung für diese Komponente! Ist das machbar, @Johani?

5 „Gefällt mir“

Das gleiche Problem tritt bei mir in Firefox auf, jedoch erst nach dem zweiten Besuch :wink:
Gibt es eine Workaround-Lösung dafür? Eine manuelle Deklaration in der CSP-Konfiguration?

Vielen Dank

1 „Gefällt mir“

Bei mir funktioniert das auf meiner Website nicht mehr. Anstelle der PDF-Vorschau erscheint ein großes schwarzes Feld:

Das Deaktivieren von Plugins über den abgesicherten Modus bringt nichts, genauso wenig wie das Entfernen aller anderen Theme-Komponenten.

Das Problem trat auf, nachdem Bild- und Datei-Uploads auf S3 umgestellt wurden, was möglicherweise die Ursache ist. Ich hoffe nicht, denn sie lassen sich nicht einfach zurückverlegen!

Ich bin ratlos. Schade, denn es ist eine großartige Komponente. Haben Sie irgendwelche Vorschläge?

2 „Gefällt mir“

Ich sehe das gleiche Verhalten, wenn S3-Uploads aktiviert sind.

3 „Gefällt mir“

Kannst du die PDF immer noch herunterladen?
Bei mir funktioniert es noch (S3 + gesicherte Medien und kein CDN) :thinking:

1 „Gefällt mir“

Ja, das können wir. Wir haben die gleiche Einrichtung wie du (glaube ich).

1 „Gefällt mir“

:thinking:

  • Meine Links in den Nachrichten haben das Format domain/secure-media-uploads/original/...
  • Aber in der Konsole/Netzwerkansicht kann ich sehen, dass die tatsächlichen Downloads aus dem Bucket kommen.
    Sieht man die AMZ-Anmeldeinformationen?

Falls nicht, könnte dies vielleicht helfen?

Ich erinnere mich auch, dass etwas Seltsames passierte, als ich versuchte, einen Beitrag aus Kategorien zu verschieben (oder war es ein Kopieren/Einfügen?). Es funktionierte schließlich, als ich die Datei erneut hochgeladen habe.

1 „Gefällt mir“

Ich erlebe dieses gleiche Verhalten bei einer frischen Discourse-Installation und einem neuen PDF-Anhang.

3 „Gefällt mir“

Danke @Benjamin_D. Es stellt sich heraus, dass ich keine sicheren Uploads aktiviert habe, und meine Links sehen alle gut aus und funktionieren einwandfrei, wie zum Beispiel dieser:

The HiNZ eHealth Forum - trusted online digital health discussion

Also bin ich ratlos – besonders, warum es in zwei Foren funktioniert, die ich betreibe, und nicht im anderen – wobei S3 der einzige Unterschied ist. Und dass es bei dir mit S3 funktioniert. Ich bin wirklich verwirrt.

1 „Gefällt mir“

Nach dem Update auf die neueste Version von Discourse werden die PDF-Anhänge nicht mehr angezeigt. Was könnte das Problem sein?

1 „Gefällt mir“

Es könnte ein Konflikt mit einer anderen Komponente oder einem anderen Theme vorliegen. Bei mir funktioniert es wie erwartet. Beginnen Sie damit, andere Komponenten zu deaktivieren, und testen Sie das Standard-Theme, falls Sie ein anderes verwenden. Genauso verfahren Sie mit Plugins.

3 „Gefällt mir“

Ok – ich habe Fortschritte gemacht. Das Deaktivieren von S3-Uploads behebt das Problem bei neuen Uploads. Aber ich bleibe mit einem S3-/Lokal-Chaos zurück, wenn ich diesen Weg gehe!

Es könnte sein, dass ich die CDN-Sache (CloudFront) nicht verwende, die die nervigen Fehler auf der Admin-Seite verursacht. Ich werde es versuchen, das einzurichten, und schauen, ob das funktioniert.

später – nein, ein CDN macht keinen Unterschied.

viel später – habe S3-Uploads erfolgreich entfernt (mit etwas Schweiß), also ist jetzt alles in Ordnung.

Jetzt bin ich darauf erpicht, es zu verbessern! Ist jemand mit den entsprechenden Fähigkeiten interessiert, das zu versuchen?

4 „Gefällt mir“

Ich suche nach einem Plugin, mit dem sich PDFs in einem neuen Tab öffnen lassen.
Aktuell erlaubt mein Discourse nur den Download.
Wäre das mit einem ähnlichen Theme möglich?

5 „Gefällt mir“