Kitap alt gruplarını yönetim, örneğin “tür”¶
Bazı insanlar kitaplıklarındaki kitapları alt dizinlere benzer şekilde alt gruplara düzenlemek isterler. En çok verilen yanıt tür sıralı dizisi oluşturmak istemeleridir, ama başka bir sürü sebep de olabilir. Bir kullanıcı ders kitaplarını konu ve ders numarasına göre düzenlemenin yolunu sordu. Bir başkası hediyeleri konu ve alıcıya göre saklamak istedi. Bu klavuz bu gönderinin devamında tür örneği üzerinden devam edecek.
Before going on, please note that we are not talking about folders on the hard disk. Subgroups are not file folders. Books will not be copied anywhere. calibre’s library file structure is not affected. Instead, we are presenting a way to organize and display subgroups of books within a calibre library.
Tür gibi alt gruplar için yaygın olarak sağlanan gereksinimler:
Bir alt grup (örn., tür) kitap içermelidir (göstermelidir), kitap kategorileri değil. Alt grupları calibre kullanıcı kategorilerinden ayıran budur.
Bir kitap birden çok alt grup içinde olabilir (tür). Bu alt grupları fiziksel dosya dizinlerden ayırır.
Al gruplar (türler) bir sıralı dizi oluşturmalıdır; alt gruplar başka alt gruplar içerebilir.
Tags give you the first two. If you tag a book with the genre then you can use the Tag browser (or search) to find the books with that genre, giving you the first. Many books can have the same tag(s), giving you the second. The problem is that tags don’t satisfy the third requirement. They don’t provide a hierarchy.
The calibre hierarchy feature gives you the third – the ability to see the genres in a ‘tree’ and the ability to easily search for books in genre or sub-genre. For example, assume that your genre structure is similar to the following:
Genre
. History
.. Japanese
.. Military
.. Roman
. Mysteries
.. English
.. Vampire
. Science Fiction
.. Alternate History
.. Military
.. Space Opera
. Thrillers
.. Crime
.. Horror
etc.
By using the hierarchy feature, you can see these genres in the Tag browser in tree form, as shown in the screen image. In this example the outermost level (Genre) is a custom column that contains the genres. Genres containing sub-genres appear with a small triangle next to them. Clicking on that triangle will open the item and show the sub-genres, as you can see with History and Science Fiction.
Bir türe tıklamak o türdeki ya da onun alt türlerindeki tüm kitapları arar. Örneğin, Bilim Kurguya tıklamak tüm üç alt türü de verebilir, Alternatif Tarih, Askeri, Uzay Operası. Alternatif Tarih’e tıklamak bu türdeki kitapları verir, Askeri ve Uzay Operası türlerini göz ardı eder. Tabi ki, bir kitabın birden çok türü olabilir. Bir kitabın hem Uzak Operası, hem Askeri türü varsa, her iki türe de tıkladığınızda bu kitabı görürsünüz. Arama aşağıda daha detaylı tartışılmıştır.
Resimden görebileceğinz bir başka şey de Askeri türün iki kere belirmesidir, bir kere Tarih altında ve bir kere Bilim Kurgu altında. Türler sıralı dizi şeklinde oldukları için, bunlar iki ayrı türdür. Kitap birinde olabilir, diğerinde olabilir, veya (şüpheli şekilde) ikisinde de. Örneğin, Winston Churchill’in “İkinci Dünya Savaşı” kitabı “Tarih.Askeri” içinde olabilir. David Weber’in Honor Harrington kitapları “Bilim Kurgu.Askeri” içinde, ve bu durum için ayrıca “Bilim Kurgu.Uzay Operası” içinde olabilir.
Bir tür mevcut olduğunda, ki bu en az bir kitabın bu türde olması demektir, bu türü diğer kitaplara kitaplık görünümünden kitapları istediğiniz tür üzerine sürükleyerek kolaylıkla uygulayabilirsiniz. Türleri ayrıca metadata düzenleyicilerde de uygulayabilirsiniz; bu konuda daha fazlası aşağıda.
Kurulum¶
By now, your question might be “How was all of this setup?” There are three steps: 1) create the custom column, 2) tell calibre that the new column is to be treated as a hierarchy, and 3) add genres.
You create the custom column in the usual way, using Preferences -> Add your own columns. This example uses “#genre” as the lookup name and “Genre” as the column heading. It is important that the column type is set to Comma-separated text, like tags, shown in the Tag browser.
Then after restarting calibre, you must tell calibre that the column is to be treated as a hierarchy. Go to Preferences → Look & feel → Tag browser → Hierarchy and searching and choose the new Genre column as having hierarchical items.
Bu noktada sütunda hiçbir tür yoktur. Son adıma geldik: bir kitaba tür uygulama. Bir kitap türü en az bir kitapta bulunana kadar calibre’de var olmaz. İlk defa bir türün nasıl uygulanacağını öğrenmek için, bir türün kitap metadata’sında nasıl göründüğünden biraz bahsetmeliyiz.
Bir “şeylerin” sıralı dizisi noktalarla ayrılmış ifadelerden oluşan öğeler oluşturmakla inşa edilir. Tür örneğinden devam edersek, bu öğeler “Tarih.Askeri”, “Gizem.Vampir”, “Bilim Kurgu.Uzay Operası”, vs. olur. Yani yeni bir tür oluşturmak için, bu türe ait olması gereken bir kitap seçer, metadata’sını düzenler, ve oluşturduğunuz sütuna yeni türü girersiniz. Örnekten devam edersek, bir kitaba yeni bir tür olan ve “Süper kahramanlar” alt türlü “Çizgiroman” türünü atamak isterseniz, bu (çizgiroman) kitabın ‘metadatasını düzenler’, Özel metadata sekmesini seçer, ve aşağıda gösterildiği gibi “Çizgiroman.Süper Kahramanlar” girersiniz (diğer özel sütunları göz ardı edin):
After doing the above, you see in the Tag browser:
Burdan sonra, bu yeni türü bir kitaba (çizgiroman, muhtemelen) atamak için, kitabı tür üzerine sürükleyebilir, ya da yukarıda yapıldığı gibi aynı şekilde metadata düzenleyerek kitaba ekleyebilirsiniz.
Not
Hierarchical display only works if the Tag browser is set to sort items by name. This is the default and can be checked by clicking the Configure button at the bottom of the Tag browser.
Aranıyor¶
The easiest way to search for genres is using the Tag browser, clicking on the genre you wish to see. Clicking on a genre with children will show you books with that genre and all child genres. However, this might bring up a question. Just because a genre has children doesn’t mean that it isn’t a genre in its own right. For example, a book can have the genre “History” but not “History.Military”. How do you search for books with only “History”?
The Tag browser search mechanism knows if an item has children. If it does, clicking on the item cycles through 5 searches instead of the normal three. The first is the normal green plus, which shows you books with that genre only (e.g., History). The second is a doubled plus (shown above), which shows you books with that genre and all sub-genres (e.g., History and History.Military). The third is the normal red minus, which shows you books without that exact genre. The fourth is a doubled minus, which shows you books without that genre or sub-genres. The fifth is back to the beginning, no mark, meaning no search.
Kısıtlamalar¶
If you search for a genre then create a saved search for it, you can use the ‘restrict to’ box to create a Virtual library of books with that genre. This is useful if you want to do other searches within the genre or to manage/update metadata for books in the genre. Continuing our example, you can create a Saved search named ‘History.Japanese’ by first clicking on the genre Japanese in the Tag browser to get a search into the search field, entering History.Japanese into the saved search field, then pushing the “Save search” button (the green box with the white plus, on the right-hand side).
Kaydedilmiş aramayı oluşturduktan sonra, bunu bir kısıtlama olarak kullanabilirsiniz.
Useful template functions¶
Tür bilgisini diske kaydet veya aygıta göndermek gibi bir şablonda kullanmak isteyebilirsiniz. O zaman soru “En dıştaki tür isim veya isimlerini nasıl alırım?” olur. Bir calibre şablon fonksiyonu, alt öğeler, bu işi daha kolay yapmak için sağlanmıştır.
Örneğin, “Tarih/The Gathering Storm - Churchill, Winston” gibi, tür dizinleri yapmak için en dıştaki tür seviyesini diske-kaydet şablonuna eklemek istediğinizi farz edin. Bunu yapmak için sıralı dizinin ilk seviyesini çıkarmalı ve bir dizin yapmasını belirtmek için yatık çizgi ile beraber ön tarafa eklemelisiniz. Aşağıdaki şablon bu işi görür:
{#genre:subitems(0,1)||/}{title} - {authors}
Şablonlar ve subitems()
fonksiyonu ile ilgili daha fazla bilgi için Şablon diline göz atın.