Giter Site home page Giter Site logo

Comments (8)

grigorig avatar grigorig commented on August 19, 2024 1

Done.

from ucdn.

grigorig avatar grigorig commented on August 19, 2024

These properties have very specific uses. I think it might be more useful to bundle a property database with everything required for the Unicode Bidirectional Algorithm into the library that implements this algorithm.

from ucdn.

grigorig avatar grigorig commented on August 19, 2024

Note: maybe it would be worthwhile to make a spin-off C library that implements the Unicode BiDi algorithm. I have some interest in a permissively licensed library for the Unicode Bidirectional Algorithm. There are some issues with FriBiDi and it's rather bloated, too.

from ucdn.

deepakjois avatar deepakjois commented on August 19, 2024

I am definitely not the right person to write an implementation of the Unicode BiDi algorithm in C. Whatever C I have written so far is not out of choice, but due to lack of any other alternatives.

I am using ucdn because I cannot find a decent Unicode support library in Lua, and ucdn has a simple clean C API, that can be easily wrapped with Luaโ€™s C API support.

My real objective is to write some Lua code to extend the LuaTeX typesetting system with better BiDi and non-Latin script capabilities. A while ago, I wrote Lua bindings for Harfbuzz. Then I realised, I also need BiDi and script itemization, which led me to ucdn. I would prefer writing a BiDi implementation in Lua than trying to wrap FriBidi (wrapping it seems a bit too tedious, and itโ€™s a bit complex as well).

If you think Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type are too specific, I will incorporate it inside of my own BiDi library, and continue to use ucdn for the other stuff. So feel free to close the issue.

I am just curious however:

  • What is the criteria for including/excluding properties in ucdn?
  • What projects use ucdn (I only know of Harfbuzz)?

from ucdn.

grigorig avatar grigorig commented on August 19, 2024

Well, UCDN was designed as a Unicode support library for HarfBuzz. There are some other projects that use it, for instance MuPDF.

There aren't any hard criteria about what can or should be included in UCDN, but I'd like to avoid properties that have only very specific use in some special cases to keep the binary size small. Although I already had the idea that it may be nice to modularize the library so that you can decide at compile time what should be included.

OTOH, it looks like the BiDi bracket properties are very limited in number, so it should have low overhead to include these features. If it boils down to a single digit number of KB of additional binary size, I'll likely merge a PR to add this.

from ucdn.

deepakjois avatar deepakjois commented on August 19, 2024

OTOH, it looks like the BiDi bracket properties are very limited in number, so it should have low overhead to include these features. If it boils down to a single digit number of KB of additional binary size, I'll likely merge a PR to add this.

I can try to create a PR. From what I can see, I need start by adding an entry for BidiBrackets.txt to makeunicodedata.py. Then I need to parse the data in the file. Things are a bit confusing after that. Do you have any suggestions to proceed or some part of the code to look at, which I can replicate?

from ucdn.

deepakjois avatar deepakjois commented on August 19, 2024

Please see #11 for a pull request incorporating this change.

from ucdn.

deepakjois avatar deepakjois commented on August 19, 2024

Thank you.

from ucdn.

Related Issues (15)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.