Come incorporare un gran numero di immagini AVIF in un singolo post per la lettura di libri online?

Ciao,
Il mio progetto consiste nel costruire una comunità incentrata sulla cultura del Tao Te Ching. Ho oltre 5.000 libri antichi da esporre e li ho compressi tutti nel formato immagine AVIF. Alcuni di questi libri contengono fino a 2.500 immagini AVIF.
La mia domanda è: come posso inserire queste immagini in un singolo post di Discourse per consentire ai miei utenti di leggerle online?
Sto cercando una soluzione, forse un plugin, che possa fornire agli utenti le seguenti funzionalità all’interno di un post:
Scorrere facilmente avanti e indietro tra le immagini (come sfogliare le pagine).
La possibilità di saltare direttamente a un numero di immagine specifico.
Fondamentalmente, le immagini devono essere caricate in modo lazy; dovrebbero caricarsi solo quando l’utente vi naviga, non tutte in una volta quando il post viene aperto.
I miei file sono tutti organizzati in ordine numerico e sono in formato AVIF. Ogni libro è contenuto nella propria cartella. La dimensione media delle immagini è di 150kb e i libri hanno tipicamente tra 300 e 1.000 pagine, con alcune eccezioni che raggiungono le 2.500 pagine.
Perché ho questo requisito?
La mia collezione di libri è vasta, attualmente supera i 350 GB. La compressione in AVIF è stata necessaria per gestire lo spazio di archiviazione.
Formati come AVIF e WebP non sono facilmente impacchettabili in un unico file PDF.
Impacchettare i libri come archivi ZIP o RAR impedisce la lettura online. L’utilizzo di formati e-book come CBZ creerebbe un carico troppo elevato sul server.
Grazie mille per il tuo aiuto!

1 Mi Piace

Raramente lo dico, ma non sono sicuro che Discourse sia uno strumento adatto al tuo problema.

Se comunque vuoi procedere, probabilmente farei qualcosa come creare un argomento per libro e magari un post per capitolo, se ha senso (forse non ci sono capitoli?).

Quindi potresti usare uno script di importazione che legga il nome della directory e crei un argomento e poi faccia qualcosa come

files.each do |f|
   u=uploader.create_upload(1, f.path, f.filename)
   raw += uploader.html_for_upload(u, f.filename)
end

E poi useresti quel raw per creare un argomento.

Dovresti cercare nella directory degli script di importazione per trovare alcuni esempi di creazione di argomenti, ma questa è un’idea generale.

E questo metterebbe tutte le immagini in un singolo argomento/post. E poi ci sono alcuni strumenti che ti permettono di scorrere molte immagini, credo. Forse qualcun altro ha prestato più attenzione a quelli di me.

2 Mi Piace

Come è stato affermato, Discourse probabilmente non è utile, almeno per l’hosting della tua libreria. Invece, potresti voler considerare l’utilizzo di un servizio di hosting di immagini separato insieme alla tua istanza Discourse.

Di seguito è riportato un elenco di servizi di galleria fotografica self-hosted che potrebbero offrire molte funzionalità desiderate: app web pronta all’uso, interfaccia user-friendly e mobile-friendly, album basati su directory, capacità di ricerca, ecc.

Puoi eseguire il servizio di hosting di immagini separatamente e utilizzare gli URL da esso come iframe incorporati su Discourse. Ciò eviterebbe che il tuo database Discourse debba scaricare tutte le immagini e consentirebbe al servizio di hosting di immagini di gestire il caricamento lazy. Da lì, puoi iniziare a considerare l’utilizzo di componenti tematici o plugin per pagine autonome per la libreria, collegamenti automatici ai riferimenti dai post degli utenti, ecc.

1 Mi Piace

Non credo che si tratti di hosting, ma di usabilità durante la lettura. Per le persone più orientate allo stile occidentale, questa è una domanda molto simile a quella di mostrare fumetti. E per questo si potrebbero trovare piattaforme adatte, ma sono abbastanza sicuro che anche WordPress possa offrire una soluzione.

E poi la connessione tra contenuti e community/discussione tramite Discourse è totalmente banale.

Ma nell’ecosistema Discourse qualcosa che Discpage offriva, potrebbe essere un’altra soluzione. Ma è rotto.

2 Mi Piace

Sono disponibili lettori online per file di fumetti che caricano i file su richiesta:
GitHub - codedread/kthoom: Comic Book Reader in the Browser ad esempio supporta alwaysOptimizedForStreaming=true che indica a kthoom di renderizzare le pagine immediatamente non appena vengono decompresse e può caricare da URL con richieste di intervallo.

Funzionerebbe anche se si volesse limitare l’accesso ai libri per gruppi di utenti o solo per gli utenti connessi?

1 Mi Piace

Grazie mille a tutti per il vostro aiuto!
Ho trovato una soluzione: ho distribuito un servizio Zfile sul mio server, che funge da unità cloud privata e l’ho configurato per consentire l’accesso agli utenti anonimi.
Posso controllare il numero di file visualizzati per pagina e personalizzare quanti vengono caricati manualmente ogni volta. Le autorizzazioni per i visitatori anonimi sono impostate su “solo anteprima”.
Questo ha risolto diverse sfide chiave per me:
Gestione complessa dei file: è molto più comodo gestire centinaia di migliaia di immagini tramite un’interfaccia di unità cloud.
Anteprime su richiesta: per impostazione predefinita, l’unità elenca solo i file e un’anteprima viene generata solo quando si fa clic su un file. Questo funziona in modo molto simile a PhotoSwipe. (Anche se Zfile ha una modalità per visualizzare in anteprima tutte le immagini contemporaneamente, credo di poterla disattivare in seguito.)
Integrazione con Discourse: ora posso aggiungere un link “Leggi online” nei miei post di Discourse, che apre l’interfaccia dell’unità cloud quando viene cliccato. Ecco come appare: https://openttc.com/t/topic/8
Efficienza delle risorse: questo approccio evita il consumo di risorse non necessario comune con le gallerie tradizionali o le applicazioni di hosting di immagini. Il modo migliore per leggere un libro è caricarne una pagina alla volta, a differenza di un album fotografico in cui ci si aspetta più immagini contemporaneamente. Caricare più pagine di libri contemporaneamente sarebbe anche visivamente confusionario, poiché ogni pagina appare molto simile.
Sto usando Discourse come homepage del mio sito web, gestendo circa 5.000 libri in 31 categorie. Ogni post rappresenta un singolo libro e l’unità Zfile gestisce le singole pagine di contenuto per ciascuno di essi. Questa è la migliore esperienza utente che ho trovato finora, ed è relativamente comoda su desktop, telefoni cellulari e tablet. Spero che questo possa aiutare altri che potrebbero avere esigenze simili.
Un paio di note:
Zfile non è l’unica opzione. Sembra che la sua interfaccia supporti principalmente il cinese, il che è un vantaggio per me. Se avete suggerimenti migliori, fatemelo sapere.
Se in futuro fosse disponibile per Discourse un plugin per girare le pagine in 3D (che simula un’esperienza di sfogliare pagine di libri reali, come quelli disponibili per WordPress), fatemelo sapere anche questo.
Grazie ancora!

4 Mi Piace

Il tuo progetto sembra davvero interessante!

Hai provato a racchiudere le tue immagini in markdown [grid]? Un argomento come 关于“魏伯陽 周易參同契 Cantong qi. Token for the Agreement...”类别 - 魏伯陽 周易參同契 Cantong qi. Token for the Agreement... - OpenTTC sarebbe molto più gestibile.

Personalmente, ho digitalizzato album di foto e li ho salvati in file PDF e caricati in argomenti su Discourse. Quindi il componente tema di anteprima PDF inline consente ai miei membri di scorrere direttamente in Discourse. Il vantaggio di questo è che i libri rimangono intatti.

2 Mi Piace

Grazie mille! Signore
Recentemente, ho lavorato allo sviluppo, passando da un server all’altro. Pertanto, il link openttc.com a cui si fa riferimento in questo post potrebbe essere instabile.
Una volta terminato il mio lavoro attuale, pubblicherò un link aggiornato in questo thread per mostrare i risultati della nostra discussione (incorporando Zfile nei post di Discourse, il che potrebbe essere utile a qualcuno in futuro).
Infatti, dopo molte riflessioni, ho temporaneamente abbandonato il mio approccio precedente.
Il motivo è che è troppo complicato da gestire. Se in seguito aggiungerò nuovi contenuti, dovrò gestirli separatamente sia nel sistema Discourse che in Zfile e sincronizzarli manualmente.
Attualmente sto cercando di incorporare i contenuti direttamente nei post come PDF. Alcuni PDF individuali superano i 2 GB di dimensione, quindi ci sono ancora un bel po’ di problemi da affrontare con calma…
Grazie a tutti per la vostra attenzione. Questa community è davvero adorabile!
Auguro a voi buona salute e felicità alle vostre famiglie!

2 Mi Piace

Grazie, e lo stesso vale per te e i tuoi! :abbracci:

Chiuderò questo argomento poiché sembra che tu sia riuscito a trovare delle buone opzioni per risolvere il tuo problema. Se in futuro dovessi incontrare di nuovo delle difficoltà, potrai aprire nuovi argomenti.