.. _templaterefcalibre-cs: Reference for all built-in template language functions ======================================================== Here, we document all the built-in functions available in the calibre template language. Every function is implemented as a class in python and you can click the source links to see the source code, in case the documentation is insufficient. The functions are arranged in logical groups by type. .. contents:: :depth: 2 :local: .. module:: calibre.utils.formatter_functions Arithmetic ---------- add(x [, y]*) ^^^^^^^^^^^^^ .. autoclass:: BuiltinAdd ceiling(x) ^^^^^^^^^^ .. autoclass:: BuiltinCeiling divide(x, y) ^^^^^^^^^^^^ .. autoclass:: BuiltinDivide floor(x) ^^^^^^^^ .. autoclass:: BuiltinFloor fractional_part(x) ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFractionalPart mod(x) ^^^^^^ .. autoclass:: BuiltinMod multiply(x [, y]*) ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinMultiply round(x) ^^^^^^^^ .. autoclass:: BuiltinRound subtract(x, y) ^^^^^^^^^^^^^^ .. autoclass:: BuiltinSubtract Boolean ------- and(hodnota [, hodnota]*) ^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinAnd not(hodnota) ^^^^^^^^^^^^ .. autoclass:: BuiltinNot or(hodnota [, hodnota]*) ^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinOr Date functions -------------- date_arithmetic(date, calc_spec, fmt) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinDateArithmetic days_between(datum1, datum2) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinDaysBetween today() ^^^^^^^ .. autoclass:: BuiltinToday Formatting values ----------------- finish_formatting(hodnota, formát, předpona, přípona) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFinishFormatting format_date(hodnota, formát_řetězce) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFormatDate format_date_field(field_name, format_string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFormatDateField format_number(v template) ^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFormatNumber human_readable(hodnota) ^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinHumanReadable rating_to_stars (hodnota, use_half_stars) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinRatingToStars urls_from_identifiers(identifikátory, řazení_výsledků) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinUrlsFromIdentifiers Get values from metadata ------------------------ annotation_count() ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinAnnotationCount approximate_formats() ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinApproximateFormats author_links(val_separator, pair_separator) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinAuthorLinks author_sorts(val_separator) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinAuthorSorts booksize() ^^^^^^^^^^ .. autoclass:: BuiltinBooksize connected_device_name(storage_location) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinConnectedDeviceName connected_device_uuid(storage_location) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinConnectedDeviceUUID current_library_name() ^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCurrentLibraryName current_library_path() ^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCurrentLibraryPath current_virtual_library_name() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCurrentVirtualLibraryName field(lookup_name) ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinField formats_modtimes(formát_data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFormatsModtimes formats_paths() ^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFormatsPaths formats_sizes() ^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFormatsSizes has_cover() ^^^^^^^^^^^ .. autoclass:: BuiltinHasCover is_marked() ^^^^^^^^^^^ .. autoclass:: BuiltinIsMarked language_codes(řetězce_jazyka) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinLanguageCodes language_strings(kódy_jazyka, lokalizovat) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinLanguageStrings ondevice() ^^^^^^^^^^ .. autoclass:: BuiltinOndevice raw_field(lookup_name) ^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinRawField raw_list(lookup_název, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinRawList series_sort() ^^^^^^^^^^^^^ .. autoclass:: BuiltinSeriesSort user_categories() ^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinUserCategories virtual_libraries() ^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinVirtualLibraries If-then-else ------------ check_yes_no(field_name, is_undefined, is_false, is_true) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCheckYesNo contains(hodnota, vzor, text při shodě, text při neshodě) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinContains field_exists(field_name) ^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFieldExists ifempty(hodnota, text při prázdné) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinIfempty test(hodnota, text při neprázdném, text při prázdném) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinTest Iterating over values --------------------- first_non_empty(hodnota [, hodnota]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFirstNonEmpty lookup(hodnota, [vzor, pole,]+ jinak_pole) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinLookup switch(hodnota, [výraz, hodnota,]+ jinak_hodnota) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSwitch switch_if([testovaný_výraz, hodnota_výrazu,]+ jinak_výraz) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSwitchIf List lookup ----------- identifier_in_list(val, id_name [, found_val, not_found_val]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinIdentifierInList in_list(hodnota, oddělovač, [ vzor, nalezená_hodnota, ]+ nenalezená_hodnota) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinInList list_item(hodnota, pořadí, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListitem select(hodnota, klíč) ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSelect str_in_list(hodnota, oddělovač, [ řetězec, nalezená_hodnota, ]+ nenalezená_hodnota) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinStrInList List manipulation ----------------- count(hodnota, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCount list_count_matching(seznam, vzor, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListCountMatching list_difference(seznam1, seznam2, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListDifference list_equals(seznam1, oddělovač1, seznam2, oddělovač2, hodnota_ano, hodnota_ne) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListEquals list_intersection(seznam1, seznam2, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListIntersection list_join(with_separator, seznam1, oddělovač1 [, seznam2, oddělovač2]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListJoin list_re(seznam_zdrojů, oddělovač, zahrnout_vrácené, volitelně_nahradit) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListRe list_re_group(src_list, separator, include_re, search_re [, group_template]+) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListReGroup list_remove_duplicates(seznam, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListRemoveDuplicates list_sort(seznam, směr, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListSort list_split(list_val, sep, id_prefix) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListSplit list_union(seznam1, seznam2, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinListUnion range(start, stop, step, limit) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinRange subitems(hodnota, počáteční_index, konečný_index) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSubitems sublist(hodnota, počáteční_index, konečný_index, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSublist Other ----- arguments(id[=výraz] [, id[=výraz]]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinArguments assign(id, val) ^^^^^^^^^^^^^^^ .. autoclass:: BuiltinAssign globals(id[=výraz] [, id[=výraz]]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinGlobals print(a [, b]*) ^^^^^^^^^^^^^^^ .. autoclass:: BuiltinPrint Recursion --------- eval(template) ^^^^^^^^^^^^^^ .. autoclass:: BuiltinEval template(x) ^^^^^^^^^^^ .. autoclass:: BuiltinTemplate Relational ---------- cmp(x, y, lt, eq, gt) ^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCmp first_matching_cmp(val, [cmp1, result1,]+, else_result) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinFirstMatchingCmp strcmp(x, y, lt, eq, gt) ^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinStrcmp strcmpcase(x, y, lt, eq, gt) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinStrcmpcase String case changes ------------------- capitalize(hodnota) ^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCapitalize lowercase(hodnota) ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinLowercase titlecase(hodnota) ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinTitlecase uppercase(hodnota) ^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinUppercase String manipulation ------------------- character(character_name) ^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinCharacter re(hodnota, vzor, náhrada) ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinRe re_group(val, pattern [, template_for_group]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinReGroup shorten(hodnota, znaky vlevo, text uprostřed, znaky vpravo) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinShorten strcat(a [, b]*) ^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinStrcat strcat_max(max, řetězec1 [, předpona2, řetězec2]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinStrcatMax strlen(a) ^^^^^^^^^ .. autoclass:: BuiltinStrlen substr(řetězec, počátek, konec) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSubstr swap_around_articles (hodnota, oddělovač) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSwapAroundArticles swap_around_comma(hodnota) ^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSwapAroundComma to_hex(val) ^^^^^^^^^^^ .. autoclass:: BuiltinToHex transliterate(a) ^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinTransliterate Template database functions --------------------------- book_count(dotaz, use_vl) ^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinBookCount book_values(sloupec, dotaz, oddělovač, use_vl) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinBookValues extra_file_modtime(file_name, format_string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinExtraFileModtime extra_file_names(oddělovač [, vzor]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinExtraFileNames extra_file_size(název_souboru) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinExtraFileSize get_link(field_name, field_value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinGetLink get_note(field_name, field_value, plain_text) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinGetNote has_extra_files([vzor]) ^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinHasExtraFiles has_note(field_name, field_value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinHasNote other ----- set_globals(id[=výraz] [, id[=výraz]]*) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. autoclass:: BuiltinSetGlobals API of the Metadata objects ---------------------------- The python implementation of the template functions is passed in a Metadata object. Knowing it's API is useful if you want to define your own template functions. .. module:: calibre.ebooks.metadata.book.base .. autoclass:: Metadata :members: :member-order: bysource .. data:: STANDARD_METADATA_FIELDS The set of standard metadata fields. .. literalinclude:: ../../../src/calibre/ebooks/metadata/book/__init__.py :lines: 7-