Керування підгрупами книжок, наприклад, «жанр»

Іноді виникає потреба в упорядковуванні книг у бібліотеці за підгрупами, подібними до підтек. Найпоширенішою причиною цього є створення ієрархій жанрів, але можуть бути і інші причини. Комусь потрібен спосіб упорядкувати конспекти за темами і номерами курсів. Комусь хочеться стежити за подарунками за темою та отримувачем. У цьому розділі ми наведемо приклад поділу за жанрами.

Перш ніж продовжувати опис, варто зауважити, що ми не говоримо про теки на диску. Підгрупи не є теками з файлами. Книги нікуди не копіюватимуться. Структуру файлів бібліотеки calibre не буде змінено. Замість цього, ми наведемо спосіб упорядковування і показу підгруп книг у бібліотеці calibre.

Загальними вимогами до підгруп, зокрема жанрів є такими:

  • Підгрупа (наприклад жанр) має містити (вказувати на) книги, а не категорії книг. Це відрізняє підгрупи від категорій користувачів calibre.
  • Книга може перебувати у декількох підгрупах (жанрах). Це відрізняє підгрупи від фізичних тек файлів.
  • Підгрупи (жанри) мають складати ієрархію; підгрупи можуть містити інші підгрупи.

Мітки можуть дати вам перші два пункти. Якщо ви позначите міткою жанру книгу, ви зможете скористатися панеллю перегляду міток (або пошуком) для отримання списку книг відповідного жанру, тобто задовольнити вимоги першого пункту. Багато книг можуть мати однакові мітки, і це дає нам другий пункт. Проблема полягає у тому, що мітки не можуть задовольнити третій пункт. У них не передбачено ієрархічної структури.

sgtree Можливість створення ієрархій у calibre дасть вам третє — можливість бачити жанри у форматі «дерева» і можливість простого пошуку книг у жанрі або піджанрі. Наприклад, припустімо, що у вас така структура жанрів:

Genre
    . History
    .. Japanese
    .. Military
    .. Roman
    . Mysteries
    .. English
    .. Vampire
    . Science Fiction
    .. Alternate History
    .. Military
    .. Space Opera
    . Thrillers
    .. Crime
    .. Horror
    etc.

За допомогою ієрархічної структури ви зможете переглядати ці жанри на панелі перегляду міток у формі дерева, як це показано на знімку вікна. У нашому прикладі зовнішній рівень (Жанр) є нетиповим стовпчиком, що містить дані щодо жанру. У жанрах містяться піджанри, пункти яких позначено невеличким трикутничком. Натискання цього трикутничка призведе до відкриття списку з пунктами піджанрів, як це можна бачити для жанрів «History» та «Science Fiction».

Натисканням пункту жанру ви можете розпочати пошук усіх книг відповідного жанру або дочірніх записів цього жанру. Наприклад, натискання пункту «Science Fiction» відкриє усі три дочірні пункти жанрів, «Alternate History», «Military» та «Space Opera». Натискання пункту «Alternate History» відкриє список тих книг цього жанру, які не належать до жанрів «Military» або «Space Opera». Звичайно ж, книга може належати до декількох жанрів. Якщо книга належить одразу до жанрів «Space Opera» та «Military», ви побачите пункт цієї книги у списках обох піджанрів. Обговорення можливості пошуку книг наведено нижче.

Іншою річчю, яку ви можете зауважити з зображення, є те, що жанр «Military» показано у списку двічі: одного разу під жанром «History» і ще таз під жанром «Science Fiction». Оскільки жанри перебувають у ієрархії, це два окремих жанри. Книга може належати до одного жанру, до іншого жанру або до обох жанрів (у цьому випадку сумнівно). Наприклад, книга Вінстона Черчілля «Друга світова війна» може бути належати до жанру «History.Military». Книги Девіда Вебера з циклу про Гонор Гаррінґтон можуть належати до жанру «Science Fiction.Military» і, у цьому випадку, до жанру «Science Fiction.Space Opera».

Щойно буде створено запис жанру, до якого належатиме принаймні одна книга, ви зможете дуже просто застосувати цей жанр до інших книг: достатньо перетягнути позначки цих книг із панелі бібліотеки на пункт жанру, до якого належать відповідні книги. Ви також можете прив’язувати книги до жанрів у редакторі метаданих. Докладніше про це нижче.

Налаштовування

Тепер, у вас може виникнути питання: «Як же усе це налаштувати?» У три кроки: 1) створити нетиповий стовпчик, 2) повідомити calibre, що новий стовпчик слід вважати ієрархією і 3) додати жанри.

Створити нетиповий стовпчик можна у звичний спосіб, за допомогою пункту Налаштування  →  Додати власний стовпчик. У нашому прикладі використано «#genre» як назву пошуку і «Genre» як заголовок стовпчика. Типом стовпчика вибрано «Текст, відокремлений комами, зокрема мітки, який буде показано на панелі перегляду міток».

_images/sg_cc.jpg

Далі, після перезапуску calibre вам слід повідомити calibre, що стовпчик слід вважати ієрархією. Відкрийте сторінку Налаштування  →  Зовнішній вигляд  →  Переглядач міток і введіть назву пошуку «#genre» до поля «Категорії з ієрархічними пунктами». Натисніть кнопку Застосувати для завершення налаштовування.

_images/sg_pref.png

Зараз у стовпчику немає жодного жанру. Нам залишився один крок: слід застосувати жанр до книги. Жанру не існує у списку calibre, доки до нього не належатиме хоч одна книга. Щоб навчитися застосовувати жанр вперше, нам слід познайомитися з тим, як жанр виглядає у метаданих книги.

Ієрархія «речей» будується створенням запису, що складається з фраз, відокремлених крапками. Продовжуючи приклад із жанрами, цими записами могли б бути «History.Military», «Mysteries.Vampire», «Science Fiction.Space Opera» тощо. Отже, щоб створити запис жанру, ви вибираєте книгу, яка має належати до цього жанру, редагуєте метадані і вводите назву нового жанру до створеного вами стовпчика. У продовження нашого прикладу, якщо ви хочете пов’язати новий жанр «Comics» із піджанром «Superheroes» із книгою, вам слід натиснути кнопку Редагувати метадані для цієї книги (коміксу), вибрати вкладку Нетипові метадані, а потім ввести «Comics.Superheroes», як це показано нижче (інші нетипові стовпчики слід проігнорувати):

_images/sg_genre.jpg

Після виконання вказаних вище дій ви побачите таке на панелі перегляду міток:

_images/sg_tb.jpg

Після цього, щоб застосувати цей новий жанр до книги (наприклад, коміксу), ви можете або перетягнути позначку книги на пункт жанру, або додати жанр до книги за допомогою редагування метаданих у той самий спосіб, як це було зроблено вище.

Пошук

_images/sg_search.jpg

Найпростішим способом пошуку за жанрами є використання панелі перегляду міток: достатньо просто натиснути пункт жанру, книги з якого ви хочете переглянути. Натискання пункту з дочірніми жанрами призведе до показу книг, що належать до жанру і усіх його піджанрів. Втім, це може призвести до певних питань. Лише через те, що запис жанру має дочірні записи, запис жанру не є сам жанром. Наприклад, книга може належати до жанру «History», але не належати до жанру «History.Military». Як же знайти книги, які належать лише до жанру «History»?

Механізм пошуку на панелі перегляду міток може визначати, чи є у запису дочірні записи. Якщо такі записи є, натисканням відповідного пункту виконується 5 пошуків, замість звичних 3. Першим є звичайний пошук за зеленим «плюсом», який знайде книги, які належать лише до жанру, пункт якого натиснуто (наприклад, до жанру «History»). Другим є подвійний «плюс» (показано вище), який знайде книги, які належать до жанру і усіх його піджанрів (наприклад, до жанру «History» і піджанру «History.Military»). Третім є звичайний червоний «мінус», який знайде усі книги поза жанрами. Четвертим є подвійний «мінус», який знайде книги поза жанрами і піджанрами. П’ятим є повернення до початку, без позначки, без пошуку.

Обмеження

Якщо ви шукаєте книги за жанром, а потім створюєте збережений пошук для результатів, ви можете скористатися полем «обмежити до», щоб створити віртуальну бібліотеку для відповідного жанру. Це корисно, якщо ви плануєте виконувати інші пошуки у межах жанру або хочете змінити або оновити метадані книг, що належать до певного жанру. Продовжуючи наш приклад, ви можете створити збережений пошук із назвою «History.Japanese», спочатку натиснувши пункт жанру «Japanese» на панелі перегляду міток, щоб перенести пошук до поля пошуку, потім ввівши «History.Japanese» до поля збереженого пошуку і натиснувши кнопку «Зберегти пошук» (зелене поле із білим «плюсом», яке розташовано праворуч).

_images/sg_restrict.jpg

Після створення збереженого пошуку ви можете використовувати його як обмеження.

_images/sg_restrict2.jpg

Корисні шаблонні функції

У вас може виникнути бажання скористатися даними щодо жанру у шаблоні, зокрема шаблоні збереження на диск або шаблоні надсилання на пристрій. Тоді може виникнути питання: «Як отримати назву або назви жанрів найвищого рівня?». Для полегшення цього завдання передбачено шаблонну функцію calibre, subitems.

Наприклад, припустімо, що ви хочете додати найзовнішніший рівень жанрів до шаблону save-to-disk, щоб створити теки жанрів у такому форматі: «History/The Gathering Storm - Churchill, Winston». Для цього вам доведеться видобути перший рівень з ієрархії і додати його на початку разом із похилою рискою, яка позначатиме потребу у створенні теки. Наведений нижче шаблон впорається з цим завданням:

{#genre:subitems(0,1)||/}{title} - {authors}

Див. Мова шаблонів, щоб дізнатися більше про шаблони та функцію subitems().