{"id":19464423,"url":"https://github.com/arrowtype/agl-naming-script","last_synced_at":"2026-07-04T02:32:20.874Z","repository":{"id":99695052,"uuid":"404077867","full_name":"arrowtype/agl-naming-script","owner":"arrowtype","description":"Applying AGL (Adobe Glyph List) names to a font based on Unicode values assigned to glyphs","archived":false,"fork":false,"pushed_at":"2021-09-09T18:59:47.000Z","size":252,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-28T09:29:56.395Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arrowtype.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":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-09-07T18:09:08.000Z","updated_at":"2023-06-20T14:00:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4174f57-bab4-444c-98ce-46c5d1be1004","html_url":"https://github.com/arrowtype/agl-naming-script","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arrowtype/agl-naming-script","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrowtype%2Fagl-naming-script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrowtype%2Fagl-naming-script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrowtype%2Fagl-naming-script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrowtype%2Fagl-naming-script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arrowtype","download_url":"https://codeload.github.com/arrowtype/agl-naming-script/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arrowtype%2Fagl-naming-script/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35108298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-10T18:15:12.993Z","updated_at":"2026-07-04T02:32:20.869Z","avatar_url":"https://github.com/arrowtype.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Set Production Names\n\nA script to run through UFOs and determine production names for glyphs, which are necessary in order to ensure they work well in PDFs, PostScript printing, etc..\n\nOnce the appropriate production names are determined, they are then saved in the `font.lib` key `public.postscriptNames`. This lib key is then used by FontMake to apply production names to glyphs, but the glyphs keep their “working names” in the UFO.\n\nThe AGL (Adobe Glyph List) Specification provides a list of acceptable names for glyphs, which are needed for some contexts. This includes: \n- Easy-to-read names for Latin\n- `uni0000` names for things with Unicode hex values from `0000` to `FFFF`, then allows \"\n- `u000000` names for Unicodes above `FFFF`.\n- Ligatures outside of the main Latin naming should use a format like `uniXXXXYYYY` (e.g. `uni20AC0308` for the string `U+20AC U+0308`). This script currently does not do this, as it may or may not be needed, but this could be added if needed.\n\nSee https://silnrsi.github.io/FDBP/en-US/Glyph_Naming.html for details on working vs production glyph names.\n\nSee https://github.com/adobe-type-tools/agl-specification for the AGL spec.\n\n## Usage\n\n### Set up virtual environment\n\nThe first time you build, you will need to set up a virtual environment and install dependencies.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e\u003c!--------\u003eSetting up the build environment\u003c!--------\u003e\u003c/b\u003e (Click to expand)\u003c/summary\u003e\n\n(Prerequisite: download and install Python from python.org if you haven’t already done so.)\n\nFirst, navigate to the base of the project in a terminal. Then, use the following steps to set up the project.\n\nTo build, create a virtual environment:\n\n```bash\npython3 -m venv venv\n```\n\nThen activate it:\n\n```bash\nsource venv/bin/activate\n```\n\nThen install requirements:\n\n```bash\npip install -r requirements.freeze.txt\n```\n\n\u003c/details\u003e\n\n### Running the script\n\nOnce you are in this project directory in a terminal and the project requirements are set up (see above), you can run the script in a single step:\n\n```bash\npython3 script/set-prod-names.py -u sources\n```\n\n...where `sources` points to a directory which includes `.ufo`s (at the top level) in which you want to set production glyph names.\n\nThis will update the glyph names in the UFOs – including in `groups.plist` and `kerning.plist`, but not in `features.fea`.\n\n### If you need a font file with the names applied...\n\nYou can run FontMake on the UFO to apply the `public.postscriptNames` mapping, e.g.:\n\n```bash\nfontmake -o otf -u sources/TextAR-Light.ufo --output-dir sources/otf\n```\n\nBut, if this doesn’t work for the particular project, the script could be extended to add names directly to the UFO.\n\n## Project support\n\nIf you run into blockers, please file an issue and/or reach out to Stephen Nixon at `stephen@arrowtype.com` with any questions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farrowtype%2Fagl-naming-script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farrowtype%2Fagl-naming-script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farrowtype%2Fagl-naming-script/lists"}