Управление подгруппами книг, например «genre»¶
Некоторые люди хотят организовать книги в своей библиотеке в подгруппы, похожие на подпапки. Наиболее распространенной причиной является создание жанровой иерархии, но есть и многие другие. Один пользователь попросил способ организовать учебники по предмету и номеру курса. Другой хотел отслеживать подарки по предмету и получателю. Этот учебник будет использовать жанр как пример для остальной части этого сообщения.
Прежде чем продолжить, обратите внимание, что мы не говорим о папках на жестком диске. Подгруппы не являются файловыми папками. Книги не будут никуда копироваться. Это не влияет на файловую структуру библиотеки. Вместо этого мы представляем способ организации и отображения подгрупп книг в библиотеке.
Обычно для подгрупп, таких как жанры, требуются:
Подгруппа (например, жанр) должна содержать (указывать) книги, а не категории книг. Это то, что отличает подгруппы от пользовательских категорий calibre.
Книга может быть в нескольких подгруппах (жанрах). Это отличает подгруппы от физических файловых папок.
Подгруппы (жанры) должны образовывать иерархию; подгруппы могут содержать подгруппы.
Теги дают вам первые два. Если вы тегируете книгу жанром, вы можете использовать браузер тегов (или поиск) для поиска книг с этим жанром, с выдачей первого. Многие книги могут иметь один и тот же тег (-и), предоставляя вам второй. Проблема в том, что теги не удовлетворяют третьему требованию. Они не обеспечивают иерархию.
Функция иерархии в calibre дает вам третье - способность видеть жанры в «дереве» и возможность легко искать книги в жанре или поджанре. Например, предположим, что ваша структура жанра похожа на следующую:
Genre
. History
.. Japanese
.. Military
.. Roman
. Mysteries
.. English
.. Vampire
. Science Fiction
.. Alternate History
.. Military
.. Space Opera
. Thrillers
.. Crime
.. Horror
etc.
Используя функцию иерархии, вы можете увидеть эти жанры в браузере тегов в виде дерева, как показано на изображении на экране. В этом примере внешний уровень (жанр) является настраиваемым столбцом, который содержит жанры. Жанры, содержащие поджанры, появляются с небольшим треугольником рядом с ними. Нажатие на этот треугольник откроет элемент и покажет суб-жанры, как вы можете видеть в Истории и Научной фантастике.
Нажав на жанр, вы можете искать все книги с этим жанром или потомками этого жанра. Например, нажатие на Science Fiction может дать все три дочерних жанра: Alternate History, Military и Space Opera. Нажатие на Alternate History выдаст книги в этом жанре, игнорируя те, которые находятся в Military и Space Opera . Конечно, книга может иметь несколько жанров. Если в книге есть жанры как Space Opera, так и Military, вы увидите эту книгу, если вы нажмете на любой жанр. Подробнее поиск обсуждается ниже.
Ещё одна вещь, которую вы можете видеть по изображению, состоит в том, что жанр Military появляется дважды, один раз в Истории и один раз под Научной фантастикой. Поскольку жанры находятся в иерархии, это два отдельных жанра. Книга может быть в одном, другом или (сомнительно в этом случае) и в том, и другом. Например, книга Уинстона Черчилля «Вторая мировая война» могут быть в «History.Military». Книги почёта Хэрингтона Дэвида Вебера можно найти в «Science Fiction.Military», и в этом отношении также в «Science Fiction.Space Opera».
Если жанр существует, это значит, что, по крайней мере, одна книга имеет этот жанр. Вы можете легко применить его к другим книгам, перетащив книги из представления библиотеки в желаемый для них жанр. Вы также можете применять жанры в редакторах метаданных; подробнее об этом ниже.
Установка¶
К настоящему моменту ваш вопрос может быть следующим: «Как всё это настроить?» Всего три шага: 1) создать пользовательский столбец, 2) сообщить calibre, что новый столбец должен рассматриваться как иерархия, и 3) добавить жанры.
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.
На данный момент в столбце нет жанров. Остаётся последний шаг: как применить жанр к книге. Жанр не существует в calibre, пока он не появится, по крайней мере, в одной книге. Чтобы узнать, как применить жанр в первый раз, мы должны подробно рассказать о том, как выглядит жанр в метаданных для книги.
Иерархия «вещей» строится путем создания элемента, состоящего из фраз, разделённых точками. Продолжая пример жанра, эти предметы будут «History.Military», «Mysteries.Vampire», «Science Fiction.Space Opera» и т.д. Таким образом, чтобы создать новый жанр, вы выбираете книгу, которая должна иметь этот жанр, редактируете его метаданные и вводите новый жанр в созданный вами столбец. Продолжая наш пример, если вы хотите присвоить книге новый жанр «Комиксы» с поджанром «Супергерои», вы должны «редактировать метаданные» для этой книги (комикса), выбрать вкладку «Пользовательские метаданные», а затем ввести «Comics.Superheroes», как показано ниже (игнорируйте другие настраиваемые столбцы):
После выполнения вышеизложенного вы увидите в Браузере тегов:
С этого момента, чтобы применить этот новый жанр к книге (предположительно, комикс), вы можете перетащить книгу в жанр или добавить его в книгу, используя редактирование метаданных, точно так же, как это было сделано выше.
Примечание
Иерархическое отображение работает только в том случае, если браузер тегов настроен на сортировку элементов по имени. Это значение по умолчанию, и его можно проверить, нажав кнопку Configure в нижней части браузера тегов.
Поиск¶
Простейший способ поиска жанров - использовать Браузер тегов, нажав на жанр, который вы хотите увидеть. Нажав на жанр с потомками, вы увидите книги с этим жанром и всеми жанрами-потомками. Однако это может вызвать вопрос. Просто потому, что у жанра есть потомки, это не значит, что это не собственный жанр. Например, книга может иметь жанр «History», но не «History.Military». Как вы ищете книги только с «History»?
Механизм поиска Браузера тегов знает, имеет ли элемент дочерние элементы. Если это так, щелчок по элементу циклически проходит через 5 поисковых запросов вместо обычных трёх. Первый - обычный зелёный плюс, который показывает только книги с этим жанром (например, «История»). Второй - двойной плюс (показан выше), который показывает вам книги с этим жанром и всеми суб-жанрами (например, History and History.Military). Третий - это нормальный красный минус, который показывает вам книги без этого точного жанра. Четвёртый - это удвоенный минус, который показывает вам книги без этого жанра или поджанров. Пятый возвращается к началу, без знака, что означает отсутствие поиска.
Ограничения¶
Если вы ищете жанр, а затем создаете сохранённый поиск, вы можете использовать поле «Ограничить», чтобы создать виртуальную библиотеку книг с этим жанром. Это полезно, если вы хотите выполнять другие поиски в жанре или управлять/обновлять метаданные для книг в жанре. Продолжая наш пример, вы можете создать сохраненный поиск с именем «History.Japanese», сначала щелкнув по жанру Japanese в браузере тегов, чтобы выполнить поиск в поле поиска, введя History.Japanese в сохраненное поле поиска, а затем нажав кнопку «Сохранить поиск» (зелёное поле с белым плюсом справа).
После создания сохраненного поиска вы можете использовать его как ограничение.
Полезные шаблонные функции¶
Возможно, вы захотите использовать информацию о жанре в шаблоне, например, сохранить на диск или отправить на устройство. Тогда может возникнуть вопрос: «Как получить самое внешнее имя или имена жанра?». Функция шаблонов calibre - подпункты предоставляется как раз для того чтобы сделать это проще.
Например, предположим, что вы хотите добавить внешний уровень жанра к шаблону save-to-disk, чтобы создавать папки жанра, как в «History/The Gathering Storm - Churchill, Winston» . Для этого вы должны извлечь первый уровень иерархии и добавить его в начале вместе с слэшем (косой чертой) для указания что нужно создать папку. Ниже приведён шаблон:
{#genre:subitems(0,1)||/}{title} - {authors}
См. The template language для получения дополнительной информации о шаблонах и функции subitems()
.