Is this initiative progressing. I'm writing a web-based word processor and 
this will save a lot of efforts. 
Curious to know if this is something that's still being pursued or should I 
write my own layouting engine?

Thanks,
Joe
On Thursday 16 December, 2021 at 2:30:17 pm UTC+5:30 Frank Tang wrote:

> I am proposing an enhancement of Intl.Segmenter API (adding line break 
> support) to TC39 for ECMA402 (see 
> https://github.com/tc39-transfer/proposal-intl-segmenter-v2 ) The API 
> expose "line break opportunity" of text which implement the
> Unicode® Standard Annex #14 
> <https://github.com/w3c/css-houdini-drafts/issues/14> UNICODE LINE 
> BREAKING ALGORITHM (see https://www.unicode.org/reports/tr14/)
> so it can be used for developer to use it with
>
>    1. multiple lines of text rendering in <CANVAS>
>    2. jsPDF and other context which need to layout text into multiple 
>    lines
>    3. SVG multiple lines of text
>
> During the stage advancement discussion, one delegate suggest me to reach 
> out to Houdini to see which one of the following is better
>
>    1. Instead of adding that to ECMA402 as a low level API, leave that 
>    part of job (breaking text into multiple lines of text) to Houdini to add 
>    such API to empower developers to use it on <CANVAS>, SVG , or for jsPDF 
>    and therefore there are no need to add them into ECMA402, OR
>    2. TC39 add such low level API into ECMA402 to allow developers to use 
>    that with the currently defined Houdini APIs, OR
>    3. TC39 add such low level API into ECMA402 to allow Houdini to 
>    depends on Intl.Segmenter for the job of finding out linguistic line break 
>    opportunity.
>
> Please comment so we can move forward better in TC39 / ECMA402. Thanks
>
>
> Similar question to you- do you think the enhancement to Intl.Segmenter 
> will be conflict or redundant to your API? or will it complement the API 
> you intend to implement? 
>
>
>
> On Mon, Dec 14, 2020 at 10:30 AM 'Sushanth Rajasankar' via blink-dev <
> blin...@chromium.org> wrote:
>
>> Thanks, Ashley. I'm excited to see that we can help simplify code and 
>> address your use case. Looking forward to your feedback once we have a 
>> prototype in Chromium.
>>
>> ------------------------------
>> *From:* Ashley Gullen <ash...@scirra.com>
>> *Sent:* Wednesday, December 9, 2020 2:53 AM
>> *To:* Sushanth Rajasankar <sushanth....@microsoft.com>
>> *Cc:* blin...@chromium.org <blin...@chromium.org>; Travis Leithead <
>> travis....@microsoft.com>
>> *Subject:* [EXTERNAL] Re: [blink-dev] Re: Intent to Prototype: Canvas 
>> Formatted Text 
>>  
>> This would be good for our game engine Construct 3 (www.construct.net 
>> <https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.construct.net%2F&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336822305%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=nrKkgGSHQNxJMC724eJ30MgiN%2BitYpfjchzWnWELkLE%3D&reserved=0>)
>>  
>> as well. 
>>
>> Our engine renders entirely to a canvas, and for displaying text we use 
>> the canvas text APIs. Since ~2012 we've had to maintain our own custom word 
>> wrap engine in JavaScript to handle multi-line text, and I doubt it does 
>> everything this proposal does especially with regards to break 
>> opportunities and bidi text, so it would be great if the browser could 
>> handle that for us. I do think backwards compatibility would be tricky 
>> though, as switching existing content to a different word wrap engine will 
>> probably result in unwanted differences, but there's not much that can be 
>> done about that.
>>
>>
>> On Tue, 8 Dec 2020 at 21:27, 'Sushanth Rajasankar' via blink-dev <
>> blin...@chromium.org> wrote:
>>
>> Fixing the row for "Web Developer signals"
>>
>> We do have positive signals from web developers, they are interested in 
>> adopting this API for both performance and correctness reasons
>>
>> nhelfman · GitHub 
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnhelfman&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336832260%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VlWmi4gNHtCAdi7aNobH2oaJovJ651u7xOrrSbV%2BWXw%3D&reserved=0>
>>  - 
>> Excel Online - Microsoft
>> bonmotbot (Igor Kopylov) · GitHub 
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbonmotbot&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336832260%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Inf8rhPrPgAJTtKtsvRokBOCrzK6Umn8pUo8apcIZaQ%3D&reserved=0>
>>  - 
>> GSuite - Google
>>
>> Thanks,
>> Sushanth
>> ------------------------------
>> *From:* 'Sushanth Rajasankar' via blink-dev <blin...@chromium.org>
>> *Sent:* Friday, December 4, 2020 4:36 PM
>> *To:* blin...@chromium.org <blin...@chromium.org>
>> *Cc:* Travis Leithead <travis....@microsoft.com>
>> *Subject:* [EXTERNAL] [blink-dev] Intent to Prototype: Canvas Formatted 
>> Text 
>>  
>>
>> Contact emails 
>>
>> sush...@microsoft.com, tra...@microsoft.com 
>>
>> Explainer 
>>
>>  
>> https://github.com/WICG/canvas-formatted-text/blob/main/README.md 
>>
>>
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fcanvas-formatted-text%2Fblob%2Fmain%2FREADME.md&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336842214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=PPZGLccssO71KlyTUUcLwEjN8vDsssmTegWuKrZwHcM%3D&reserved=0>
>> Specification 
>>
>> None 
>>  
>>
>> Summary 
>>
>> Easily render multiline formatted text in Canvas, while letting the 
>> browser handle the hard parts of line-breaking and other language-specific 
>> constraints. 
>>
>>  
>> Blink component 
>>
>> Blink>Canvas 
>>
>>
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Flist%3Fq%3Dcomponent%3ABlink%253ECanvas&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336842214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fuB5wSfM58VwIwKaDazVEKApWypB7hv6BzASfIumTG8%3D&reserved=0>
>> Motivation 
>>
>> You have a paragraph of text. You want to write it to the canvas. Canvas 
>> only supplies fill/strokeText -- only line of text at a time. Where do 
>> you break your paragraph up? Doing this is JavaScript is hard and error 
>> prone. For example, the author must consider: where are the break 
>> opportunities between words or Graphemes? Break opportunities are based 
>> primarily on the Unicode Spec but also use dictionaries for languages like 
>> Thai and French that dictate additional line breaking rules. Other 
>> consideration include identifying grapheme clusters, handling Bidi text, 
>> proper text shaping and kerning.  
>>
>>  
>>
>> Luckily, the browser already has a powerful line breaking, text shaping 
>> component used for regular HTML layout. This feature enables authors to tap 
>> into the browser's layout feature while maintaining control over the layout 
>> of multi-line formatted text. 
>>
>>  
>>
>> Initial public proposal 
>>
>> https://github.com/WICG/proposals/issues/3 
>>
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FWICG%2Fproposals%2Fissues%2F3&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336852168%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=9D%2BBkgANFiTfpqRepnDofLhx6%2FvJoLGeoqfxajIuWrQ%3D&reserved=0>
>>  
>>
>> TAG review 
>>
>> None 
>>  
>>
>> TAG review status 
>>
>> Pending 
>>  
>>
>> Risks 
>>
>> This feature exposes new functionality to the Canvas. Similar behavior is 
>> being exposed to the CSS Houdini Layout API. Our goal is to find a good 
>> balance in terms of design that harmonizes the two concepts. 
>>
>>  
>>
>> Interoperability and Compatibility 
>>
>> None 
>>
>>  
>>  
>> Gecko: No signal 
>>  
>> WebKit: No signal 
>>  
>> Web developers: No signals 
>>
>>  
>>  
>>
>> Is this feature fully tested by web-platform-tests 
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromium.googlesource.com%2Fchromium%2Fsrc%2F%2B%2Fmaster%2Fdocs%2Ftesting%2Fweb_platform_tests.md&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336852168%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=oMOeWm4Qr8VRbyno8zhhfcHWpGI0j%2FnpiyMDfxDmmT0%3D&reserved=0>
>> ? 
>>
>> No 
>>  
>>
>> Tracking bug 
>>
>> https://bugs.chromium.org/p/chromium/issues/detail?id=1155764 
>>
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.chromium.org%2Fp%2Fchromium%2Fissues%2Fdetail%3Fid%3D1155764&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336852168%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=d00eqYe9gEumXTtPazSHYF2W1pFVwFh3%2F9uweStTAHE%3D&reserved=0>
>>  
>>
>> Link to entry on the Chrome Platform Status 
>>
>> https://chromestatus.com/feature/5996048675766272 
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5996048675766272&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336862132%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Wwyn%2B8e79rgNyM811Mrex%2FONbesUdtHPlmBk7twA1%2FU%3D&reserved=0>
>>   
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5996048675766272&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336862132%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Wwyn%2B8e79rgNyM811Mrex%2FONbesUdtHPlmBk7twA1%2FU%3D&reserved=0>
>>  
>>
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fchromestatus.com%2Ffeature%2F5996048675766272&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336872084%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=p9vt7HKqtZJM3X3OUt5gqDeB1x6GYsJng7z57BIueEk%3D&reserved=0>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to blink-dev+...@chromium.org.
>> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/MN2PR00MB060671AEFC6F81BCB9725037FDF09%40MN2PR00MB0606.namprd00.prod.outlook.com
>>  
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FMN2PR00MB060671AEFC6F81BCB9725037FDF09%2540MN2PR00MB0606.namprd00.prod.outlook.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336872084%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=aVUDlLqL2GPMD5L7LcSWJ41UOe4EQjqXGFytpw%2FG0pw%3D&reserved=0>
>> .
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to blink-dev+...@chromium.org.
>> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/DM6PR00MB060336F0695308E30C6499C8FDCD9%40DM6PR00MB0603.namprd00.prod.outlook.com
>>  
>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fa%2Fchromium.org%2Fd%2Fmsgid%2Fblink-dev%2FDM6PR00MB060336F0695308E30C6499C8FDCD9%2540DM6PR00MB0603.namprd00.prod.outlook.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=04%7C01%7CSushanth.Rajasankar%40microsoft.com%7Caeae998363ce4e73f49108d89c30b767%7C72f988bf86f141af91ab2d7cd011db47%7C0%7C0%7C637431080336882040%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qg83LnHBlKSSgcJBwd2481nNfExU%2BYr3Hxy2AfsrM5Q%3D&reserved=0>
>> .
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to blink-dev+...@chromium.org.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BYAPR00MB059824555DAD1801B8F6933AFDC79%40BYAPR00MB0598.namprd00.prod.outlook.com
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/BYAPR00MB059824555DAD1801B8F6933AFDC79%40BYAPR00MB0598.namprd00.prod.outlook.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/92387448-12d8-43b7-baef-a8e97f032e2bn%40chromium.org.

Reply via email to