-
Notifications
You must be signed in to change notification settings - Fork 4
Home
- Introduction
- Harfbuzz Documenation
- luaharfbuzz documentation
- Projects using luaharfbuzz
- API Coverage and Adding Additional APIs
HarfBuzz is an OpenType text shaping engine. It is used in software like Qt, Pango, Firefox, Chromium, XeTeX and LibreOffice.
luaharfbuzz provides Lua bindings for Harfbuzz. It aims to provide a set of lightweight wrappers around the types and functions exposed by the Harfbuzz API. The idea is to stick closely to the API semantics of the original API, but also provide Lua-friendly idioms like optional arguments etc. Wherever possible, helper methods are provided as an addition, without violating the original API semantics.
Documentation for Harfbuzz is hard to come by. There is no definitive source for it. Information is spread over the codebase, the wiki and the mailing list archives.
To get started from the very basics, try the harfbuzz-tutorial, along with the walkthough accompanying that. It is recommended to go through the resources on the wiki, and then read the comments in the source files. After that, get on the mailing list and ask questions.
luaharfbuzz does not do much beyond wrapping the original Harfbuzz API. So it is necessary to have some background in Harfbuzz first. Refer to the following sources for luaharfbuzz specific documentation:
- API Docs
- Files in the examples folder of the source tree.
- The specs, which contain a comprehensive overview of the methods and types that have been wrapped so far.
- Michal Hoftich’s experimental project integrating luaharfbuzz with LuaTeX.
API Coverage Status file contains a list of all Harfbuzz API methods wrapped by luaharfbuzz so far. If you need to wrap any additional methods or types, file an issue, or send a pull request.