{"id":15032523,"url":"https://github.com/source-foundry/ufofmt","last_synced_at":"2025-04-09T21:23:21.605Z","repository":{"id":38333636,"uuid":"388617119","full_name":"source-foundry/ufofmt","owner":"source-foundry","description":"A fast, flexible UFO source file formatter based on the Rust Norad library","archived":false,"fork":false,"pushed_at":"2023-03-06T11:58:26.000Z","size":364,"stargazers_count":7,"open_issues_count":8,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-23T23:16:15.547Z","etag":null,"topics":["font","formatter","normalizer","rustlang","source-code","typeface","ufo"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/source-foundry.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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},"funding":{"github":"chrissimpkins","liberapay":"chrissimpkins"}},"created_at":"2021-07-22T22:47:00.000Z","updated_at":"2024-02-04T21:58:35.000Z","dependencies_parsed_at":"2025-02-15T22:31:33.918Z","dependency_job_id":"5815ae53-8d37-4172-8ae5-ae789ff9eaa3","html_url":"https://github.com/source-foundry/ufofmt","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-foundry%2Fufofmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-foundry%2Fufofmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-foundry%2Fufofmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/source-foundry%2Fufofmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/source-foundry","download_url":"https://codeload.github.com/source-foundry/ufofmt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737783,"owners_count":20987721,"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":["font","formatter","normalizer","rustlang","source-code","typeface","ufo"],"created_at":"2024-09-24T20:18:38.678Z","updated_at":"2025-04-09T21:23:21.562Z","avatar_url":"https://github.com/source-foundry.png","language":"Rust","funding_links":["https://github.com/sponsors/chrissimpkins","https://liberapay.com/chrissimpkins"],"categories":[],"sub_categories":[],"readme":"# ufofmt\n\n![crates.io](https://img.shields.io/crates/v/ufofmt.svg)\n[![stable toolchain unit tests](https://github.com/source-foundry/ufofmt/actions/workflows/stable-unittests.yml/badge.svg)](https://github.com/source-foundry/ufofmt/actions/workflows/stable-unittests.yml)\n[![beta toolchain unit tests](https://github.com/source-foundry/ufofmt/actions/workflows/beta-unittests.yml/badge.svg)](https://github.com/source-foundry/ufofmt/actions/workflows/beta-unittests.yml)\n\nA fast, flexible UFO source file formatter based on the Rust [Norad library](https://github.com/linebender/norad)\n\n## About\n\nufofmt is a Rust executable that supports customizable UFO source file formatting.\n\n### Default source file format\n\n  | glif | plist | fea\n-- | -- | -- | --\nline endings | line feed | line feed | line feed\nindentation spacing | single tab per level | single tab per level | n/a\nXML declaration attributes | double quotes | double quotes | n/a\n\nCustom formatting options are described in the Usage section below.\n\n## Installation\n\nThe installation process installs the `ufofmt` executable.\n\n[Install Rust](https://www.rust-lang.org/tools/install), then follow the instructions below.\n\n### User installation\n\nThe following command installs the latest release build:\n\n```\n$ cargo install ufofmt\n```\n\nUpgrade a previous installation to a new release version with:\n\n```\n$ cargo install --force ufofmt\n```\n\n### Developer installation\n\nThe following command installs a build from the latest commit in the main branch of the repository:\n\n```\n$ git clone https://github.com/source-foundry/ufofmt.git\n$ cd ufofmt \u0026\u0026 cargo install --path .\n```\n\n## Usage\n\nPass one or more UFO source directory paths to the `ufofmt` executable:\n\n```\n$ ufofmt [OPTIONS] [UFO PATH 1] ... [UFO PATH N]\n```\n\nUse the command `ufofmt --help` to view all available command line options.\n\n### Custom source formatting options\n\n#### Indentation spacing character type\n\nSingle tab indentation spacing per level is the default.  Switch to space characters with the `--indent-space` command line option.  See the section below to define the number of indentation spacing characters per level.\n\n#### Indentation spacing character number per level\n\nDefine between 1 - 4 tab or space indentation chars with the `--indent-number [NUMBER]` command line option. See the section above to use spaces instead of tabs.\n\n#### XML declaration quote style\n\nXML declaration attributes are enclosed in double quotes by default.  Convert to single quotes with the `--singlequotes` command line option.\n\n## Contributing\n\nContributions to the project are welcomed!  All contributions are accepted under the project license defined in the License section below.\n\n### Source contributions\n\nTest local changes in the executable with:\n\n```\n$ cargo run -- [ARGS]\n```\n\nAdd tests to cover your source changes and run the test suite locally with:\n\n```\n$ cargo test\n```\n\nPlease open a GitHub pull request with your change proposal.\n\n### Documentation contributions\n\nPlease build and review your documentation changes locally with:\n\n```\n$ cargo doc --open\n```\n\nPlease open a GitHub pull request with your change proposal.\n\n## License\n\n[Apache License v2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsource-foundry%2Fufofmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsource-foundry%2Fufofmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsource-foundry%2Fufofmt/lists"}