mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
String changes
This commit is contained in:
parent
77c3a35866
commit
30aac83fa8
@ -48,7 +48,7 @@ Schematically, it looks like this:
|
|||||||
|
|
||||||
The input format is first converted to XHTML by the appropriate *Input Plugin*.
|
The input format is first converted to XHTML by the appropriate *Input Plugin*.
|
||||||
This HTML is then *transformed*. In the last step, the processed XHTML is converted
|
This HTML is then *transformed*. In the last step, the processed XHTML is converted
|
||||||
to the specified output format by the appropriate *Output Plugin*. The results
|
to the specified output format by the appropriate *output plugin*. The results
|
||||||
of the conversion can vary greatly, based on the input format. Some formats
|
of the conversion can vary greatly, based on the input format. Some formats
|
||||||
convert much better than others. A list of the best source formats for conversion
|
convert much better than others. A list of the best source formats for conversion
|
||||||
is available :ref:`here <best-source-formats>`.
|
is available :ref:`here <best-source-formats>`.
|
||||||
@ -59,7 +59,7 @@ to detect chapter headings and automatically create a Table of Contents, to prop
|
|||||||
adjust font sizes, et cetera. It is important to remeber that all the transforms act on the
|
adjust font sizes, et cetera. It is important to remeber that all the transforms act on the
|
||||||
XHTML output by the *Input Plugin*, not on the input file itself. So, for example, if you ask calibre
|
XHTML output by the *Input Plugin*, not on the input file itself. So, for example, if you ask calibre
|
||||||
to convert an RTF file to EPUB, it will first be converted to XHTML internally,
|
to convert an RTF file to EPUB, it will first be converted to XHTML internally,
|
||||||
the various transforms will be applied to the XHTML and then the *Output Plugin* will
|
the various transforms will be applied to the XHTML and then the *output plugin* will
|
||||||
create the EPUB file, automatically generating all metadata, Table of Contents, et cetera.
|
create the EPUB file, automatically generating all metadata, Table of Contents, et cetera.
|
||||||
|
|
||||||
You can see this process in action by using the debug option |dbgi|. Just specify the path to
|
You can see this process in action by using the debug option |dbgi|. Just specify the path to
|
||||||
@ -75,7 +75,7 @@ The four sub-directories are:
|
|||||||
input This contains the HTML output by the Input Plugin. Use this to debug the Input Plugin.
|
input This contains the HTML output by the Input Plugin. Use this to debug the Input Plugin.
|
||||||
parsed The result of pre-processing and converting to XHTML the output from the Input Plugin. Use to debug structure detection.
|
parsed The result of pre-processing and converting to XHTML the output from the Input Plugin. Use to debug structure detection.
|
||||||
structure Post structure detection, but before CSS flattening and font size conversion. Use to debug font size conversion and CSS transforms.
|
structure Post structure detection, but before CSS flattening and font size conversion. Use to debug font size conversion and CSS transforms.
|
||||||
processed Just before the ebook is passed to the output plugin. Use to debug the Output Plugin.
|
processed Just before the ebook is passed to the output plugin. Use to debug the output plugin.
|
||||||
========== =============
|
========== =============
|
||||||
|
|
||||||
If you want to edit the input document a little before having calibre convert it, the best thing to
|
If you want to edit the input document a little before having calibre convert it, the best thing to
|
||||||
@ -87,7 +87,7 @@ select ZIP as the input format.
|
|||||||
This document will deal mainly with the various transforms that operate on the intermediate XHTML
|
This document will deal mainly with the various transforms that operate on the intermediate XHTML
|
||||||
and how to control them. At the end are some tips specific to each Input/Output format.
|
and how to control them. At the end are some tips specific to each Input/Output format.
|
||||||
|
|
||||||
Look & Feel
|
Look & feel
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
.. contents:: Contents
|
.. contents:: Contents
|
||||||
@ -114,7 +114,7 @@ font sizes are rescaled appropriately. By choosing a larger base font size, you
|
|||||||
in the document larger and vice versa. When you set the base font size, for best results, you should
|
in the document larger and vice versa. When you set the base font size, for best results, you should
|
||||||
also set the font size key.
|
also set the font size key.
|
||||||
|
|
||||||
Normally, calibre will automatically choose a base font size appropriate to the Output Profile you
|
Normally, calibre will automatically choose a base font size appropriate to the output profile you
|
||||||
have chosen (see :ref:`page-setup`). However, you can override this here in case the default is
|
have chosen (see :ref:`page-setup`). However, you can override this here in case the default is
|
||||||
not suitable for you.
|
not suitable for you.
|
||||||
|
|
||||||
@ -241,34 +241,34 @@ There are a few more options in this section.
|
|||||||
|
|
||||||
.. _page-setup:
|
.. _page-setup:
|
||||||
|
|
||||||
Page Setup
|
Page setup
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The Page Setup options are for controlling screen layout, like margins and screen sizes. There are
|
The :guilabel:`Page setup` options are for controlling screen layout, like margins and screen sizes. There are
|
||||||
options to setup page margins, which will be used by the Output Plugin, if the selected Output Format
|
options to setup page margins, which will be used by the output plugin, if the selected output format
|
||||||
supports page margins. In addition, you should choose an Input profile and an Output profile. Both sets
|
supports page margins. In addition, you should choose an Input profile and an output profile. Both sets
|
||||||
of profiles basically deal with how to interpret measurements in the input/output documents, screen sizes
|
of profiles basically deal with how to interpret measurements in the input/output documents, screen sizes
|
||||||
and default font rescaling keys.
|
and default font rescaling keys.
|
||||||
|
|
||||||
If you know that the file you are converting was intended to be used on a particular device/software platform,
|
If you know that the file you are converting was intended to be used on a particular device/software platform,
|
||||||
choose the corresponding input profile, otherwise just choose the default input profile. If you know the files
|
choose the corresponding input profile, otherwise just choose the default input profile. If you know the files
|
||||||
you are producing are meant for a particular device type, choose the corresponding Output profile. In particular, for MOBI Output files, you should choose the Kindle, for LIT the Microsoft Reader and for EPUB the Sony Reader. In the case of EPUB, the Sony Reader profile will result in EPUB files that will work everywhere. However, it has some side effects, like inserting artificial section breaks to keep internal components below the size threshold, needed for SONY devices. In particular for the iPhone/Android phones, choose the SONY output profile. If you know your EPUB files will not be read on a SONY or similar device, use the default output profile. If you are producing MOBI files that are not intended for the Kindle, choose the Mobipocket books output profile.
|
you are producing are meant for a particular device type, choose the corresponding output profile. In particular, for MOBI output files, you should choose the Kindle, for LIT the Microsoft Reader and for EPUB the Sony Reader. In the case of EPUB, the Sony Reader profile will result in EPUB files that will work everywhere. However, it has some side effects, like inserting artificial section breaks to keep internal components below the size threshold, needed for SONY devices. In particular for the iPhone/Android phones, choose the SONY output profile. If you know your EPUB files will not be read on a SONY or similar device, use the default output profile. If you are producing MOBI files that are not intended for the Kindle, choose the Mobipocket books output profile.
|
||||||
|
|
||||||
The Output profile also controls the screen size. This will cause, for example, images to be auto-resized to be fit to the screen in some output formats. So choose a profile of a device that has a screen size similar to your device.
|
The output profile also controls the screen size. This will cause, for example, images to be auto-resized to be fit to the screen in some output formats. So choose a profile of a device that has a screen size similar to your device.
|
||||||
|
|
||||||
.. _heuristic-processing:
|
.. _heuristic-processing:
|
||||||
|
|
||||||
Heuristic Processing
|
Heuristic processing
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Heuristic Processing provides a variety of functions which can be used to try and detect and correct
|
Heuristic processing provides a variety of functions which can be used to try and detect and correct
|
||||||
common problems in poorly formatted input documents. Use these functions if your input document suffers
|
common problems in poorly formatted input documents. Use these functions if your input document suffers
|
||||||
from poor formatting. Because these functions rely on common patterns, be aware that in some cases an
|
from poor formatting. Because these functions rely on common patterns, be aware that in some cases an
|
||||||
option may lead to worse results, so use with care. As an example, several of these options will
|
option may lead to worse results, so use with care. As an example, several of these options will
|
||||||
remove all non-breaking-space entities, or may include false positive matches relating to the function.
|
remove all non-breaking-space entities, or may include false positive matches relating to the function.
|
||||||
|
|
||||||
:guilabel:`Enable heuristic processing`
|
:guilabel:`Enable heuristic processing`
|
||||||
This option activates calibre's Heuristic Processing stage of the conversion pipeline.
|
This option activates calibre's :guilabel:`Heuristic processing` stage of the conversion pipeline.
|
||||||
This must be enabled in order for various sub-functions to be applied
|
This must be enabled in order for various sub-functions to be applied
|
||||||
|
|
||||||
:guilabel:`Unwrap lines`
|
:guilabel:`Unwrap lines`
|
||||||
@ -289,8 +289,8 @@ remove all non-breaking-space entities, or may include false positive matches re
|
|||||||
for chapter headings; <h3> tags are used for any titles that are detected.
|
for chapter headings; <h3> tags are used for any titles that are detected.
|
||||||
|
|
||||||
This function will not create a TOC, but in many cases it will cause calibre's default chapter detection settings
|
This function will not create a TOC, but in many cases it will cause calibre's default chapter detection settings
|
||||||
to correctly detect chapters and build a TOC. Adjust the XPath under Structure Detection if a TOC is not automatically
|
to correctly detect chapters and build a TOC. Adjust the XPath under Structure detection if a TOC is not automatically
|
||||||
created. If there are no other headings used in the document then setting "//h:h2" under Structure Detection would
|
created. If there are no other headings used in the document then setting "//h:h2" under Structure detection would
|
||||||
be the easiest way to create a TOC for the document.
|
be the easiest way to create a TOC for the document.
|
||||||
|
|
||||||
The inserted headings are not formatted, to apply formatting use the :guilabel:`Extra CSS` option under
|
The inserted headings are not formatted, to apply formatting use the :guilabel:`Extra CSS` option under
|
||||||
@ -367,7 +367,7 @@ and their syntax at :ref:`regexptutorial`.
|
|||||||
|
|
||||||
.. _structure-detection:
|
.. _structure-detection:
|
||||||
|
|
||||||
Structure Detection
|
Structure detection
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Structure detection involves calibre trying its best to detect structural elements in the input document, when they are not properly specified. For example, chapters, page breaks, headers, footers, etc. As you can imagine, this process varies widely from book to book. Fortunately, calibre has very powerful options to control this. With power comes complexity, but if once you take the time to learn the complexity, you will find it well worth the effort.
|
Structure detection involves calibre trying its best to detect structural elements in the input document, when they are not properly specified. For example, chapters, page breaks, headers, footers, etc. As you can imagine, this process varies widely from book to book. Fortunately, calibre has very powerful options to control this. With power comes complexity, but if once you take the time to learn the complexity, you will find it well worth the effort.
|
||||||
@ -381,7 +381,7 @@ The reason for this is that there are often location where page breaks should be
|
|||||||
Also, detected chapters can be optionally inserted into the auto generated Table of Contents.
|
Also, detected chapters can be optionally inserted into the auto generated Table of Contents.
|
||||||
|
|
||||||
calibre uses *XPath*, a powerful language to allow the user to specify chapter boundaries/page breaks. XPath can seem a little daunting
|
calibre uses *XPath*, a powerful language to allow the user to specify chapter boundaries/page breaks. XPath can seem a little daunting
|
||||||
to use at first, fortunately, there is a :ref:`XPath tutorial <xpath-tutorial>` in the User Manual. Remember that Structure Detection
|
to use at first, fortunately, there is a :ref:`XPath tutorial <xpath-tutorial>` in the User Manual. Remember that Structure detection
|
||||||
operates on the intermediate XHTML produced by the conversion pipeline. Use the debug option described in the
|
operates on the intermediate XHTML produced by the conversion pipeline. Use the debug option described in the
|
||||||
:ref:`conversion-introduction` to figure out the appropriate settings for your book. There is also a button for a XPath wizard
|
:ref:`conversion-introduction` to figure out the appropriate settings for your book. There is also a button for a XPath wizard
|
||||||
to help with the generation of simple XPath expressions.
|
to help with the generation of simple XPath expressions.
|
||||||
@ -512,7 +512,7 @@ This will result in an automatically generated two level Table of Contents that
|
|||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
||||||
Not all output formats support a multi level Table of Contents. You should first try with EPUB Output. If that
|
Not all output formats support a multi level Table of Contents. You should first try with EPUB output. If that
|
||||||
works, then try your format of choice.
|
works, then try your format of choice.
|
||||||
|
|
||||||
Using images as chapter titles when converting HTML input documents
|
Using images as chapter titles when converting HTML input documents
|
||||||
@ -857,7 +857,7 @@ of 1::
|
|||||||
<p id="pagenum" style="text-align:center;"></p><script>document.getElementById("pagenum").innerHTML = "" + (_PAGENUM_ + 3)</script>
|
<p id="pagenum" style="text-align:center;"></p><script>document.getElementById("pagenum").innerHTML = "" + (_PAGENUM_ + 3)</script>
|
||||||
|
|
||||||
.. note:: When adding headers and footers make sure you set the page top and
|
.. note:: When adding headers and footers make sure you set the page top and
|
||||||
bottom margins to large enough values, under the Page Setup section of the
|
bottom margins to large enough values, under the Page setup section of the
|
||||||
conversion dialog.
|
conversion dialog.
|
||||||
|
|
||||||
Printable Table of Contents
|
Printable Table of Contents
|
||||||
@ -869,7 +869,7 @@ print out the PDF to paper. If you wish to use the PDF on an electronic device,
|
|||||||
then the PDF Outline provides this functionality and is generated by default.
|
then the PDF Outline provides this functionality and is generated by default.
|
||||||
|
|
||||||
You can customize the look of the generated Table of contents by using the
|
You can customize the look of the generated Table of contents by using the
|
||||||
Extra CSS conversion setting under the Look & Feel part of the conversion
|
Extra CSS conversion setting under the Look & feel part of the conversion
|
||||||
dialog. The default css used is listed below, simply copy it and make whatever
|
dialog. The default css used is listed below, simply copy it and make whatever
|
||||||
changes you like.
|
changes you like.
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ typical User Interface plugin you would call it at the top of ``ui.py`` but not
|
|||||||
``__init__.py``.
|
``__init__.py``.
|
||||||
|
|
||||||
You can test the translations of your plugins by changing the user interface
|
You can test the translations of your plugins by changing the user interface
|
||||||
language in calibre under Preferences->Look & Feel or by running calibre like
|
language in calibre under :guilabel:`Preferences->Look & feel` or by running calibre like
|
||||||
this::
|
this::
|
||||||
|
|
||||||
CALIBRE_OVERRIDE_LANG=de calibre
|
CALIBRE_OVERRIDE_LANG=de calibre
|
||||||
|
@ -47,7 +47,7 @@ PDF is a terrible format to convert from. For a list of the various issues you w
|
|||||||
How do I convert my file containing non-English characters, or smart quotes?
|
How do I convert my file containing non-English characters, or smart quotes?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
There are two aspects to this problem:
|
There are two aspects to this problem:
|
||||||
1. Knowing the encoding of the source file: calibre tries to guess what character encoding your source files use, but often, this is impossible, so you need to tell it what encoding to use. This can be done in the GUI via the :guilabel:`Input character encoding` field in the :guilabel:`Look & Feel->Text` section of the conversion dialog. The command-line tools have an :option:`ebook-convert-txt-input --input-encoding` option.
|
1. Knowing the encoding of the source file: calibre tries to guess what character encoding your source files use, but often, this is impossible, so you need to tell it what encoding to use. This can be done in the GUI via the :guilabel:`Input character encoding` field in the :guilabel:`Look & feel->Text` section of the conversion dialog. The command-line tools have an :option:`ebook-convert-txt-input --input-encoding` option.
|
||||||
2. When adding HTML files to calibre, you may need to tell calibre what encoding the files are in. To do this go to :guilabel:`Preferences->Plugins->File Type plugins` and customize the HTML2Zip plugin, telling it what encoding your HTML files are in. Now when you add HTML files to calibre they will be correctly processed. HTML files from different sources often have different encodings, so you may have to change this setting repeatedly. A common encoding for many files from the web is ``cp1252`` and I would suggest you try that first. Note that when converting HTML files, leave the input encoding setting mentioned above blank. This is because the HTML2ZIP plugin automatically converts the HTML files to a standard encoding (utf-8).
|
2. When adding HTML files to calibre, you may need to tell calibre what encoding the files are in. To do this go to :guilabel:`Preferences->Plugins->File Type plugins` and customize the HTML2Zip plugin, telling it what encoding your HTML files are in. Now when you add HTML files to calibre they will be correctly processed. HTML files from different sources often have different encodings, so you may have to change this setting repeatedly. A common encoding for many files from the web is ``cp1252`` and I would suggest you try that first. Note that when converting HTML files, leave the input encoding setting mentioned above blank. This is because the HTML2ZIP plugin automatically converts the HTML files to a standard encoding (utf-8).
|
||||||
|
|
||||||
What's the deal with Table of Contents in MOBI files?
|
What's the deal with Table of Contents in MOBI files?
|
||||||
@ -324,7 +324,7 @@ over the net. First perform the following steps in calibre
|
|||||||
* Set the Preferred Output Format in calibre to EPUB (The output format can be
|
* Set the Preferred Output Format in calibre to EPUB (The output format can be
|
||||||
set under :guilabel:`Preferences->Interface->Behavior`)
|
set under :guilabel:`Preferences->Interface->Behavior`)
|
||||||
* Set the output profile to iPad (this will work for iPhone/iPods as well),
|
* Set the output profile to iPad (this will work for iPhone/iPods as well),
|
||||||
under :guilabel:`Preferences->Conversion->Common Options->Page Setup`
|
under :guilabel:`Preferences->Conversion->Common options->Page setup`
|
||||||
* Convert the books you want to read on your iDevice to EPUB format by
|
* Convert the books you want to read on your iDevice to EPUB format by
|
||||||
selecting them and clicking the Convert button.
|
selecting them and clicking the Convert button.
|
||||||
* Turn on the Content Server by clicking the :guilabel:`Connect/Share` button
|
* Turn on the Content Server by clicking the :guilabel:`Connect/Share` button
|
||||||
@ -1042,7 +1042,7 @@ You will need to fix the underlying cause of the permissions error before resumi
|
|||||||
Can I have the comment metadata show up on my reader?
|
Can I have the comment metadata show up on my reader?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Most readers do not support this. You should complain to the manufacturer about it and hopefully if enough people complain, things will change. In the meantime, you can insert the metadata, including comments into a "Jacket page" at the start of the ebook, by using the option to "Insert metadata as page at start of book" during conversion. The option is found in the :guilabel:`Structure Detection` section of the conversion settings. Note that for this to have effect you have to *convert* the book. If your book is already in a format that does not need conversion, you can convert from that format to the same format.
|
Most readers do not support this. You should complain to the manufacturer about it and hopefully if enough people complain, things will change. In the meantime, you can insert the metadata, including comments into a "Jacket page" at the start of the ebook, by using the option to "Insert metadata as page at start of book" during conversion. The option is found in the :guilabel:`Structure detection` section of the conversion settings. Note that for this to have effect you have to *convert* the book. If your book is already in a format that does not need conversion, you can convert from that format to the same format.
|
||||||
|
|
||||||
Another alternative is to create a catalog in ebook form containing a listing of all the books in your calibre library, with their metadata. Click-and-hold the convert button to access the catalog creation tool. And before you ask, no you cannot have the catalog "link directly to" books on your reader.
|
Another alternative is to create a catalog in ebook form containing a listing of all the books in your calibre library, with their metadata. Click-and-hold the convert button to access the catalog creation tool. And before you ask, no you cannot have the catalog "link directly to" books on your reader.
|
||||||
|
|
||||||
|
@ -512,7 +512,7 @@ Double clicking the book details panel will open it up in a separate popup
|
|||||||
window.
|
window.
|
||||||
|
|
||||||
Finally, you can customize exactly what information is displayed in the Book
|
Finally, you can customize exactly what information is displayed in the Book
|
||||||
Details panel via :guilabel:`Preferences->Look & Feel->Book Details`.
|
Details panel via :guilabel:`Preferences->Look & feel->Book Details`.
|
||||||
|
|
||||||
.. raw:: html epub
|
.. raw:: html epub
|
||||||
|
|
||||||
@ -539,7 +539,7 @@ You can search user categories in the same way as built-in categories, by clicki
|
|||||||
3. "everything not matching an item in the category" shown by a single red minus sign.
|
3. "everything not matching an item in the category" shown by a single red minus sign.
|
||||||
4. "everything not matching an item in the category or its sub-categories" shown by two red minus signs.
|
4. "everything not matching an item in the category or its sub-categories" shown by two red minus signs.
|
||||||
|
|
||||||
It is also possible to create hierarchies inside some of the text categories such as tags, series, and custom columns. These hierarchies show with the small triangle, permitting the sub-items to be hidden. To use hierarchies of items in a category, you must first go to Preferences->Look & Feel and enter the category name(s) into the "Categories with hierarchical items" box. Once this is done, items in that category that contain periods will be shown using the small triangle. For example, assume you create a custom column called "Genre" and indicate that it contains hierarchical items. Once done, items such as Mystery.Thriller and Mystery.English will display as Mystery with the small triangle next to it. Clicking on the triangle will show Thriller and English as sub-items. See :ref:`Managing subgroups of books, for example "genre" <subgroups-tutorial>` for more information.
|
It is also possible to create hierarchies inside some of the text categories such as tags, series, and custom columns. These hierarchies show with the small triangle, permitting the sub-items to be hidden. To use hierarchies of items in a category, you must first go to :guilabel:`Preferences->Look & feel` and enter the category name(s) into the "Categories with hierarchical items" box. Once this is done, items in that category that contain periods will be shown using the small triangle. For example, assume you create a custom column called "Genre" and indicate that it contains hierarchical items. Once done, items such as Mystery.Thriller and Mystery.English will display as Mystery with the small triangle next to it. Clicking on the triangle will show Thriller and English as sub-items. See :ref:`Managing subgroups of books, for example "genre" <subgroups-tutorial>` for more information.
|
||||||
|
|
||||||
Hierarchical items (items with children) use the same four 'click-on' searches as user categories. Items that do not have children use two of the searches: "everything matching" and "everything not matching".
|
Hierarchical items (items with children) use the same four 'click-on' searches as user categories. Items that do not have children use two of the searches: "everything matching" and "everything not matching".
|
||||||
|
|
||||||
@ -563,7 +563,7 @@ You can have calibre display a grid of book covers instead of a list of books, i
|
|||||||
you prefer to browse your collection by covers instead. The :guilabel:`Cover
|
you prefer to browse your collection by covers instead. The :guilabel:`Cover
|
||||||
Grid` is activated by clicking the grid button in the bottom right corner of
|
Grid` is activated by clicking the grid button in the bottom right corner of
|
||||||
the main calibre window. You can customize the cover sizes and the background of
|
the main calibre window. You can customize the cover sizes and the background of
|
||||||
the cover grid via :guilabel:`Preferences->Look & Feel->Cover Grid`. You can
|
the cover grid via :guilabel:`Preferences->Look & feel->Cover grid`. You can
|
||||||
even have calibre display any specified field under the covers, such as title or
|
even have calibre display any specified field under the covers, such as title or
|
||||||
authors or rating or a custom column of your own devising.
|
authors or rating or a custom column of your own devising.
|
||||||
|
|
||||||
@ -575,8 +575,8 @@ Cover Browser
|
|||||||
|
|
||||||
In addition to the cover grid described above, you can also have calibre display
|
In addition to the cover grid described above, you can also have calibre display
|
||||||
covers in the single row. This is activated via a button in the lower right
|
covers in the single row. This is activated via a button in the lower right
|
||||||
corner of the main window. In :guilabel:`Preferences->Look & Feel->Cover
|
corner of the main window. In :guilabel:`Preferences->Look & feel->Cover
|
||||||
Browser` you can change the number of covers displayed, and even have the cover
|
browser` you can change the number of covers displayed, and even have the cover
|
||||||
browser display itself in a separate popup window.
|
browser display itself in a separate popup window.
|
||||||
|
|
||||||
Quickview
|
Quickview
|
||||||
|
@ -143,7 +143,7 @@ The functions available are listed below. Note that the definitive documentation
|
|||||||
{#genre:subitems(0,1)} returns "A, D"
|
{#genre:subitems(0,1)} returns "A, D"
|
||||||
{#genre:subitems(0,2)} returns "A.B, D.E"
|
{#genre:subitems(0,2)} returns "A.B, D.E"
|
||||||
|
|
||||||
* ``sublist(val, start_index, end_index, separator)`` -- interpret the value as a list of items separated by `separator`, returning a new list made from the items from `start_index`to `end_index`. The first item is number zero. If an index is negative, then it counts from the end of the list. As a special case, an end_index of zero is assumed to be the length of the list. Examples assuming that the tags column (which is comma-separated) contains "A, B ,C"::
|
* ``sublist(val, start_index, end_index, separator)`` -- interpret the value as a list of items separated by `separator`, returning a new list made from the items from `start_index` to `end_index`. The first item is number zero. If an index is negative, then it counts from the end of the list. As a special case, an end_index of zero is assumed to be the length of the list. Examples assuming that the tags column (which is comma-separated) contains "A, B ,C"::
|
||||||
|
|
||||||
{tags:sublist(0,1,\,)} returns "A"
|
{tags:sublist(0,1,\,)} returns "A"
|
||||||
{tags:sublist(-1,0,\,)} returns "C"
|
{tags:sublist(-1,0,\,)} returns "C"
|
||||||
|
@ -183,7 +183,7 @@ gui_last_modified_display_format = 'dd MMM yyyy'
|
|||||||
# sorted as-is (sort by title instead of title sort). For example, with
|
# sorted as-is (sort by title instead of title sort). For example, with
|
||||||
# library_order, The Client will sort under 'C'. With strictly_alphabetic, the
|
# library_order, The Client will sort under 'C'. With strictly_alphabetic, the
|
||||||
# book will sort under 'T'.
|
# book will sort under 'T'.
|
||||||
# This flag affects Calibre's library display. It has no effect on devices. In
|
# This flag affects calibre's library display. It has no effect on devices. In
|
||||||
# addition, titles for books added before changing the flag will retain their
|
# addition, titles for books added before changing the flag will retain their
|
||||||
# order until the title is edited. Double-clicking on a title and hitting return
|
# order until the title is edited. Double-clicking on a title and hitting return
|
||||||
# without changing anything is sufficient to change the sort.
|
# without changing anything is sufficient to change the sort.
|
||||||
|
@ -1082,7 +1082,7 @@ plugins += [ActionAdd, ActionFetchAnnotations, ActionGenerateCatalog,
|
|||||||
class LookAndFeel(PreferencesPlugin):
|
class LookAndFeel(PreferencesPlugin):
|
||||||
name = 'Look & Feel'
|
name = 'Look & Feel'
|
||||||
icon = I('lookfeel.png')
|
icon = I('lookfeel.png')
|
||||||
gui_name = _('Look and Feel')
|
gui_name = _('Look & feel')
|
||||||
category = 'Interface'
|
category = 'Interface'
|
||||||
gui_category = _('Interface')
|
gui_category = _('Interface')
|
||||||
category_order = 1
|
category_order = 1
|
||||||
|
@ -106,7 +106,7 @@ def option_recommendation_to_cli_option(add_option, rec):
|
|||||||
'Path to a file containing rules to transform the CSS styles'
|
'Path to a file containing rules to transform the CSS styles'
|
||||||
' in this book. The easiest way to create such a file is to'
|
' in this book. The easiest way to create such a file is to'
|
||||||
' use the wizard for creating rules in the calibre GUI. Access'
|
' use the wizard for creating rules in the calibre GUI. Access'
|
||||||
' it in the "Look & Feel->Transform styles" section of the conversion'
|
' it in the "Look & feel->Transform styles" section of the conversion'
|
||||||
' dialog. Once you create the rules, you can use the Export button'
|
' dialog. Once you create the rules, you can use the Export button'
|
||||||
' to save them to a file.'
|
' to save them to a file.'
|
||||||
)
|
)
|
||||||
@ -418,4 +418,3 @@ options specific to every input and output format.''')
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
sys.exit(main())
|
sys.exit(main())
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ class FB2Output(OutputFormatPlugin):
|
|||||||
'A value of "nothing" turns the book into a single section. '
|
'A value of "nothing" turns the book into a single section. '
|
||||||
'A value of "files" turns each file into a separate section; use this if your device is having trouble. '
|
'A value of "files" turns each file into a separate section; use this if your device is having trouble. '
|
||||||
'A value of "Table of Contents" turns the entries in the Table of Contents into titles and creates sections; '
|
'A value of "Table of Contents" turns the entries in the Table of Contents into titles and creates sections; '
|
||||||
'if it fails, adjust the "Structure Detection" and/or "Table of Contents" settings '
|
'if it fails, adjust the "Structure detection" and/or "Table of Contents" settings '
|
||||||
'(turn on "Force use of auto-generated Table of Contents").')),
|
'(turn on "Force use of auto-generated Table of Contents").')),
|
||||||
OptionRecommendation(name='fb2_genre',
|
OptionRecommendation(name='fb2_genre',
|
||||||
recommended_value='antique', level=OptionRecommendation.LOW,
|
recommended_value='antique', level=OptionRecommendation.LOW,
|
||||||
@ -190,4 +190,3 @@ class FB2Output(OutputFormatPlugin):
|
|||||||
|
|
||||||
if close:
|
if close:
|
||||||
out_stream.close()
|
out_stream.close()
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ from calibre.utils.localization import localize_user_manual_link
|
|||||||
|
|
||||||
class HeuristicsWidget(Widget, Ui_Form):
|
class HeuristicsWidget(Widget, Ui_Form):
|
||||||
|
|
||||||
TITLE = _('Heuristic\nProcessing')
|
TITLE = _('Heuristic\nprocessing')
|
||||||
HELP = _('Modify the document text and structure using common patterns.')
|
HELP = _('Modify the document text and structure using common patterns.')
|
||||||
COMMIT_NAME = 'heuristics'
|
COMMIT_NAME = 'heuristics'
|
||||||
ICON = I('heuristics.png')
|
ICON = I('heuristics.png')
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="heuristic_options">
|
<widget class="QGroupBox" name="heuristic_options">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Heuristic Processing</string>
|
<string>Heuristic processing</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
|
@ -16,7 +16,7 @@ from calibre.gui2.convert import Widget
|
|||||||
|
|
||||||
class LookAndFeelWidget(Widget, Ui_Form):
|
class LookAndFeelWidget(Widget, Ui_Form):
|
||||||
|
|
||||||
TITLE = _('Look & Feel')
|
TITLE = _('Look & feel')
|
||||||
ICON = I('lookfeel.png')
|
ICON = I('lookfeel.png')
|
||||||
HELP = _('Control the look and feel of the output')
|
HELP = _('Control the look and feel of the output')
|
||||||
COMMIT_NAME = 'look_and_feel'
|
COMMIT_NAME = 'look_and_feel'
|
||||||
@ -131,5 +131,3 @@ class LookAndFeelWidget(Widget, Ui_Form):
|
|||||||
self.opt_font_size_mapping.setText(', '.join(['%.1f'%x for x in
|
self.opt_font_size_mapping.setText(', '.join(['%.1f'%x for x in
|
||||||
d.fsizes]))
|
d.fsizes]))
|
||||||
self.opt_base_font_size.setValue(d.dbase)
|
self.opt_base_font_size.setValue(d.dbase)
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ class ProfileModel(QAbstractListModel):
|
|||||||
|
|
||||||
class PageSetupWidget(Widget, Ui_Form):
|
class PageSetupWidget(Widget, Ui_Form):
|
||||||
|
|
||||||
TITLE = _('Page Setup')
|
TITLE = _('Page setup')
|
||||||
COMMIT_NAME = 'page_setup'
|
COMMIT_NAME = 'page_setup'
|
||||||
|
|
||||||
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
|
def __init__(self, parent, get_option, get_help, db=None, book_id=None):
|
||||||
|
@ -19,7 +19,7 @@ from calibre.ebooks.conversion.search_replace import compile_regular_expression
|
|||||||
|
|
||||||
class SearchAndReplaceWidget(Widget, Ui_Form):
|
class SearchAndReplaceWidget(Widget, Ui_Form):
|
||||||
|
|
||||||
TITLE = _('Search\n&\nReplace')
|
TITLE = _('Search &\nreplace')
|
||||||
HELP = _('Modify the document text and structure using user defined patterns.')
|
HELP = _('Modify the document text and structure using user defined patterns.')
|
||||||
COMMIT_NAME = 'search_and_replace'
|
COMMIT_NAME = 'search_and_replace'
|
||||||
ICON = I('search.png')
|
ICON = I('search.png')
|
||||||
|
@ -13,7 +13,7 @@ from calibre.gui2 import error_dialog
|
|||||||
|
|
||||||
class StructureDetectionWidget(Widget, Ui_Form):
|
class StructureDetectionWidget(Widget, Ui_Form):
|
||||||
|
|
||||||
TITLE = _('Structure\nDetection')
|
TITLE = _('Structure\ndetection')
|
||||||
ICON = I('chapters.png')
|
ICON = I('chapters.png')
|
||||||
HELP = _('Fine tune the detection of chapter headings and '
|
HELP = _('Fine tune the detection of chapter headings and '
|
||||||
'other document structure.')
|
'other document structure.')
|
||||||
@ -46,4 +46,3 @@ class StructureDetectionWidget(Widget, Ui_Form):
|
|||||||
_('The XPath expression %s is invalid.')%x.text).exec_()
|
_('The XPath expression %s is invalid.')%x.text).exec_()
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Option = namedtuple('Option', 'option, default, dest, action, help')
|
|||||||
|
|
||||||
class EPUB_MOBI(CatalogPlugin):
|
class EPUB_MOBI(CatalogPlugin):
|
||||||
|
|
||||||
'ePub catalog generator'
|
'EPUB catalog generator'
|
||||||
|
|
||||||
name = 'Catalog_EPUB_MOBI'
|
name = 'Catalog_EPUB_MOBI'
|
||||||
description = 'AZW3/EPUB/MOBI catalog generator'
|
description = 'AZW3/EPUB/MOBI catalog generator'
|
||||||
@ -42,14 +42,14 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
action=None,
|
action=None,
|
||||||
help=_('Title of generated catalog used as title in metadata.\n'
|
help=_('Title of generated catalog used as title in metadata.\n'
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--cross-reference-authors',
|
Option('--cross-reference-authors',
|
||||||
default=False,
|
default=False,
|
||||||
dest='cross_reference_authors',
|
dest='cross_reference_authors',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Create cross-references in Authors section for books with multiple authors.\n"
|
help=_("Create cross-references in Authors section for books with multiple authors.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--debug-pipeline',
|
Option('--debug-pipeline',
|
||||||
default=None,
|
default=None,
|
||||||
dest='debug_pipeline',
|
dest='debug_pipeline',
|
||||||
@ -59,14 +59,14 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
"directory. Useful if you are unsure at which stage "
|
"directory. Useful if you are unsure at which stage "
|
||||||
"of the conversion process a bug is occurring.\n"
|
"of the conversion process a bug is occurring.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--exclude-genre',
|
Option('--exclude-genre',
|
||||||
default='\[.+\]|^\+$',
|
default='\[.+\]|^\+$',
|
||||||
dest='exclude_genre',
|
dest='exclude_genre',
|
||||||
action=None,
|
action=None,
|
||||||
help=_("Regex describing tags to exclude as genres.\n"
|
help=_("Regex describing tags to exclude as genres.\n"
|
||||||
"Default: '%default' excludes bracketed tags, e.g. '[Project Gutenberg]', and '+', the default tag for read books.\n"
|
"Default: '%default' excludes bracketed tags, e.g. '[Project Gutenberg]', and '+', the default tag for read books.\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--exclusion-rules',
|
Option('--exclusion-rules',
|
||||||
default="(('Catalogs','Tags','Catalog'),)",
|
default="(('Catalogs','Tags','Catalog'),)",
|
||||||
dest='exclusion_rules',
|
dest='exclusion_rules',
|
||||||
@ -79,63 +79,63 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
"will exclude a book with a value of 'Archived' in the custom column 'status'.\n"
|
"will exclude a book with a value of 'Archived' in the custom column 'status'.\n"
|
||||||
"When multiple rules are defined, all rules will be applied.\n"
|
"When multiple rules are defined, all rules will be applied.\n"
|
||||||
"Default: \n" + '"' + '%default' + '"' + "\n"
|
"Default: \n" + '"' + '%default' + '"' + "\n"
|
||||||
"Applies to AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--generate-authors',
|
Option('--generate-authors',
|
||||||
default=False,
|
default=False,
|
||||||
dest='generate_authors',
|
dest='generate_authors',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Include 'Authors' section in catalog.\n"
|
help=_("Include 'Authors' section in catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--generate-descriptions',
|
Option('--generate-descriptions',
|
||||||
default=False,
|
default=False,
|
||||||
dest='generate_descriptions',
|
dest='generate_descriptions',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Include 'Descriptions' section in catalog.\n"
|
help=_("Include 'Descriptions' section in catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--generate-genres',
|
Option('--generate-genres',
|
||||||
default=False,
|
default=False,
|
||||||
dest='generate_genres',
|
dest='generate_genres',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Include 'Genres' section in catalog.\n"
|
help=_("Include 'Genres' section in catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--generate-titles',
|
Option('--generate-titles',
|
||||||
default=False,
|
default=False,
|
||||||
dest='generate_titles',
|
dest='generate_titles',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Include 'Titles' section in catalog.\n"
|
help=_("Include 'Titles' section in catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--generate-series',
|
Option('--generate-series',
|
||||||
default=False,
|
default=False,
|
||||||
dest='generate_series',
|
dest='generate_series',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Include 'Series' section in catalog.\n"
|
help=_("Include 'Series' section in catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--generate-recently-added',
|
Option('--generate-recently-added',
|
||||||
default=False,
|
default=False,
|
||||||
dest='generate_recently_added',
|
dest='generate_recently_added',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Include 'Recently Added' section in catalog.\n"
|
help=_("Include 'Recently Added' section in catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--genre-source-field',
|
Option('--genre-source-field',
|
||||||
default=_('Tags'),
|
default=_('Tags'),
|
||||||
dest='genre_source_field',
|
dest='genre_source_field',
|
||||||
action=None,
|
action=None,
|
||||||
help=_("Source field for Genres section.\n"
|
help=_("Source field for Genres section.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--header-note-source-field',
|
Option('--header-note-source-field',
|
||||||
default='',
|
default='',
|
||||||
dest='header_note_source_field',
|
dest='header_note_source_field',
|
||||||
action=None,
|
action=None,
|
||||||
help=_("Custom field containing note text to insert in Description header.\n"
|
help=_("Custom field containing note text to insert in Description header.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--merge-comments-rule',
|
Option('--merge-comments-rule',
|
||||||
default='::',
|
default='::',
|
||||||
dest='merge_comments_rule',
|
dest='merge_comments_rule',
|
||||||
@ -145,14 +145,16 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
" [before|after] Placement of notes with respect to Comments\n"
|
" [before|after] Placement of notes with respect to Comments\n"
|
||||||
" [True|False] - A horizontal rule is inserted between notes and Comments\n"
|
" [True|False] - A horizontal rule is inserted between notes and Comments\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--output-profile',
|
Option('--output-profile',
|
||||||
default=None,
|
default=None,
|
||||||
dest='output_profile',
|
dest='output_profile',
|
||||||
action=None,
|
action=None,
|
||||||
help=_("Specifies the output profile. In some cases, an output profile is required to optimize the catalog for the device. For example, 'kindle' or 'kindle_dx' creates a structured Table of Contents with Sections and Articles.\n" # noqa
|
help=_("Specifies the output profile. In some cases, an output profile is required to optimize"
|
||||||
"Default: '%default'\n"
|
" the catalog for the device. For example, 'kindle' or 'kindle_dx' creates a structured"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
" Table of Contents with Sections and Articles.\n"
|
||||||
|
"Default: '%default'\n"
|
||||||
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--prefix-rules',
|
Option('--prefix-rules',
|
||||||
default="(('Read books','tags','+','\u2713'),('Wishlist item','tags','Wishlist','\u00d7'))",
|
default="(('Read books','tags','+','\u2713'),('Wishlist item','tags','Wishlist','\u00d7'))",
|
||||||
dest='prefix_rules',
|
dest='prefix_rules',
|
||||||
@ -161,22 +163,22 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
"The model for a prefix rule is ('<rule name>','<source field>','<pattern>','<prefix>').\n"
|
"The model for a prefix rule is ('<rule name>','<source field>','<pattern>','<prefix>').\n"
|
||||||
"When multiple rules are defined, the first matching rule will be used.\n"
|
"When multiple rules are defined, the first matching rule will be used.\n"
|
||||||
"Default:\n" + '"' + '%default' + '"' + "\n"
|
"Default:\n" + '"' + '%default' + '"' + "\n"
|
||||||
"Applies to AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--preset',
|
Option('--preset',
|
||||||
default=None,
|
default=None,
|
||||||
dest='preset',
|
dest='preset',
|
||||||
action=None,
|
action=None,
|
||||||
help=_("Use a named preset created with the GUI Catalog builder.\n"
|
help=_("Use a named preset created with the GUI catalog builder.\n"
|
||||||
"A preset specifies all settings for building a catalog.\n"
|
"A preset specifies all settings for building a catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--use-existing-cover',
|
Option('--use-existing-cover',
|
||||||
default=False,
|
default=False,
|
||||||
dest='use_existing_cover',
|
dest='use_existing_cover',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
help=_("Replace existing cover when generating the catalog.\n"
|
help=_("Replace existing cover when generating the catalog.\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to: AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
Option('--thumb-width',
|
Option('--thumb-width',
|
||||||
default='1.0',
|
default='1.0',
|
||||||
dest='thumb_width',
|
dest='thumb_width',
|
||||||
@ -184,7 +186,7 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
help=_("Size hint (in inches) for book covers in catalog.\n"
|
help=_("Size hint (in inches) for book covers in catalog.\n"
|
||||||
"Range: 1.0 - 2.0\n"
|
"Range: 1.0 - 2.0\n"
|
||||||
"Default: '%default'\n"
|
"Default: '%default'\n"
|
||||||
"Applies to AZW3, ePub, MOBI output formats")),
|
"Applies to: AZW3, EPUB, MOBI output formats")),
|
||||||
]
|
]
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
@ -331,7 +333,7 @@ class EPUB_MOBI(CatalogPlugin):
|
|||||||
opts.log.warn('\n*** No enabled Sections, terminating catalog generation ***')
|
opts.log.warn('\n*** No enabled Sections, terminating catalog generation ***')
|
||||||
return ["No Included Sections", "No enabled Sections.\nCheck E-book options tab\n'Included sections'\n"]
|
return ["No Included Sections", "No enabled Sections.\nCheck E-book options tab\n'Included sections'\n"]
|
||||||
if opts.fmt == 'mobi' and sections_list == ['Descriptions']:
|
if opts.fmt == 'mobi' and sections_list == ['Descriptions']:
|
||||||
warning = _("\n*** Adding 'By Authors' Section required for MOBI output ***")
|
warning = _("\n*** Adding 'By authors' section required for MOBI output ***")
|
||||||
opts.log.warn(warning)
|
opts.log.warn(warning)
|
||||||
sections_list.insert(0, 'Authors')
|
sections_list.insert(0, 'Authors')
|
||||||
opts.generate_authors = True
|
opts.generate_authors = True
|
||||||
|
@ -531,7 +531,7 @@ class CatalogBuilder(object):
|
|||||||
if author[0] == current_author[0]:
|
if author[0] == current_author[0]:
|
||||||
if self.opts.fmt == 'mobi':
|
if self.opts.fmt == 'mobi':
|
||||||
# Exit if building MOBI
|
# Exit if building MOBI
|
||||||
error_msg = _("<p>Inconsistent Author Sort values for Author<br/>" +
|
error_msg = _("<p>Inconsistent author sort values for author<br/>" +
|
||||||
"'{!s}':</p>".format(author[0]) +
|
"'{!s}':</p>".format(author[0]) +
|
||||||
"<p><center><b>{!s}</b> != <b>{!s}</b></center></p>".format(author[1], current_author[1]) +
|
"<p><center><b>{!s}</b> != <b>{!s}</b></center></p>".format(author[1], current_author[1]) +
|
||||||
"<p>Unable to build MOBI catalog.<br/>" +
|
"<p>Unable to build MOBI catalog.<br/>" +
|
||||||
@ -540,13 +540,13 @@ class CatalogBuilder(object):
|
|||||||
self.opts.log.warn('\n*** Metadata error ***')
|
self.opts.log.warn('\n*** Metadata error ***')
|
||||||
self.opts.log.warn(error_msg)
|
self.opts.log.warn(error_msg)
|
||||||
|
|
||||||
self.error.append('Author Sort mismatch')
|
self.error.append('Author sort mismatch')
|
||||||
self.error.append(error_msg)
|
self.error.append(error_msg)
|
||||||
raise AuthorSortMismatchException("author_sort mismatch while building MOBI")
|
raise AuthorSortMismatchException("author_sort mismatch while building MOBI")
|
||||||
else:
|
else:
|
||||||
# Warning if building non-MOBI
|
# Warning if building non-MOBI
|
||||||
if not self.error:
|
if not self.error:
|
||||||
self.error.append('Author Sort mismatch')
|
self.error.append('Author sort mismatch')
|
||||||
|
|
||||||
error_msg = _("Warning: Inconsistent Author Sort values for Author '{!s}':\n".format(author[0]) +
|
error_msg = _("Warning: Inconsistent Author Sort values for Author '{!s}':\n".format(author[0]) +
|
||||||
" {!s} != {!s}\n".format(author[1], current_author[1]))
|
" {!s} != {!s}\n".format(author[1], current_author[1]))
|
||||||
|
@ -992,7 +992,7 @@ def catalog_option_parser(args):
|
|||||||
log = Log()
|
log = Log()
|
||||||
parser = get_parser(_(
|
parser = get_parser(_(
|
||||||
'''
|
'''
|
||||||
%prog catalog /path/to/destination.(CSV|EPUB|MOBI|XML ...) [options]
|
%prog catalog /path/to/destination.(csv|epub|mobi|xml...) [options]
|
||||||
|
|
||||||
Export a catalog in format specified by path/to/destination extension.
|
Export a catalog in format specified by path/to/destination extension.
|
||||||
Options control how entries are displayed in the generated catalog output.
|
Options control how entries are displayed in the generated catalog output.
|
||||||
|
@ -178,7 +178,7 @@ def manage_users(path=None):
|
|||||||
|
|
||||||
def create_option_parser():
|
def create_option_parser():
|
||||||
parser=opts_to_parser('%prog '+ _(
|
parser=opts_to_parser('%prog '+ _(
|
||||||
'''[options] [path to library folder ...]
|
'''[options] [path to library folder...]
|
||||||
|
|
||||||
Start the calibre content server. The calibre content server
|
Start the calibre content server. The calibre content server
|
||||||
exposes your calibre libraries over the internet. You can specify
|
exposes your calibre libraries over the internet. You can specify
|
||||||
|
Loading…
x
Reference in New Issue
Block a user