summaryrefslogtreecommitdiff
path: root/source/html
AgeCommit message (Collapse)Author
2016-02-04Make HTML layout use harfbuzz for shaping.Robin Watts
fz_fonts gain a 'shaper' field that will be filled in as required. Use a void * rather than an hb_font_t to avoid polluting top level include space. Harfbuff handles mirroring for us, so lose the 'mirror' fields. This simplifies our wrappers around the 'standard' bidi code in that we don't need to split fragments upon mirroring. We do need to split our fragments at script changes though as harfbuzz only operates on a single font at a time. Update the html flow structure so that each flow node contains details of the the direction specified for it in the markup, the language specified for it in the markup and the script detected by the bidi code. Get the bidi code to pass out the script for each fragment as part of the callback and populate that field in the node. Ensure that we pass in the markup direction to the bidi splitting code as the 'base' direction. When feeding the bidi code, rather than feeding it paragraphs at a time, break those paragraphs if different parts of them have different marked up directions.
2016-01-28Add fallback font cache to font context.Tor Andersson
2016-01-28Add Noto fallback fonts.Tor Andersson
Look up fallback fonts by unicode script, with a flag to select the serif or sans-serif font style where such variants exist. Move all builtin fonts into fitz namespace.
2016-01-22epub: Ignore missing fallback font for NOCJK builds.Tor Andersson
2016-01-22epub: Implement @font-face rules.Tor Andersson
Note: font->fallback is not reference counted here. The fallback mechanism is probably going to have to change when we add text shaping.
2016-01-22epub: Fix memory leak of bidi detection scratch buffer.Tor Andersson
2016-01-21epub: Put font fallback chain in fz_font.Tor Andersson
fz_encode_character_with_fallback finds the first font in the fallback chain that has the glyph encoded, and if none do then try to encode a bullet character.
2016-01-20epub: Adjust text-align based on paragraph directionality.Tor Andersson
In RTL context, text-align: left should be right, and vice versa. Since we currently ignore the dir="xxx" HTML attributes and CSS properties, always pick up the directionality from the text as if dir="auto".
2016-01-20Various formatting cleanups.Tor Andersson
2016-01-20Tidy bidirectional source.Robin Watts
Make the import follow mupdf style (better, if not perfect). Use ucdn where possible to avoid duplicating tables. Shrink the types, make them explicit (e.g. use fz_bidi_level rather than int) and make tables const. Use 32-bit integers for text.
2016-01-18Add support for bidirectional mirror charactersRobin Watts
2016-01-18Save some space in fz_html_flow with a union.Robin Watts
2016-01-18Implement R2L characterwise plotting in the html layout.Robin Watts
2016-01-18Ensure layout honours text directional (block level).Robin Watts
2016-01-18Process HTML text for directionality.Robin Watts
After we parse html text from an ebook run it through the unicode bidirectional algorithm to determine the directionality of each fragment. This may require splitting of fragments. Currently we don't do anything with this information.
2016-01-18Move fz_html_flow to use a bitfield.Robin Watts
Saves a bit of memory, and prepares for the addition of later fields (such as direction).
2016-01-08epub: Fix memory leaks.Tor Andersson
2016-01-08epub: Use pool allocator for fz_html box tree.Tor Andersson
2016-01-06epub: Only look for CSS in html head node.Tor Andersson
2016-01-06epub: Speed up css application by sorting the matched property list.Tor Andersson
2016-01-06epub: Optimize CSS selector matching.Tor Andersson
Remove strcpy and strtok calls when matching class conditions.
2016-01-05epub: Speed up CSS style application by using faster strtod.Tor Andersson
CSS doesn't need precision, and doesn't support exponential notation. Use a simpler string to float conversion algorithm, which is magnitudes of order faster.
2015-12-11Keep spans of multiple fonts and sizes in one fz_text object.Tor Andersson
2015-10-06epub: Implement style 'visibility' attribute.Tor Andersson
2015-10-02epub: Parse NCX table of contents.Tor Andersson
2015-10-02epub: Use CJK line breaking rules.Tor Andersson
A far cry from the full Unicode Line Breaking Algorithm, but it solves the main issues with CJK line breaking.
2015-10-02epub: Parse enough metadata to find title and author.Tor Andersson
2015-09-24epub: Add metadata function.Tor Andersson
Still a no-op except for returning the document format.
2015-09-15epub: Use a fallback font.Tor Andersson
2015-09-15epub: Fix typo in roman numeral formatting.Tor Andersson
2015-07-20Bug 696100: Fix NULL deref.Robin Watts
Check flow is not NULL before dereferencing it. Everything else in this area of the code copes with it being NULL.
2015-05-26epub: Skip initial whitespace flow nodes when finding list anchors.Tor Andersson
They are skipped during layout, so should also be skipped here. Fixes bug 695943.
2015-05-19epub: Parse CSS combinators left-associatively.Tor Andersson
Fixes bug 695994 where multiple child selectors would not match properly. The "a > b > c" rule should be interpreted as ((a > b) > c) in order to match properly.
2015-05-19epub: User stylesheets.Tor Andersson
Add -U option to mupdf and mudraw to set a user stylesheet. Uses a context to store user the stylesheet, just like the AA level.
2015-05-19epub: Use per chapter page margins.Tor Andersson
2015-05-19epub: Support !important property declarations.Tor Andersson
2015-05-18epub: Improve default stylesheet.Tor Andersson
2015-05-15epub: Use flag bits for white-space enum.Tor Andersson
2015-05-15epub: Don't inherit font-size textually, despite what the spec says.Tor Andersson
Ignore inheritance on font-size properties altogether. Since we already inherit the font-size during the 'em' calculations when laying out text, inheriting the font-size property textually will result in doubling the effect of any scaling.
2015-05-15epub: Apply @page selector margins.Tor Andersson
2015-05-15epub: Parse (and ignore) @page selector.Tor Andersson
2015-05-15epub: Move collapsed parent/child top margins to outside the parent.Tor Andersson
2015-05-15epub: Improve margin collapsing.Tor Andersson
2015-05-15epub: Handle white-space property.Tor Andersson
Add 'break' nodes to flow list for forced line breaks.
2015-05-07epub: Allow space between property name and ':'.Tor Andersson
2015-05-07epub: Fix typo when parsing negative numbers.Tor Andersson
2015-05-07epub: Whitespace separated by comments turn into two whitespace tokens.Tor Andersson
Deal with it.
2015-05-06WIP: Add debug printing function for generated boxes.Tor Andersson
2015-05-06epub: Add 'auto' as a special number value.Tor Andersson
2015-05-06epub: Rejig CSS parser -- whitespace is significant!Tor Andersson
The selectors ".foo.bar" and ".foo .bar" are not equivalent! They should parse as "*.foo.bar" and "*.foo *.bar" but we parsed both as "*.foo.bar" due to us ignoring significant whitespace.