Show HN: Calibre uyumlu e-kitap yönetim uygulaması Citadel
(github.com/every-day-things)- Citadel, Calibre’ın okuyabileceği bir e-kitap kütüphanesini korurken daha iyi UX ve daha hızlı bir kullanım hissi hedefleyen bir e-kitap kütüphanesi yönetim uygulamasıdır
- Temel hedefleri Calibre geriye dönük uyumluluğu, kullanımı kolay ve iyi görünen bir arayüz, Calibre’dan çok daha hızlı ve asla daha yavaş olmayan performanstır
- Şu anda erken aşama yazılım olduğu için hata ve özellik eksikleri beklenmelidir; çökebilir, temel işlevler eksik olabilir veya e-kitap kütüphanenize zarar verebilir
- Citadel bir e-kitap okuyucu veya e-kitap içerik düzenleyicisi değildir; dosyaları varsayılan uygulamayla açar ve başlık gibi metadata yönetimine odaklanır
- Kararlı derlemeler Releases’tan, geliştirme derlemeleri GitHub Actions’tan alınabilir; geliştirme için Bun ve Rust gerekir
Citadel’in yapmaya çalıştığı şey
- Citadel, e-kitap kütüphanelerini yönetmeye yarayan bir uygulamadır ve Calibre ile geriye dönük uyumluluğu temel varsayım olarak alır
- Citadel’in değiştirdiği kütüphaneler Calibre tarafından okunabilmelidir
- Projenin üç hedefi vardır
- Calibre geriye dönük uyumluluğu: Citadel’in düzenlediği kütüphaneleri Calibre okuyabilmelidir
- İyi UX: Kullanımı kolay olmalı ve iyi görünmelidir
- Performans: Calibre’dan çok daha hızlı hissettirmeli ve asla daha yavaş olmamalıdır
Yapmadıkları
- Citadel bir e-kitap okuyucu değildir
- Zaten iyi e-kitap okuyucu uygulamaları vardır; Citadel dosyaları kullanıcının varsayılan uygulamasında açar
- Citadel bir e-kitap içerik düzenleyicisi değildir
- Başlık gibi metadata değil de e-kitap gövde içeriğini düzenlemek istiyorsanız bir alternatif değildir
- Calibre ile %100 özellik eşitliği hedeflemez
- Bu, ağırlıklı olarak eklenti alanı için geçerlidir
- Calibre’ın bazı ileri seviye özelliklerini geliştirmeme olasılığı vardır
Mevcut durum ve indirme
- Citadel çok erken geliştirme aşamasındadır
- Çökebilir
- Temel işlevler eksik olabilir
- E-kitap kütüphanenize zarar verebilir
- Citadel’i Calibre kütüphanenizle kullanacaksanız düzenli yedekleme gerekir
- Yarı kararlı derlemeler Releases üzerinden alınabilir
- Geliştirme derlemeleri GitHub Actions üzerinden alınabilir
- Hangi sürüm olursa olsun, kullanım sırasında karşılaşılan sorunların veya çökmelerin bildirilmesi istenir
macOS kurulumunda dikkat edilmesi gerekenler
- macOS derlemesi henüz imzalı değildir
Citadel.appdoğrudan açılırsa dosyanın “damaged” olduğuna dair bir uyarı gösterilir- Dosyanın Quarantine özniteliği kaldırılarak çözülebilir
- İlgili rehber: Removing the Quarantine attribute from the file
- Örnek komut:
xattr -d com.apple.quarantine /Applications/Citadel.app/
Geliştirme ve derleme
- Geliştirme ön koşulları Bun ve Rust kurulumudur
- Paket kurulumu:
bun install - Geliştirme modunda çalıştırma:
bun run dev # or just bun dev - Lint ve format komutları şöyledir
- Tüm kodu formatlama:
bun format - Tüm kod formatını kontrol etme:
bun format:check - Tüm kodu lint’leme:
bun lint - Backend formatlama:
bun format:backend - Backend lint’leme:
bun lint:backend - Frontend formatlama:
bun format:web - Frontend lint’leme:
bun lint:web
- Tüm kodu formatlama:
- Uygulama önizlemesi backend olmadan çalıştırılabilir
- Rust backend’i yoktur ama var olduğu varsayıldığı için hata gösterilir
bun dev:app - Production derlemesi, geliştirme ön koşulları sağlandıktan sonra şu komutlarla oluşturulur
bun install bun run build
Güncellemeler ve ilgili projeler
- Citadel, uygulama güncellemelerini denetleyebilir ve istendiğinde kurabilir
- Otomatik güncelleme denetimi Settings içindeki
Auto updates: On/Offbölümünden devre dışı bırakılabilir - Kurulum her zaman açıkça başlatılır; UI metni
Install and restartşeklindedir - Bakımcı ayarları ve sürüm yayımlama iş akışı ayrıntıları
docs/updater-and-releases.mdiçinde yer alır - Citadel, Calibre’ı referans noktası olarak alır ve Calibre redesign Figma prototype’tan ilham almıştır
1 yorum
Hacker News yorumları
“Calibre Web gibi mevcut projelere katkıda bulunmak yerine neden yeni bir uygulama yaptın?” sorusu gelebilir; yanıtım sadece yapmak istediğim için
Şimdilik bu bir hobi projesi; mevcut projeyi genişletmektense, kaba saba da olsa keyif alarak yazılım üretmekle daha çok ilgileniyorum. Citadel, Calibre ile geriye dönük uyumlu olacak şekilde tasarlandı; bu yüzden Calibre Web’i kullanmaya devam etmek de mümkün.
Backend’de Calibre ile temas eden kodu da ayrı bir kütüphane olarak ayırdım; ileride başka projelerde de kullanılabilir hale getirmeyi düşünüyorum. Bir Calibre kütüphanesi CLI’ı da mümkün gibi görünüyor.
“Pek çok alanda tekerleği yeniden icat etmeyin demek neredeyse genel kabul görmüş bir akıl gibi görülür. Ama bazen yine de bunu yapmanızı tavsiye etmek isterim. Sırf o süreç bile sizi daha iyi yapar; sonunda daha iyi tekerlekler de böyle ortaya çıkar. Çünkü insanlar sadece dener.”
https://www.youtube.com/watch?v=YOZnqjHkULc
Calibre, özelliklerini bilseniz bile kullanması epey acı veren bir şey; bu da ister büyükanne-büyükbabama, ister teknolojiden anlayan birine olsun önermeyi zorlaştırıyor.
Yine de projenin başarılı olmasını dilerim.
[0] https://www.cs.cmu.edu/~awb/linux.history.html
Daha açık, modern ve barındırılan kütüphane fikrini baştan hesaba katan sağlam bir rakip olsa hemen ona geçerim.
Bazen Calibre sadece daha iyi görünseydi insanların ne kadar müthiş olduğunu fark edeceğini düşünüyorum. Açıkçası o kadar da kötü değil ve kişisel olarak seviyorum, ama insanlar dış görünüşün ötesine geçemiyor gibi.
Sürekli çöküyordu ve süreç o kadar yavaştı ki ayrı bir makineye taşıdım. Web arayüzünde arama yapmayı denedim; o da çok yavaştı.
Sezgisel olmayan UI’dan bahsetmiyorum bile. Kütüphane işlevi gördüğü söylenen bir şey için, gerçek bir kütüphanedeki yazar adına göre alfabetik listeleme seviyesine bile yaklaşamıyor.
Çoğu kişinin 10–300 kitap civarında olacağını anlıyorum, ama ben birkaç büyük kütüphaneyi Calibre ile kullanmaya çalıştım ve gerçekten dayanamadı.
Yalnızca SQLite’ta ısrar etme kararı da yardımcı olmuyor. 2016 civarında bir PR açmıştım, ama bakımcı veritabanı katmanını değiştirmeye ya da değiştirilebilir hale getirmeye oldukça sert şekilde karşı çıktı.
Üstelik birkaç saniyede bir calibre-web konteyneri ayağa kaldırıp temiz bir UI ve OPDS elde edebiliyorken, neden özellikle o “estetik anlayışa” katlanmak gerektiğini bilmiyorum.
Sezgisel değil ve UI/UX’i oldukça kötü. Güçlü uygulamaların sık yaşadığı laneti aynen yaşıyor.
Yine de bugün tekrar deneyeceğim ve alışıp alışamayacağıma bakacağım. Özellikle ileri düzey kullanıcılar için ücretsiz bir ürüne göre gerçekten harika.
Güzel proje. Calibre’in özelliklerini seviyorum ama arayüzü beni de epey bunaltıyor; bu yüzden Apple Music öncesi iTunes ile iBooks’un karışımı gibi bir arayüz tasarlamaya başladım
Şimdilik yalnızca tek bir ekran yaptım ama buradan görülebilir: https://www.figma.com/file/m8qaYbPSnxiFPDPbuYtz2w/Calibre-re...
Temel soru, Calibre’in ana özelliklerini macOS’e yerelmiş gibi hissettiren bir arayüzde nasıl gösterebileceğimizdi
Çapraz platform hedeflenmiyorsa, vaktim olduğunda bunu Rust arka ucu olan bir SwiftUI uygulaması olarak da yapmayı deneyebilirim
Calibre geliştirmesini takip edip bakımını yapmak zor olabilir ama eğlenceli bir hobi projesi gibi görünüyor
Özellikle Kemie Guaida’nın[1] Reddit’te paylaştığı yeniden tasarım büyük bir tasarım ilhamı oldu; depoda da kredi vermem gerekiyor, yakında ekleyeceğim: https://old.reddit.com/r/Calibre/comments/udzumn/testing_a_n...
Projenin genel görünümünü burada görebilirsiniz: https://www.figma.com/file/g4ntqXWa6C0PRGrG3WjyXM/Calibre-pr...
[1]: https://kemielikes.design/
Dün fark ettim ki Ubuntu 22.04’te Kobo okuyucuyu bağladıktan sonra epub dosyalarını
/media/oakhaven/koboreaderbağlama noktasındakiroot/dizinine doğrudan kopyalamak yeterli. Sonra cihazın kitap listesinde görünüyorlarNedense Kobo’ya kitap yüklemenin karmaşık olduğunu sanıyordum ve dizüstünden Kobo’ya kitap aktarırken sadece Calibre kullanıyordum
Calibre’in birçok başka özelliği olduğunu biliyorum ama arayüzünü sevmiyordum; artık Calibre ya da benzer bir uygulama kullanmak zorunda olmamak güzel
Özel bir biçim gerekmiyor ve ePub gibi standart biçimler iyi çalışıyor
Bu yüzden Kindle’ın nasıl hâlâ bu kadar popüler kaldığını merak ediyordum. İlk giren avantajı mı bilmiyorum ama ePub ve PDF okuyamayan bir e-kitap okuyucu, MP3 ve AAC çalamayan bir müzik çalar gibi geliyor
[1]: https://pgaskin.net/kepubify/
Sanırım kitapları önce USB ile yüklemiş, günlük haberleri ve ek kitapları rsync ile senkronize etmiştim. Bazı içerikler otomatik toplama ya da e-posta aboneliği gibi otomatik üretilip dizine düşüyordu; yeni satın alınan kitapları kopyalamak gibi elle eklediklerim de vardı
Aslında çok karmaşık bir sorun değil ama Calibre, kitapları belirli bir klasör yapısına kopyalamaktan çok daha fazlasını yapıyor
Sadece klasörü açıp kopyala/yapıştır yapmaktan gerçekten daha kolay mı bilmiyorum ama Citadel, cihazda hangi kitapların olduğunu algılarken Calibre’in kullandığı metadata dosyasını güncelliyor; böylece klasördeki tüm dosyaları okuması gerekmiyor
İyi görünüyor. Daha geçen hafta Calibre’i yeniden denemeye çalıştım ve o arayüz denen kara deliğe düştüm. UI/UX çalışması bağışlamayı düşündüm ama yıllar sürecek bir proje olacak gibi geldi
Onun yerine bu projenin UI/UX tarafına yardımcı olabilirim belki
İnanılmaz bir iş çıkardı ama çok güçlü tercihleri olan insanlardan biri; başka biri çalışmayı teklif etse bile bazı konularda hızlı, keyfî ve tuhaf biçimde düşmanca davranabiliyor
Birkaç ay kitap okuyup sonra içe aktarma sürecini tekrar ediyorum
Açıkçası merak ediyorum: Calibre kadar özellik zengini olup bunları çok daha iyi ve kolay bir şekilde sunan yerel akıllı telefon uygulaması örneği var mı?
Bir hobi projesinin gerçekten yayımlanmış olması hoşuma gitti. Görünüşü de temiz. Ayrıca calibre CLI kesinlikle memnuniyetle karşılanacak gibi. Menülerde beş seviye tıklayıp ilerlemekten nefret ediyorum
“Okuyucu” ve “düzenleyici” alanları açıkça hedef değilse, Citadel’in kullanıcı için gerçekte ne yaptığını merak ediyorum. Esas olarak kitapları görüntülemek, sıralamak ve tıklamak için bir portal mı? Daha fazla özellik düşündüğünüz bir yol haritası var mı?
Citadel kitap başlığı, yazar ve ileride etiketler ile kullanıcı tanımlı sütunlar gibi metadata düzenlemeyi destekliyor ve bir kısmını şimdiden destekliyor. Bu kesin. Cihaz eşitlemesi de zamanla eklenecek; çevrim içi kaynaklardan metadata indirme özelliği de eklenecek
Ancak kitap içeriğini düzenleme veya yerleşik bir e-kitap okuyucu ekleme planı yok. Zaten çok iyi e-kitap uygulamaları ve cihazları var; epub düzenlemenin koleksiyon yönetimine kıyasla yaygın kullanıldığını düşünmüyorum
Yol haritası yok, ama geri bildirimlere ve fikirlere her zaman açığız
Ek olarak biçim dönüştürme ve DRM kaldırma gibi özellikler de muhtemelen eklenecek. İdealde bunları crate veya eklenti olarak uygulayıp genişletmeyi kolaylaştırmak istiyorum
ebook-convertadlı bir CLI var. epub, pdf, azw3, mobi gibi birçok dosya biçimini destekliyorÖrnek:
ebook-convert file.epub file.azw3Gerçekten çok hoş görünüyor; incelemeyi düşünüyorum. İronik biçimde kısa süre önce aynı stack’le, yani Rust + Tauri + Svelte ile sesli kitap yönetimi için bir masaüstü uygulaması yaptım
İlgilenen olur mu diye tanıtayım: https://gitlab.com/fonner/audiobook-locker#audiobook-locker
Bu proje için Svelte ve Tauri’yi neden seçtiğini merak ediyorum. Zaten aşina mıydın?
Konu dışı ama bu çalıştırma biçimi günümü güzelleştirdi
bun dev -- -- -- -- --server ...İlginç. Ben de bir süre benzer bir fikirle benzer bir proje üzerinde çalışmaya başlamıştım, ama native uygulama yerine SvelteKit ve tarayıcıyı seçmiştim
https://github.com/project-kiosk/kiosk
Bitirecek motivasyonu yeterince uzun süre koruyamıyorum
Citadel hakkında kısa bir yazı: https://denhoff.ca/posts/replacing-calibre