Comments (8)
Done.
from ucdn.
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.
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.
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.
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.
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.
Please see #11 for a pull request incorporating this change.
from ucdn.
Thank you.
from ucdn.
Related Issues (15)
- Update to Unicode 6.2.0 HOT 1
- East Asian width of U+30000 is wrong? HOT 3
- Add header guards HOT 3
- Make data structs const HOT 4
- Mistake in pregenerated database. HOT 7
- UCDN needs automated testing HOT 1
- Update to Unicode 9 beta HOT 1
- Update to Unicode 10.0 HOT 5
- Support Vertical_Orientation property
- Standard decompositions are NOT always pairwise HOT 1
- Update to Unicode 11
- Remove eastasian_width and decompose_compatibility
- Bug in Hangul composition
- HarfBuzz does not use UCDN anymore HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ucdn.