Includes:
- FB2: merge other metadata in returned keywords and description
- CSS: adds support for font-variant
Also:
- Rebase MD5 module against upstream
- Update cURL to 7.69.1
- Add some style tweaks to allow displaying FB2 end notes
in-page too - and to allow showing them without a smaller
font size.
- Show footnote number in bold in popup footnotes.
Includes:
- FB2 footnotes: disable hardcoded handling as in-page 2
- CSS: also support gray colors spelled "grey"
- Text: move past floats when wide image or inlineBox does not fit
- Fix list item marker clipping check
- Ensure nodeDisplayStyleHash change when boxing prevented by cache
- Text: adds LFormattedText.is_reusable
- Handle block elements inside inline element
- Fix getBookmark() on multi-pages embedded block
- (Upstream) Support raw picture in RTF
- (Upstream) Fixed integer overflow in cache size calculations
- Add libCURL's CA bundle to the ignore list
- FB2 footnotes: fix setBoxingWishedButPreventedByCache()
- fb2.css: handle body[name="comments"] as footnotes
Also: Update base/thirdparty/turbo to v2.1.3.
Set these 2 tweaks as default global tweaks for new users
(and existing users that have not set any global defaults).
One can disable them by long-press on each of them.
Only per-specs EPUB and FB2 footnotes (other in-page footnotes
tweaks may trigger on non-footnote content on some books, so
let enabling them be a user decision).
Our code expects (rightfully) the TOC items to be ordered
and to have increasing page numbers, but we may occasionally
not get that from the engines (usually, because of bugs or
duplicated IDs in the document).
Check for that and fix page numbers (possibly making them
wrong) to have a working TOC.
Depending on the random ordering of bookmarks and highlights
on a same page, the binary seach could not notice that a
bookmark exists for this page.
Solve this by putting bookmark before highlights on a same
page in the list, and skip them when searching.
Really needed these :resetLayout() (as done in Menu.lua)
when stuff is right aligned (otherwise, first computation
of x-offset, when there was no content, being Screen.width,
would stick, and would draw the content off-screen on the
right - no issue noticed when left-aligned as the offsets
would stay being 0 whether there is content or none).
- FB2 footnotes are no more rendered in-page by default
- In-page rendering can be enable by the added Style tweak
- FB2 footnotes can also show in footnote popup (with
some added not-so-nice CSS so MuPDF can render them
as crengine)
Solve the issue when a font without bold and italic variants
is used as the default font (e.g. FreeSerif), and the style
tweak "Ignore publisher font-family" is used (which uses
a trick to cancel any font-family by requesting a font
named "NoSuchFont"):
When text is italic or bold, any of the registered fonts
which have a real italic or bold variant would win over our
default font, as the best substitute to NoSuchFont-Italic.
This gives our default font a bit more bias so it can
win in its scoring against the other fonts, and be rendered
as fake italic or fake bold - which will ensure consistent
font and line height.
(A bit hacky, but no alternative solution found.)
Enable new rendering feature COMPLETE_INCOMPLETE_TABLES
on all enhanced rendering mode, but have it disabled for
earlier cre_dom_version.
Also increase default_cre_storage_size_factor from 20 to 40.
Just like what's been done previously for InfoMessage.
Also tweak 'other_buttons' option (not yet used anywhere)
to allow multiple rows of such other buttons.
* Update macOS PATH shenanigans.
c.f., https://github.com/koreader/koreader-base/pull/1052
* Prefer coreutils, it now ships everything we need.
(Or it always did? I apparently don't actually have coreutils
installed on my end).
* Also recommend putting Homebrew first in PATH
Mainly because it turns out that's how I tested this the last time ;).
Also, it just makes sense, and might be part of Homebrew's
recommendations anyway.
Adds a screensaver mode which is just a line of text at the top of the screen. Purpose is to be minimally obstructive while still displaying something to indicate the device is asleep.
Don't display a tofu glyph when meeting a tab (none of
our fonts have a glyph for it).
New parameter: TextBoxWidget.tabstop_nb_space_width,
that defaults to 8, to ensure tabstops in the usual
left aligmnent (or right when para is RTL).
* Make sure the Color menu is accessible on GrayScale device, in the event
one would have inherited a color-enabled settings from another
device...
* Warn on startup if color rendering is enabled on a grayscale device.
A non-exhaustive lists of things such a setup would break:
* same-to-same blitbuffers for pretty much every rendering engine
* same-to-same blitting codepaths and fast-paths
* software dithering in CRe
So that Statistics settings modified while in FileManager
are saved.
Also allows resetting statistics when in FileManager
(where there is no current book id to exclude).
Also adds options to remove statistics for books
with low reading duration (to clean up stats for
books just quickly browsed and not yet read).
Also adds TextWidget:getFontSizeToFitHeight()
even if we ended up not using it.