Hallo,
Mein Projekt ist der Aufbau einer Gemeinschaft, die sich auf die Tao Te Ching-Kultur konzentriert. Ich habe über 5.000 alte Bücher, die ich anzeigen muss, und habe sie alle in das AVIF-Bildformat komprimiert. Einige dieser Bücher enthalten bis zu 2.500 AVIF-Bilder.
Meine Frage ist: Wie kann ich diese Bilder in einen einzigen Discourse-Beitrag einfügen, damit meine Benutzer sie online lesen können?
Ich suche nach einer Lösung, vielleicht einem Plugin, das den Benutzern innerhalb eines Beitrags die folgenden Funktionen bietet:
Einfaches Hin- und Herblättern zwischen den Bildern (wie beim Umblättern von Seiten).
Die Möglichkeit, direkt zu einer bestimmten Bildnummer zu springen.
Entscheidend ist, dass die Bilder „lazy-loaded“ werden; sie sollen erst geladen werden, wenn der Benutzer zu ihnen navigiert, nicht alle auf einmal, wenn der Beitrag geöffnet wird.
Meine Dateien sind alle in numerischer Reihenfolge und im AVIF-Format. Jedes Buch befindet sich in einem eigenen Ordner. Die durchschnittliche Bildgröße beträgt 150 KB, und Bücher haben normalerweise zwischen 300 und 1.000 Seiten, wobei einige Ausnahmen 2.500 Seiten erreichen.
Warum habe ich diese Anforderung?
Meine Büchersammlung ist riesig und übersteigt derzeit 350 GB. Die Komprimierung in AVIF war notwendig, um den Speicherplatz zu verwalten.
Formate wie AVIF und WebP lassen sich nicht einfach in eine einzige PDF-Datei packen.
Das Verpacken der Bücher als ZIP- oder RAR-Archive verhindert das Online-Lesen. Die Verwendung von E-Book-Formaten wie CBZ würde eine zu hohe Belastung für den Server darstellen.
Vielen Dank für Ihre Hilfe!
Ich sage das selten, aber ich bin mir nicht sicher, ob Discourse ein gutes Werkzeug für Ihr Problem ist.
Wenn Sie es trotzdem wollen, würde ich wahrscheinlich etwas tun, wie ein Thema pro Buch erstellen und vielleicht einen Beitrag pro Kapitel, wenn das irgendeinen Sinn ergibt (vielleicht gibt es keine Kapitel?).
Dann könnten Sie ein Import-Skript verwenden, das den Verzeichnisnamen liest und ein Thema erstellt und dann so etwas tut wie
files.each do |f|
u=uploader.create_upload(1, f.path, f.filename)
raw += uploader.html_for_upload(u, f.filename)
end
Und dann würden Sie dieses Raw verwenden, um ein Thema zu erstellen.
Sie müssten im Verzeichnis der Import-Skripte nach einigen Beispielen für die Erstellung von Themen suchen, aber das ist eine grobe Idee.
Und das würde dann alle Bilder in einem einzigen Thema/Beitrag unterbringen. Und dann gibt es einige Werkzeuge, die es Ihnen erlauben, durch eine Menge von Bildern zu scrollen, glaube ich. Vielleicht hat jemand anderes mehr darauf geachtet als ich.
Wie bereits erwähnt, ist Discourse wahrscheinlich nicht hilfreich, zumindest nicht beim Hosten Ihrer Bibliothek. Stattdessen sollten Sie in Erwägung ziehen, neben Ihrer Discourse-Instanz einen separaten Bild-Hosting-Dienst zu nutzen.
Nachfolgend finden Sie eine Liste von selbst gehosteten Fotogalerie-Diensten, die möglicherweise viele der gewünschten Funktionen bieten: fertige Webanwendung, benutzerfreundliche und mobilfreundliche Oberfläche, verzeichnisbasierte Alben, Suchfunktionen usw.
Sie können den Bild-Hosting-Dienst separat betreiben und die URLs davon als eingebettete Iframes in Discourse verwenden. Dies würde verhindern, dass Ihre Discourse-Datenbank alle Bilder herunterladen muss, und dem Bild-Hosting-Dienst die Handhabung des Lazy Loading überlassen. Von dort aus können Sie mit der Verwendung von Theme-Komponenten oder Plugins für eigenständige Seiten für die Bibliothek beginnen, Referenzen aus Benutzerbeiträgen automatisch verknüpfen usw.
Ich glaube nicht, dass es sich hier um ein Hosting-Problem handelt, sondern um die Benutzerfreundlichkeit beim Lesen. Für westlich orientierte Menschen ist dies eine sehr ähnliche Frage wie das Zeigen von Comics. Und dafür gibt es vielleicht geeignete Plattformen, aber ich bin ziemlich sicher, dass selbst WordPress eine Lösung anbieten kann.
Und dann ist die Verbindung von Inhalt und Community/Diskussion durch Discourse absolut trivial.
Aber im Discourse-Ökosystem könnte etwas, das Discpage angeboten hat, eine weitere Lösung sein. Aber es ist kaputt.
Es gibt Online-Reader für Comic-Dateiformate, die Dateien bei Bedarf laden:
GitHub - codedread/kthoom: Comic Book Reader in the Browser unterstützt beispielsweise alwaysOptimizedForStreaming=true, was kthoom anweist, Seiten sofort nach dem Dekomprimieren zu rendern und über URLs mit Bereichsanfragen zu laden.
Würde das auch funktionieren, wenn man den Zugriff auf Bücher nach Benutzergruppen oder nur für angemeldete Benutzer beschränken möchte?
Vielen Dank für all Ihre Hilfe!
Ich habe eine Lösung gefunden: Ich habe einen Zfile-Dienst auf meinem Server bereitgestellt, der als privates Cloud-Laufwerk fungiert, und ihn so konfiguriert, dass er anonymen Benutzern den Zugriff erlaubt.
Ich kann die Anzahl der pro Seite angezeigten Dateien steuern und anpassen, wie viele jedes Mal manuell geladen werden. Die Berechtigungen für anonyme Besucher sind auf „nur Vorschau“ eingestellt.
Dies hat mehrere wichtige Herausforderungen für mich gelöst:
Komplexe Dateiverwaltung: Es ist viel einfacher, Hunderttausende von Bildern über eine Cloud-Drive-Oberfläche zu verwalten.
On-Demand-Vorschauen: Standardmäßig listet das Laufwerk nur die Dateien auf, und eine Vorschau wird erst generiert, wenn auf eine Datei geklickt wird. Dies funktioniert ähnlich wie PhotoSwipe. (Obwohl Zfile einen Modus hat, um alle Bilder auf einmal vorzuschauen, glaube ich, dass ich ihn später deaktivieren kann.)
Discourse-Integration: Ich kann jetzt einen „Online lesen“-Link in meine Discourse-Beiträge einfügen, der beim Klicken die Cloud-Drive-Oberfläche öffnet. Es sieht so aus: https://openttc.com/t/topic/8
Ressourceneffizienz: Dieser Ansatz vermeidet den unnötigen Ressourcenverbrauch, der bei herkömmlichen Galerien oder Bildhosting-Anwendungen üblich ist. Der beste Weg, ein Buch zu lesen, ist, eine Seite nach der anderen zu laden, im Gegensatz zu einem Fotoalbum, bei dem man mehrere Bilder auf einmal erwartet. Das gleichzeitige Laden mehrerer Buchseiten wäre auch visuell verwirrend, da jede Seite sehr ähnlich aussieht.
Ich verwende Discourse als Homepage meiner Website und verwalte etwa 5.000 Bücher in 31 Kategorien. Jeder Beitrag repräsentiert ein einzelnes Buch, und das Zfile-Laufwerk verwaltet die einzelnen Inhaltsseiten für jedes davon. Dies ist die beste Benutzererfahrung, die ich bisher gefunden habe, und sie ist relativ praktisch auf Desktops, Mobiltelefonen und Tablets. Ich hoffe, dies kann anderen helfen, die ähnliche Bedürfnisse haben könnten.
Ein paar Anmerkungen:
Zfile ist nicht die einzige Option. Es scheint, dass seine Benutzeroberfläche hauptsächlich Chinesisch unterstützt, was für mich von Vorteil ist. Wenn Sie bessere Empfehlungen haben, lassen Sie es mich bitte wissen.
Wenn in Zukunft ein 3D-Seitenumschlag-Plugin (das eine echte Buchumschlag-Erfahrung simuliert, wie sie für WordPress verfügbar sind) für Discourse verfügbar wird, lassen Sie es mich bitte ebenfalls wissen.
Nochmals vielen Dank!
Ihr Projekt sieht wirklich interessant aus!
Haben Sie versucht, Ihre Bilder in [grid] Markdown zu verpacken? Ein Thema wie 关于“魏伯陽 周易參同契 Cantong qi. Token for the Agreement...”类别 - 魏伯陽 周易參同契 Cantong qi. Token for the Agreement... - OpenTTC wäre viel besser zu handhaben.
Ich persönlich habe Fotoalben digitalisiert und sie in PDF-Dateien gespeichert und in Themen in Discourse hochgeladen. Dann lässt die Inline-PDF-Vorschau-Theme-Komponente meine Mitglieder sie direkt in Discourse durchscrollen. Der Vorteil dabei ist, dass die Bücher intakt bleiben.
Vielen Dank! Sehr geehrter Herr
Kürzlich habe ich an der Entwicklung gearbeitet und zwischen mehreren Servern gewechselt. Daher ist der in diesem Beitrag erwähnte Link openttc.com möglicherweise instabil.
Sobald ich meine aktuelle Arbeit abgeschlossen habe, werde ich einen aktualisierten Link in diesem Thread veröffentlichen, um die Ergebnisse unserer Diskussion zu präsentieren (Einbetten von Zfile in Discourse-Beiträge, was für jemanden in Zukunft nützlich sein könnte).
Tatsächlich habe ich nach langem Überlegen meinen bisherigen Ansatz vorübergehend aufgegeben.
Der Grund dafür ist, dass die Verwaltung zu umständlich ist. Wenn ich später neue Inhalte hinzufüge, müsste ich diese sowohl im Discourse- als auch im Zfile-System separat verwalten und manuell synchronisieren.
Ich versuche derzeit, Inhalte direkt als PDFs in Beiträge einzubetten. Einige einzelne PDFs sind über 2 GB groß, daher gibt es noch eine Reihe von Problemen, die langsam behoben werden müssen …
Vielen Dank für Ihre Aufmerksamkeit. Diese Community ist wirklich wunderbar!
Ich wünsche Ihnen gute Gesundheit und Glück für Ihre Familien!
Danke, und das Gleiche für Sie und Ihre Lieben! ![]()
Ich werde dieses Thema schließen, da Sie anscheinend einige gute Optionen zur Lösung Ihres Problems gefunden haben. Wenn Sie in Zukunft wieder Herausforderungen haben, können Sie neue Themen eröffnen.