Bonjour,
Mon projet consiste à construire une communauté axée sur la culture du Tao Te Ching. Je possède plus de 5 000 livres anciens que je dois afficher, et je les ai tous compressés au format d’image AVIF. Certains de ces livres contiennent jusqu’à 2 500 images AVIF.
Ma question est : Comment puis-je insérer ces images dans un seul message Discourse pour permettre à mes utilisateurs de les lire en ligne ?
Je recherche une solution, peut-être un plugin, qui offrirait les fonctionnalités suivantes aux utilisateurs au sein d’un message :
La possibilité de naviguer facilement d’une image à l’autre (comme tourner les pages).
La possibilité de sauter directement à un numéro d’image spécifique.
Crucialement, les images doivent être chargées paresseusement ; elles ne devraient se charger que lorsque l’utilisateur y navigue, et non toutes en même temps à l’ouverture du message.
Mes fichiers sont tous organisés par ordre numérique et sont au format AVIF. Chaque livre est contenu dans son propre dossier. La taille moyenne des images est de 150 Ko, et les livres comportent généralement entre 300 et 1 000 pages, avec quelques exceptions atteignant 2 500 pages.
Pourquoi ai-je cette exigence ?
Ma collection de livres est vaste, dépassant actuellement 350 Go. La compression en AVIF était nécessaire pour gérer le stockage.
Les formats comme AVIF et WebP ne peuvent pas être facilement regroupés en un seul fichier PDF.
L’empaquetage des livres sous forme d’archives ZIP ou RAR empêche la lecture en ligne. L’utilisation de formats de livres électroniques comme CBZ créerait une charge trop importante sur le serveur.
Merci beaucoup pour votre aide !
Je dis rarement cela, mais je ne suis pas sûr que Discourse soit un bon outil pour votre problème.
Si vous le souhaitez quand même, je ferais probablement quelque chose comme créer un sujet par livre et peut-être un message par chapitre, si cela a un sens (peut-être qu’il n’y a pas de chapitres ?).
Ensuite, vous pourriez utiliser un script d’importation qui lirait le nom du répertoire et créerait un sujet, puis ferait quelque chose comme
files.each do |f|
u=uploader.create_upload(1, f.path, f.filename)
raw += uploader.html_for_upload(u, f.filename)
end
Et ensuite, vous utiliseriez ce raw pour créer un sujet.
Vous devrez regarder dans le répertoire des scripts d’importation pour trouver des exemples de création de sujets, mais c’est une idée générale.
Et cela mettrait alors toutes les images dans un seul sujet/message. Et il existe des outils qui vous permettent de faire défiler un tas d’images, je pense. Peut-être que quelqu’un d’autre y a prêté plus d’attention que moi.
Comme indiqué, Discourse n’est probablement pas utile, du moins pour héberger votre bibliothèque. Au lieu de cela, vous pourriez envisager d’utiliser un service d’hébergement d’images distinct en parallèle de votre instance Discourse.
Vous trouverez ci-dessous une liste de services de galeries de photos auto-hébergés qui pourraient offrir de nombreuses fonctionnalités que vous recherchez : application web prête à l’emploi, interface conviviale pour les utilisateurs et les mobiles, albums basés sur des répertoires, capacités de recherche, etc.
Vous pouvez exécuter le service d’hébergement d’images séparément et utiliser les URL de celui-ci comme iframes intégrées sur Discourse. Cela éviterait à votre base de données Discourse d’avoir à télécharger toutes les images et laisserait le service d’hébergement d’images gérer le chargement différé. À partir de là, vous pouvez commencer à envisager d’utiliser des composants de thème ou des plugins pour des pages autonomes pour la bibliothèque, lier automatiquement les références des publications des utilisateurs, etc.
Je ne pense pas qu’il s’agisse d’un problème d’hébergement, mais d’utilisabilité lors de la lecture. Pour les personnes au style plus occidental, c’est une question très similaire à celle de la présentation de bandes dessinées. Et pour cela, on peut trouver des plateformes adaptées, mais je suis tout à fait convaincu que même WordPress peut offrir une solution.
Ensuite, la connexion du contenu et de la communauté/discussion par Discourse est totalement triviale.
Mais dans l’écosystème Discourse, quelque chose comme ce que proposait Discpage pourrait être une autre solution. Mais c’est cassé.
Il existe des lecteurs en ligne de fichiers de bandes dessinées qui chargent les fichiers à la demande :
GitHub - codedread/kthoom: Comic Book Reader in the Browser par exemple prend en charge alwaysOptimizedForStreaming=true qui indique à kthoom de rendre les pages immédiatement dès leur décompression et peut charger à partir d’URL avec des requêtes de plage.
Cela fonctionnerait-il également si l’on souhaite restreindre l’accès aux livres par groupes d’utilisateurs ou uniquement aux utilisateurs connectés ?
Merci à tous pour votre aide !
J’ai trouvé une solution : j’ai déployé un service Zfile sur mon serveur, qui agit comme un disque cloud privé, et je l’ai configuré pour autoriser l’accès aux utilisateurs anonymes.
Je peux contrôler le nombre de fichiers affichés par page et personnaliser le nombre de fichiers chargés manuellement à chaque fois. Les autorisations pour les visiteurs anonymes sont définies sur « aperçu uniquement ».
Cela a résolu plusieurs défis majeurs pour moi :
Gestion complexe des fichiers : Il est beaucoup plus pratique de gérer des centaines de milliers d’images via une interface de disque cloud.
Aperçus à la demande : Par défaut, le disque ne liste que les fichiers, et un aperçu n’est généré que lorsqu’un fichier est cliqué. Cela fonctionne un peu comme PhotoSwipe. (Bien que Zfile dispose d’un mode pour prévisualiser toutes les images en même temps, je pense pouvoir le désactiver plus tard.)
Intégration Discourse : Je peux maintenant ajouter un lien « Lire en ligne » dans mes publications Discourse, qui ouvre l’interface du disque cloud lorsqu’il est cliqué. Cela ressemble à ceci : https://openttc.com/t/topic/8
Efficacité des ressources : Cette approche évite la consommation inutile de ressources courante avec les galeries traditionnelles ou les applications d’hébergement d’images. La meilleure façon de lire un livre est de charger une page à la fois, contrairement à un album photo où l’on s’attend à plusieurs images à la fois. Charger plusieurs pages de livre simultanément serait également visuellement déroutant, car chaque page se ressemble beaucoup.
J’utilise Discourse comme page d’accueil de mon site Web, gérant environ 5 000 livres dans 31 catégories. Chaque publication représente un seul livre, et le disque Zfile gère les pages de contenu individuelles pour chacun d’eux. C’est la meilleure expérience utilisateur que j’ai trouvée jusqu’à présent, et elle est relativement pratique sur les ordinateurs de bureau, les téléphones mobiles et les tablettes. J’espère que cela pourra aider d’autres personnes qui pourraient avoir des besoins similaires.
Quelques notes :
Zfile n’est pas la seule option. Il semble que son interface prenne principalement en charge le chinois, ce qui est un avantage pour moi. Si vous avez de meilleures recommandations, n’hésitez pas à me le faire savoir.
Si un plugin de retournement de page 3D (simulant une expérience de retournement de page réelle, comme ceux disponibles pour WordPress) devenait disponible pour Discourse à l’avenir, faites-le moi savoir également.
Merci encore !
Votre projet semble très intéressant !
Avez-vous essayé d’encapsuler vos images dans le markdown [grid] ? Un sujet comme 关于“魏伯陽 周易參同契 Cantong qi. Token for the Agreement...”类别 - 魏伯陽 周易參同契 Cantong qi. Token for the Agreement... - OpenTTC serait beaucoup plus gérable.
Personnellement, j’ai numérisé des albums photo, les ai enregistrés dans des fichiers PDF et les ai téléchargés dans des sujets sur Discourse. Ensuite, le composant de thème de prévisualisation PDF intégrée permet aux membres de les parcourir directement dans Discourse. L’avantage est que les livres restent intacts.
Merci beaucoup ! Monsieur
Récemment, j’ai travaillé sur le développement, en passant d’un serveur à l’autre. Par conséquent, le lien openttc.com référencé dans ce message pourrait être instable.
Une fois mon travail actuel terminé, je publierai un lien mis à jour dans ce fil de discussion pour présenter les résultats de notre discussion (intégration de Zfile dans les messages Discourse, ce qui pourrait être utile à quelqu’un à l’avenir).
En fait, après mûre réflexion, j’ai temporairement abandonné mon approche précédente.
La raison est qu’elle est trop compliquée à gérer. Si j’ajoute du nouveau contenu plus tard, je devrai le gérer séparément dans les systèmes Discourse et Zfile et les synchroniser manuellement.
J’essaie actuellement d’intégrer le contenu directement dans les messages sous forme de PDF. Certains PDF individuels dépassent 2 Go, il y a donc encore un tas de problèmes à résoudre lentement…
Merci à tous de votre attention. Cette communauté est vraiment adorable !
Je vous souhaite une bonne santé et du bonheur à vos familles !
Merci, et pareil pour vous et les vôtres ! ![]()
Je vais fermer ce sujet car il semble que vous ayez trouvé de bonnes options pour résoudre votre problème. Si vous rencontrez à nouveau des difficultés à l’avenir, vous pourrez créer de nouveaux sujets.