{"id":20828034,"url":"https://github.com/googlefonts/ufomerge","last_synced_at":"2025-05-07T21:06:38.199Z","repository":{"id":161796804,"uuid":"636356557","full_name":"googlefonts/ufomerge","owner":"googlefonts","description":"ufomerge","archived":false,"fork":false,"pushed_at":"2025-04-28T14:10:23.000Z","size":75,"stargazers_count":12,"open_issues_count":7,"forks_count":3,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-05-07T21:06:32.393Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/googlefonts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-04T17:06:19.000Z","updated_at":"2025-04-28T14:02:42.000Z","dependencies_parsed_at":"2025-04-09T15:26:37.605Z","dependency_job_id":"60ae2ec3-a9d7-47af-9e34-49765c025d3b","html_url":"https://github.com/googlefonts/ufomerge","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fufomerge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fufomerge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fufomerge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fufomerge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googlefonts","download_url":"https://codeload.github.com/googlefonts/ufomerge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954429,"owners_count":21830904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T23:13:40.190Z","updated_at":"2025-05-07T21:06:38.162Z","avatar_url":"https://github.com/googlefonts.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ufomerge\n\nThis command line utility and Python library merges together two UFO source format fonts into a single file. It can be used to include glyphs from one font into another font. It takes care of handling:\n\n* Glyph outlines and information\n* Kerning\n* `lib` entries\n* Including any needed components\n* \"Subsetting\" and merging layout rules\n\n## Usage\n\nTo merge the glyphs of `font-b.ufo` into `font-a.ufo` and save as `merged.ufo`:\n\n```\n$ ufomerge --output merged.ufo font-a.ufo font-b.ufo\n```\n\nTo include particular glyphs:\n\n```\n$ ufomerge --output merged.ufo --glyphs alpha,beta,gamma font-a.ufo font-b.ufo\n```\n\nTo include glyphs referencing particular Unicode codepoints:\n\n```\n$ ufomerge --output merged.ufo --unicodes 0x03B1,0x03B2,0x03B3 font-a.ufo font-b.ufo\n```\n\nOther useful command line parameters:\n\n* `-G`/`--glyphs-file`: Read the glyphs from a file containing one glyph per line.\n* `-U`/`--codepoints-file`: Read the Unicode codepoints from a file containing one codepoint per line.\n* `-x`/`--exclude-glyphs`: Stop the given glyphs from being included.\n* `-v`/`--verbose`: Be noisier.\n\nWhat to do about existing glyphs:\n\n* `--skip-existing` (the default): If a glyph from `font-b` already exists in `font-a`, nothing happens.\n* `--replace-existing`: If a glyph from `font-b` already exists in `font-a`, the new glyph replaces the old one.\n\nWhat do to about OpenType layout (`features.fea`). Suppose there is a rule `sub A B by C;`, and the incoming glyphs are `A` and `B`:\n\n* `--subset-layout` (the default): the rule is dropped, because `C` is not part of the target glyphset. The ligature stops working.\n* `--layout-closure`: `C` is added to the target glyphset and merged into `font-a` so the ligature continues to work.\n* `--ignore-layout`: No layout rules are copied from `font-b` at all.\n\n## Usage as a Python library\n\n`ufomerge` provides two functions, `merge_ufos` and `subset_ufo`. Both take `ufoLib2.Font` objects, and are documented in their docstrings.\n\n## License\n\nThis software is licensed under the Apache license. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglefonts%2Fufomerge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgooglefonts%2Fufomerge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglefonts%2Fufomerge/lists"}