Skip to main content

Custom Columns

Introduction

Calibre libraries support additional custom columns that you can use to store extra metadata about the items in your library collection. You can find out more about how to manage these within Calibre by reading their blog or finding out how to use their templating language to create columns which aggregate other pieces of metadata.

Options

Our web app supports some additional configuration options related to these columns, to control how they are presenting to your users. These options are placed into the description field of the custom column, and can be in addition to your existing description information if required!

By default, all custom columns that contain data will be shown to the user when viewing the details of an item.

Configuration

PUBLIC by including this in the description, the web app will include this column in the table of search results shown to the user when exploring a library. This is great for ensuring that useful information (such as physical self location) is easily available.

HIDDEN by including this in the description, the web app will not show the custom column value to the library user. This should be considered as as convenience feature, not than a security one, so please don’t store sensitive data in custom columns!

DISPLAY_FORMAT is used to control how the custom column is presented in the web-app. You can use this to create custom links (e.g. if you want to link to an external web site or system). Typical uses for this might be to link to comprehension quizzes or external ebook sites. The magic value {{value}} is used as a placeholder for this field. So, if you were storing the Project Gutenberg ID for books in a custom column, you could use this format in the description to provide a link to the relevant page for each book: DISPLAY_FORMAT=https://www.gutenberg.org/ebooks/{{value}}

ENUMS are used to substitute reader-friendly values in the place of short codes in a custom column. For example, you might use codes like: LY, MY & UY to designate the suitable age/reading level of a book. These might not mean much to the users of your library, so you can specify an enumeration to expand these into more descriptive statements, such as: ENUMS:LY=Lower Years (Age 5-8);MY=Middle Years (Age 9-13);MY+=Middle Years Plus (Age 12+);UY=Upper Years (Age 14+)

RANGE is used to describe custom columns that should be treated as a range for searching. This is particularly useful for data like reading ages, numerical books levels, language complexity or page counts.

FILTER is used to indicate that a custom column should be available as a filter for search results. Typical uses are reading or lanugage complexity levels, allowing filtering to be done on particular search terms (e.g. show me all books about a particular topic, but then allow me to refine the list by reading level).

It is, of course, possible to combine these description flags by using a delineator such as | between them, so you might end up with a description flag that reads: PUBLIC|ENUMS:LY=Lower Years (Age 5-8);MY=Middle Years (Age 9-13);MY+=Middle Years Plus (Age 12+);UY=Upper Years (Age 14+)