I really enjoyed this author's "Complex Text Handling in WebKit" series from a few years back. They're spread over several months on the blog, so here are the direct links to each part, if anyone is interested:<p>Part 1: Encoding Systems, Code Points, and Code Units <<a href="https://litherum.blogspot.com/2013/11/complex-text-handling-in-webkit-part-1.html" rel="nofollow">https://litherum.blogspot.com/2013/11/complex-text-handling-...</a>><p>Part 2: Fonts <<a href="https://litherum.blogspot.com/2013/11/complex-text-handling-in-webkit-part-2.html" rel="nofollow">https://litherum.blogspot.com/2013/11/complex-text-handling-...</a>><p>Part 3: Codepoint to Glyph Mapping <<a href="https://litherum.blogspot.com/2014/02/complex-text-handling-in-webkit-part-3.html" rel="nofollow">https://litherum.blogspot.com/2014/02/complex-text-handling-...</a>><p>Part 4: Line Breaking <<a href="https://litherum.blogspot.com/2014/04/complex-text-handling-in-webkit-part-3.html" rel="nofollow">https://litherum.blogspot.com/2014/04/complex-text-handling-...</a>><p>Part 5: Bidirectional Processing <<a href="https://litherum.blogspot.com/2014/11/complex-text-handling-in-webkit-part-5.html" rel="nofollow">https://litherum.blogspot.com/2014/11/complex-text-handling-...</a>><p>Part 6: Run Layout <<a href="https://litherum.blogspot.com/2014/11/complex-text-handling-in-webkit-part-5_22.html" rel="nofollow">https://litherum.blogspot.com/2014/11/complex-text-handling-...</a>><p>Part 7: Width Calculations <<a href="https://litherum.blogspot.com/2014/11/complex-text-handling-in-webkit-part-7.html" rel="nofollow">https://litherum.blogspot.com/2014/11/complex-text-handling-...</a>>