linebender / linebender/runebender

Shape combining marks with anchors in the Preview window.

Open
#238 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
799
Forks
35
PR merge metrics
No merged PRs in 30d

Description

In the preview window, it would be nice to shape combining marks based on anchors, the way it works when you process a font with AFDKO or Glyphs.

AFDKO uses the Glyphs convention for anchor names when placing combining marks:

  • The base anchor — the point where a combining mark will be placed — is a bare word like "top" or "bottom".
  • The mark anchor — the corresponding point in the mark glyph that will be placed on the base anchor — is that same word, preceded by an underscore, so something like "_top" or "_bottom".

For example, even if there is no U+0227 LATIN SMALL LETTER A WITH DOT ABOVE glyph, U+0061 LATIN SMALL LETTER A followed by a U+0307 COMBINING DOT ABOVE should match the top and _top anchors and shape it, like it would if you ran it through AFDKO.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the Preview window's shaping path and compare its behavior with the anchor conventions described for AFDKO and Glyphs. Support matching bare base anchors with underscore-prefixed mark anchors, and verify that a base character followed by a combining mark is positioned correctly when no precomposed glyph exists.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.