Anteprime PDF in linea

:discourse2: Riepilogo Anteprime PDF in linea è un componente del tema solo per desktop che ti permetterà di creare anteprime per gli allegati PDF.
:eyeglasses: Anteprima Anteprima su Discourse Theme Creator (solo desktop)
:hammer_and_wrench: Link al repository https://github.com/discourse/discourse-pdf-previews
:open_book: Nuovo ai temi Discourse? Guida per principianti all’uso dei temi Discourse

Installa questo componente del tema

Funzionalità

prima

dopo

Come accennato sopra, questo componente funziona solo su desktop. C’è poco vantaggio nel mostrare le anteprime su dispositivi mobili, poiché tutto sarebbe così piccolo e molto difficile da leggere.

Questo componente utilizza l’implementazione nativa del browser per renderizzare i PDF, quindi i risultati appariranno diversi su browser diversi.

Si noti inoltre che per impostazione predefinita gli upload di file PDF non sono consentiti in Discourse. Se desideri consentire agli utenti di caricare file PDF, dovrai aggiungere quell’estensione a authorized_extensions se vuoi che tutti gli utenti possano caricare PDF, oppure a authorized_extensions_for_staff se desideri limitare questa possibilità solo ai membri dello staff.

:information_source: Se utilizzi S3, potrebbe essere necessario anche aggiornare la tua policy CORS. Consulta il post qui sotto: Inline PDF Previews - #106 by JammyDodger

Come si usa?

  1. installa il componente
  2. consenti gli upload di PDF
  3. aggiorna la pagina
  4. carica un PDF

È tutto. Il resto dovrebbe funzionare automaticamente.

Impostazioni

Nome Descrizione
modalità anteprima In linea: gli allegati PDF verranno renderizzati all’interno dei post

Nuova scheda: i link agli allegati PDF apriranno una nuova scheda dove il PDF verrà renderizzato

Funzionalità aggiuntive

Se desideri che un singolo PDF non venga renderizzato in linea, puoi semplicemente aggiungere uno spazio prima del nome del file - ad esempio:

Questo verrà visualizzato in linea

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

Questo non verrà visualizzato in linea

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

:discourse2: Ospitato da noi? I componenti del tema sono disponibili per l’uso sui nostri piani Standard, Business ed Enterprise.

68 Mi Piace

Sto ospitando i miei file caricati e le immagini su S3, ma l’anteprima è bloccata da una “policy CORS: manca l’intestazione ‘Access-Control-Allow-Origin’”.

Di seguito quanto riportato dalla console di Chrome:

Access to fetch at 'https://travelmassive-discourse-cdn.s3.dualstack.us-west-1.amazonaws.com/original/2X/b/b578f6364592121964e6a2fd4969e5c1222bd909.pdf' (redirected from 'https://lounge.travelmassive.com/uploads/short-url/pTnA3r043WfhDK8HSdPQrtNn8Lf.pdf') from origin 'https://lounge.travelmassive.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Aggiornamento

Sono riuscito a risolvere il problema aggiungendo la seguente policy CORS nella configurazione del mio bucket S3.

<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>https://mydiscourse.url/</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
   <AllowedHeader>*</AllowedHeader>
   <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>
 </CORSRule>
</CORSConfiguration>
2 Mi Piace

È necessario aggiungere che, se vedi questo testo nel messaggio di errore from origin 'https://lounge.travelmassive.com' has been, dove il tuo dominio non ha una barra / alla fine, allora nella configurazione CORS dovresti aggiungere anche il tuo dominio senza la barra alla fine, come segue:
https://mydiscourse.url

1 Mi Piace

Ho notato che i tuoi caricamenti sono su AWS, quindi il problema è probabilmente legato a CORS (il componente non è attivo sul tuo sito per poterne confermare). Vedi il post sotto il tuo.

Grazie per averlo condiviso!

Tieni presente che questo problema influenzerà solo gli utenti che ospitano in proprio e hanno configurato qualcosa come S3. Gli utenti che ospitano in proprio ma non utilizzano S3 non incontreranno questo problema. Anche i clienti ospitati da CDCK non dovranno preoccuparsene, poiché l’hanno già configurato.

Detto questo, la configurazione CORS è un po’ al di fuori dell’ambito di questo argomento. Se il bucket dei tuoi caricamenti non consente l’accesso al tuo dominio, ciò deve essere risolto comunque, poiché potrebbero esserci altri problemi causati da ciò.

Sono un po’ incerto su cosa sia successo qui. Entrambi i casi sembrano funzionare ogni volta che provo. Possiamo semplicemente attribuirlo a un problema di rete transitorio, ma fammi sapere se lo vedi di nuovo :+1:

Ho spinto un piccolo aggiornamento per questo componente che dovrebbe migliorare la percezione del caricamento; ora c’è un segnaposto basato sul colore del tema invece degli stili predefiniti del browser per l’Iframe. Viene visualizzato solo mentre il file viene caricato, quindi il 99% delle volte non lo noterai nemmeno.

Dato che la maggior parte dei PDF si carica istantaneamente, non ho ritenuto utile aggiungere un indicatore di caricamento.

9 Mi Piace

Sarebbe possibile rendere sopprimibile l’anteprima PDF aggiungendo uno spazio prima del link di caricamento, come avviene con il oneboxing? A volte si desidera un elenco di documenti senza anteprime, altre volte invece si vuole vederne l’anteprima.

9 Mi Piace

Sto usando Safari su MacOS Catalina e non ho nulla che disabiliti la visualizzazione dei PDF nel browser; ad esempio, http://www.orimi.com/pdf-test.pdf viene visualizzato correttamente. Tuttavia, quando visualizzo l’anteprima in theme-creator, continuo a vedere la finestra/il messaggio “Plug-in bloccato”.

Le impostazioni specifiche del sito nelle preferenze di Safari non sono diverse da quelle di altri siti web.

Stessa cosa sta succedendo anche ad altri?

3 Mi Piace

Ancora non funziona per me su Safari in MacOS Big Sur. Nessuna impostazione speciale per i plugin del blog, e altri PDF vengono visualizzati nel browser.

Safari Web Inspector riporta i seguenti errori durante il caricamento della pagina di anteprima in theme-creator:
Direttiva Content-Security-Policy non riconosciuta 'worker-src'.
Caricamento di blob:https://theme-creator.discourse.org/7b9b62c7-e782-4080-a521-04e3b06aa142 rifiutato perché non è presente nella direttiva object-src della Content Security Policy.

3 Mi Piace

Questo rappresenterebbe un enorme miglioramento per questo componente! È fattibile, @Johani?

5 Mi Piace

Stesso problema per me su Firefox, ma solo dopo la seconda visita :wink:
Esiste una soluzione alternativa per questo problema? Una dichiarazione manuale nella configurazione CSP?

Grazie

1 Mi Piace

Questo ha smesso di funzionare sul mio sito. Invece dell’anteprima del PDF, vedo una grande scatola nera:

Disabilitare i plugin tramite la Modalità Sicura non fa alcuna differenza, così come rimuovere ogni altro componente del tema.

È successo dopo aver spostato le immagini e i caricamenti di file su S3, che potrebbe essere il colpevole. Spero di no, perché non possono essere spostati indietro facilmente!

Sono bloccato. Peccato, dato che è un componente eccellente. Qualche suggerimento?

2 Mi Piace

Sto riscontrando lo stesso comportamento con gli upload su S3.

3 Mi Piace

Riesci ancora a scaricare il PDF?
Per me funziona ancora (s3 + media sicuri e senza CDN) :thinking:

1 Mi Piace

Sì, sì. Abbiamo la stessa configurazione della tua (credo).

1 Mi Piace

:thinking:

  • I miei link nei messaggi hanno il formato domain/secure-media-uploads/original/...
  • ma nella console/network vedo che i download effettivi provengono dal bucket
    Vedi le credenziali amz?

Se non è così, forse questo può aiutare?

Ricordo anche che qualcosa di strano stava accadendo quando ho provato a spostare un post tra le categorie (o forse era un copia/incolla?): alla fine ha funzionato quando ho ricaricato il file.

1 Mi Piace

Sto riscontrando lo stesso comportamento su una nuova installazione di Discourse e su un nuovo allegato PDF.

3 Mi Piace

Grazie @Benjamin_D. Sembra che non abbia abilitato il caricamento sicuro, e i miei link sembrano tutti a posto e funzionano bene, come questo:

The HiNZ eHealth Forum - trusted online digital health discussion

Quindi sono bloccato, soprattutto sul motivo per cui funziona nei due forum che gestisco e non nell’altro, con S3 come unica differenza. E che tu riesca a farlo funzionare con S3. Sono davvero confuso.

1 Mi Piace

Dopo l’aggiornamento all’ultima versione di Discourse, gli allegati PDF non vengono più visualizzati. Qual potrebbe essere il problema?

1 Mi Piace

Potrebbe esserci un conflitto con un altro componente o tema. Per me funziona come previsto. Inizia disabilitando altri componenti e prova a utilizzare il tema predefinito se il tuo è diverso. Lo stesso vale per i plugin.

3 Mi Piace

Ok, ho fatto progressi. Disabilitando i caricamenti su S3, il problema si risolve per i nuovi caricamenti. Ma mi ritrovo con un caos tra S3 e locale se seguo questa strada!

Potrebbe essere che non sto usando la funzionalità CDN (CloudFront), che genera gli errori fastidiosi nella pagina di amministrazione. Proverò a configurarla e vediamo se funziona.

più tardi - no, la CDN non fa alcuna differenza.

molto più tardi - ho rimosso con successo i caricamenti su S3 (con un po’ di fatica), quindi ora è tutto a posto.

Ora, sono desideroso di migliorarlo! C’è qualche persona intelligente con le competenze necessarie interessata a provare?

4 Mi Piace

Sto cercando un plugin che permetta di aprire il PDF in una nuova scheda.
Il comportamento attuale del mio Discorso consente solo il download.
Sarebbe possibile con un tema simile?

5 Mi Piace