nehan
Version:
Html layout engine for paged-media written in Typescript
482 lines (379 loc) • 14.7 kB
Plain Text
===============================================================================
Preliminary notes:
------------------
Mark "o": new feature
Mark "*": bug fixed.
Mark "!": change that can break compatibility with older version
===============================================================================
version 7.8.15, 2021/09/04
==========================
* Added @types/offscreencanvas to fix compilation errors.
version 7.8.14, 2021/07/16
==========================
* Fixed inline size of baseline so that scrollbars are not visible when 'text-align:end' is used.
But Note that 'horizontal-tb' case has not yet been fixed.
version 7.8.13, 2021/06/04
==========================
o Enabled text-emphasis to SmpUniChar, MixChar.
version 7.8.12, 2021/05/28
==========================
* Excluded character that is not target of justification.
version 7.8.11, 2021/05/26
==========================
* Fix invalid justify spacing size.
version 7.8.10, 2021/05/26
==========================
* Fix metrics of U+FF64(HALFWIDTH IDEOGRAPHIC COMMA) and U+FF65(HALFWIDTH KATAKANA MIDDLE DOT).
version 7.8.9, 2021/05/13
==========================
o Enabled emphasis style to dual-char which is not 'yakumono' strings.
version 7.8.8, 2021/04/26
==========================
o Added exports field to package.json.
version 7.8.7, 2021/04/26
==========================
* Removed unused code.
version 7.8.6, 2021/04/05
==========================
o Added U+00AB, U+00BB to dualCharTable.
version 7.8.5, 2021/03/30
==========================
o Added innerHTML(getter) for NehanElement.
version 7.8.4, 2021/03/29
==========================
* Fixed bug of getSectionAt in some case.
version 7.8.3, 2021/03/28
==========================
* Fixed getSectionAt to get strict secion from pageIndex.
version 7.8.2, 2021/03/20
==========================
o Added Config.defaultTableBorderColor.
o Set Config.defaultBorderColor from 'rgb(0,0,0,0.4)' to 'transparent'.
version 7.8.1, 2021/03/19
==========================
o HoriCssEvaluator and VertCssEvaluator are merged into LogicalCssEvaluator.
version 7.8.0, 2021/03/15
==========================
! Rename getSectionByPageIndex to getSectionAt.
version 7.7.4, 2021/03/15
==========================
* Make getSectionByPageIndex always returns the closest section.
version 7.7.3, 2021/03/14
==========================
* Fixed getSectionByPageIndex for root section(prefer sub section).
version 7.7.2, 2021/03/14
==========================
o Added getSectionByPageIndex method to IFlowRootFormatContext, LayoutOutline, LayoutSection.
version 7.7.1, 2021/03/13
==========================
o Added 'text-decoration' to unmanagedCssProps.
* Disable text-decoration for vertical link text.
version 7.7.0, 2021/03/04
==========================
! Rename HtmlDodument to NehanDocument, PagedHtmlDocument to PagedNehanDocument.
! Rename HtmlElement to NehanElement.
version 7.6.5, 2021/03/03
==========================
o Added ILogicalNode::ILogicalNodePos to obtain {offset, client}Pos of node.
version 7.6.4, 2021/02/25
==========================
o Added HtmlElement::innerHTML(setter).
o Added $dom property for HtmlElement to embed external dom directly.
o Added DynamicStyleContext::setExternalDOM to embed external dom from dynamic style.
version 7.6.3, 2021/02/22
==========================
* Fixed anchor target bug for some pattern.
version 7.6.2, 2021/02/22
==========================
o Added parent field to ILogicalNode.
o Added DomCallbackEffector.
version 7.6.1, 2021/02/20
==========================
* Fixed page index for anchor and header.
version 7.6.0, 2021/02/19
==========================
o Added ILogicalNode, HtmlElement, HTMLElement to Anchor.
o Added IFlowRootFormatContext to DomCallbackContext.
! Removed LogicalNodeEvaluatorFactory.
* Set strict page index for header and anchor.
version 7.5.1, 2021/02/14
==========================
! Updated context type from string to ICharacter in Config::isTcyWord.
version 7.5.0, 2021/02/14
==========================
* Use '??' operator instead of '||' in CssCascade.
! Removed Config::rexTcy, Config::rexTcyUni. Use Config::isTcyWord instead.
! Added context data({prev:string, next: string}) to Config::isTcyWord.
version 7.4.0, 2021/02/05
==========================
o Added TokenMapper(visitor of ILexer).
! Removed TextLexer::uprightTokens(use UprightTokenMapper instead).
* Prevent append canvas if document.body is not ready.
version 7.3.7, 2020/10/01
==========================
o Added jest-canvas-mock.
* Removed unused class from text-measure.
* Fixed warning in html-element.test.ts.
version 7.3.6, 2020/09/30
==========================
o Added Config.useStrictFormatContextName.
o Set more strict measure using canvas2d context(for safari, firefox).
* Fixed initializer of TextMetricsMeasure.
* Removed extra debug code.
* Fixed space size for Safari, Firefox.
* Added work around of 'text-combine-upright' for Safari(use '-webkit-text-combine: horizontal' instead).
version 7.3.0, 2020/07/02
==========================
! Use module 'es2020'(tsconfig.json).
version 7.2.9, 2020/06/25
==========================
* Fixed tsconfig(removed: module:"commonjs", added: moduleResolution: "node").
version 7.2.8, 2020/06/07
==========================
o Added LogicalNodeEvaluatorFactory.
version 7.2.7, 2020/05/09
==========================
* Use specified length for the size of inline block even if it's zero.
* Fixed justify spacing size.
version 7.2.6, 2020/05/08
==========================
* Fixed module order(for electron trouble).
version 7.2.5, 2020/05/08
==========================
* Fixed measure size of inline-block in some cases.
version 7.2.4, 2020/05/08
==========================
* Fixed inline-block size in some cases.
* Fixed line-head detection in text-format-context.
* Fixed inlineRoot property for inline-level element.
* Prevent creating text box if context.characters are empty.
version 7.2.3, 2020/05/05
==========================
o Supports last-child pseudo-class selector.
* Fixed some pseudo-class bug.
* Removed node-sass from devDependencies.
version 7.2.2, 2020/05/02
==========================
* Added line-break before block level inside inline if inline pos of parent block is larger than zero.
version 7.2.1, 2020/05/01
==========================
* Fixed type guards for text-emphasis.
version 7.2.0, 2020/05/01
==========================
! Renamed class(ResourceLoader -> ImageLoader, ResourceLoaderContext -> ImageLoaderContext).
* Fixed too large font-size of some emphasis-mark(circle, double-circle, triangle, sesame).
* Fixed the case that ruby isn't displayed when Config.ignoreEmptyInline is true and parent display is inline.
* Fixed margin from inline-level.
version 7.1.2, 2020/04/25
==========================
* Skip text node when rest measure is too small even if it's at the head of line.
* Fixed regexp for character reference.
version 7.1.1, 2020/04/21
==========================
o Added new property firstAtomChild to HtmlElement.
* Fixed margin collapse in some cases.
* Fixed outside flow of table-caption.
* Fixed extent of line when it's not a text-line.
version 7.1.0, 2020/04/17
==========================
o Omit a space at the beginning of a line surrounded by two words.
* Fixed baseline size in some case.
! Changed return type of DynamicStyleCallback.
version 7.0.13, 2020/04/15
==========================
* Fix logic of skipping <br> tag just after line-break after inline overflow of text-node.
version 7.0.12, 2020/04/15
==========================
* Prevent double line-break by <br> that follows overflow-indent of text-node.
version 7.0.11, 2020/04/13
==========================
* Use data-src if defined when loading image.
version 7.0.10, 2020/04/12
==========================
o Load poster of video in ResourceLoader.
o Added DynamicStyleUtils.smartBorderBreak to prevent element from being created that consists only of border-before.
version 7.0.9, 2020/04/11
==========================
o Supports video tag.
* Ignore zero size replaced-element if measure or extent is zero and Config.ignoreZeroRe is true.
version 7.0.8, 2020/04/10
==========================
o Discard line extent if no text is not included.
o Added Config.ignoreZeroRe to discard zero size replaced element.
* Fixed invalid rem-size in dynamic-style(smartHeader).
* Prevents the occurrence of pages containing only a single line.
* Fixed layouting trouble(table was discarded in inline-level).
* Fixed margin-collapse bug in some cases.
version 7.0.7, 2020/04/09
==========================
o Support overflow-wrap: break-word.
version 7.0.6, 2020/04/08
==========================
* Fix block level margin inside inline flow.
* Fix smart header(set margin-before to zero if it's a first block element).
version 7.0.5, 2020/04/05
==========================
* Avoid skipping spaces if white-space is pre in block level.
version 7.0.4, 2020/04/04
==========================
* Fix invalid text normalizer.
version 7.0.3, 2020/04/04
==========================
* Fix wrong page-break condition for some case.
o Added default option to constructor of PagedHtmlElement({styleSheets:[]}).
version 7.0.2, 2020/04/03
==========================
o Added Config.ignoreEmptyLine, Config.ignoreEmptyInline.
* Ignore size of border-radius if corresponding border-width is zero.
* Fix kerning trouble for some pattern.
* Fix block level margin between block level element and inline(or text) element.
* Fix layout overflow caused by too large replaced-element.
version 7.0.1, 2020/04/01
==========================
* Fix table-cell layouting bug.
* Fix baseline for replaced element in horizontal mode.
o Removed unused files(nehan.css).
version 7.0.0, 2020/03/30
==========================
! Totally refact parsing algorithem.
o 20% faster than version6.
o 13% smaller than version6.
o vertical-align in table-cell is supported.
o More strict border collapsing.
! PageReader is deprecated, use PagedHtmlDocument instead.
version 6.1.0, 2019/11/11
==========================
o Added HtmlElement::clone.
o Sweep out block elements from children of inline element.
o Use OffscreenCanvas if supported for getting word metrics.
version 6.0.40, 2019/11/11
==========================
* Fix npm package.
version 6.0.39, 2019/09/16
==========================
* Avoid getter for Tcy::charCount.
version 6.0.38, 2019/09/16
==========================
* Avoid getter for ICharacter::charCount when it's fixed value.
version 6.0.37, 2019/08/01
==========================
* Release miss. Reupload.
version 6.0.36, 2019/08/01
==========================
* Treat U+301F(LOW DOUBLE PRIME QUOTATION MARK) as kakkoEnd.
version 6.0.35, 2019/07/29
==========================
o Just updated versions of devDependencies.
version 6.0.34, 2019/07/25
==========================
o Added acmCharCount for LogicalPage.
version 6.0.33, 2019/07/19
==========================
* Added index.js, index.d.ts to project root.
version 6.0.32, 2019/07/19
==========================
* Fix path of `main`, `types` of package.json.
version 6.0.31, 2019/07/18
==========================
* Call dom-callback when img element is created.
version 6.0.30, 2019/07/11
==========================
* Fixed bug of computed extent size(parent context was not passed for 'extent' property).
version 6.0.29, 2019/06/08
==========================
* Fix kerning trouble for half size parenthesis(U+0028, U+0029, U+005B, U+005D, U+007B, U+007D).
version 6.0.28, 2019/03/21
==========================
* Added workaround for es5 environments(like googlebot with Chrome41).
version 6.0.27, 2019/02/26
==========================
* Fix rollback bug of ruby generator.
version 6.0.26, 2019/02/21
==========================
* Fix kerning trouble about half size character.
o Update default value of Config.maxJustifyGap.
version 6.0.25, 2019/02/20
==========================
* Fix line break bug when brasagari(hyphenation) is executed.
version 6.0.24, 2019/02/19
==========================
* Fix line break bug for some cases.
version 6.0.23, 2019/01/30
==========================
o Added [maxJustifyGap] to configuration.
version 6.0.22, 2019/01/01
==========================
* Fix hyphenation bug for some case.
version 6.0.21, 2018/11/11
==========================
* Ignore margin and border for root layout(<body> in general)
version 6.0.20, 2018/11/11
==========================
! If root box(<body> in general), ignore logical margin. In other words, use native css instead.
version 6.0.19, 2018/11/07
==========================
o Added DynamicStyletils::replaceContent.
* Fix box css of horizontal inline.
* Fix horizontal baseline for some case.
version 6.0.18, 2018/11/01
==========================
* Fix dynamically loaded style.
version 6.0.17, 2018/10/31
==========================
* Fix redundant list structure of outline element.
version 6.0.16, 2018/10/31
==========================
* Fix hyphenation bug(hyphenation was not available for overflow word).
version 6.0.15, 2018/10/30
==========================
* Fix hyphenation bug(zero-size text-box generated by hyphenation was ignored).
version 6.0.14, 2018/10/23
==========================
o Improved performance.
o Added Config.fontSizeOnlyTags.
version 6.0.13, 2018/10/23
==========================
* Fix body box position.
version 6.0.12, 2018/10/22
==========================
o Improve performance of TextLexer.
o Improve performance(avoid calling getContextName if it's not debug mode).
version 6.0.11, 2018/10/22
==========================
o Config.isTcyWord is added.
* Fix bug of dynamically updated style for table cell.
* Fix kerning for some parenthesis pattern.
version 6.0.10, 2018/10/17
==========================
* Fix css loading bug(if type of value is not string but numuber, it's ignored).
version 6.0.9, 2018/10/15
==========================
* Revice baseline.
version 6.0.8, 2018/10/13
==========================
* Fix char count of table element.
version 6.0.7, 2018/10/13
==========================
o Add progress value(0.0 ~ 1.0) to LocalPage.
version 6.0.6, 2018/10/11
==========================
* Fix wrong space size for justify.
version 6.0.5, 2018/10/10
==========================
* Fix bug of table layouting.
version 6.0.4, 2018/10/08
==========================
o Support 'page-break-after:always'.
* Fix page-break-before trouble.
version 6.0.3, 2018/10/05
==========================
o Add PageReader::getAnchorPage.
version 6.0.2, 2018/09/24
==========================
* Add "dist" directory to npm packages.
version 6.0.1, 2018/09/22
==========================
* Modify README (just for npm page update)
version 6.0.0, 2018/09/22
==========================
o First release