{"id":15793238,"url":"https://github.com/evaneykelen/nicetitle","last_synced_at":"2025-07-29T01:37:04.650Z","repository":{"id":56885512,"uuid":"188660629","full_name":"evaneykelen/nicetitle","owner":"evaneykelen","description":"Nicetitle is an implementation of John Gruber's TitleCase.pl","archived":false,"fork":false,"pushed_at":"2020-07-28T08:11:10.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-19T23:45:03.058Z","etag":null,"topics":["ruby","titlecase"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/evaneykelen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-26T08:55:51.000Z","updated_at":"2020-07-28T08:11:13.000Z","dependencies_parsed_at":"2022-08-21T00:50:11.189Z","dependency_job_id":null,"html_url":"https://github.com/evaneykelen/nicetitle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/evaneykelen/nicetitle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evaneykelen%2Fnicetitle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evaneykelen%2Fnicetitle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evaneykelen%2Fnicetitle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evaneykelen%2Fnicetitle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evaneykelen","download_url":"https://codeload.github.com/evaneykelen/nicetitle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evaneykelen%2Fnicetitle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267468627,"owners_count":24092337,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"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":["ruby","titlecase"],"created_at":"2024-10-04T23:10:14.069Z","updated_at":"2025-07-29T01:37:04.633Z","avatar_url":"https://github.com/evaneykelen.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Gem Version](https://img.shields.io/gem/v/nicetitle.svg) ![License](https://img.shields.io/github/license/evaneykelen/nicetitle.svg)\n![Last Commit](https://img.shields.io/github/last-commit/evaneykelen/nicetitle.svg)\n\n# Nicetitle\n\nNicetitle is an implementation of [John Gruber's TitleCase.pl](https://daringfireball.net/2008/08/title_case_update).\n\nThe rule set is:\n\n- Small words such as \"a\", \"an\", and \"but\" are not capitalized:\n  - except for the word \"is\";\n  - except if the previous word ended with a colon.\n- The first and last words are always capitalized, even if they're small words.\n- Words starting with `(`, `_`, `'`, or `\"` are capitalized e.g. `__foo` becomes `__Foo`.\n- Words starting with a dash, or words interspersed with dashes, are capitalized after every dash e.g. `-Foo-bar` becomes `-Foo-Bar`.\n- Words interspersed with slashes are capitalized \"between\" every slash e.g. `foo/bar` becomes `Foo/Bar`.\n- Words starting with a slash are not capitalized.\n- URLs are not capitalized.\n- Words containing capitals other than the first character are not capitalized e.g. `iOS` remains untouched.\n- Words containing dots are not capitalized.\n- All caps sentences are down-cased before applying above mentioned rules.\n\nCheck out the [test cases](https://github.com/evaneykelen/nicetitle/blob/master/test/nicetitle_test.rb) for a detailed overview.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'nicetitle'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install nicetitle\n\n## Usage\n\nCalling\n\n`Nice.title('What am I reading/listing/applying these days?')`\n\noutputs\n\n`What Am I Reading/Listing/Applying These Days?`\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/evaneykelen/nicetitle.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Similar projects\n\nI've written [an article](https://www.msgtrail.com/articles/20190525-1530-title-casing-is-harder-than-i-thought/) about title casing. This article mentions the following similar projects:\n\n- https://daringfireball.net/2008/08/title_case_update\n- https://github.com/samsouder/titlecase\n- https://github.com/granth/titleize\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevaneykelen%2Fnicetitle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevaneykelen%2Fnicetitle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevaneykelen%2Fnicetitle/lists"}