{"id":15389481,"url":"https://github.com/jgarber623/micromicro","last_synced_at":"2025-04-15T20:24:41.862Z","repository":{"id":45340096,"uuid":"203242838","full_name":"jgarber623/micromicro","owner":"jgarber623","description":"A Ruby gem for extracting microformats2-encoded data from HTML documents.","archived":false,"fork":false,"pushed_at":"2024-08-02T00:52:45.000Z","size":365,"stargazers_count":3,"open_issues_count":4,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T01:04:18.135Z","etag":null,"topics":["html-parser","microformats","microformats2","ruby","rubygems"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/micromicro","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/jgarber623.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}},"created_at":"2019-08-19T20:08:30.000Z","updated_at":"2024-08-02T00:52:48.000Z","dependencies_parsed_at":"2024-01-01T04:46:17.118Z","dependency_job_id":"d60c4112-863f-4c4e-9c10-d608f3d8ff8b","html_url":"https://github.com/jgarber623/micromicro","commit_stats":{"total_commits":250,"total_committers":3,"mean_commits":83.33333333333333,"dds":0.01200000000000001,"last_synced_commit":"e183d2474bf3cf1dd90e27a99fd268190d0e0b08"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgarber623%2Fmicromicro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgarber623%2Fmicromicro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgarber623%2Fmicromicro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jgarber623%2Fmicromicro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jgarber623","download_url":"https://codeload.github.com/jgarber623/micromicro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249146650,"owners_count":21220185,"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":["html-parser","microformats","microformats2","ruby","rubygems"],"created_at":"2024-10-01T15:01:46.895Z","updated_at":"2025-04-15T20:24:41.825Z","avatar_url":"https://github.com/jgarber623.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MicroMicro\n\n**A Ruby gem for extracting [microformats2](https://microformats.org/wiki/microformats2)-encoded data from HTML documents.**\n\n[![Gem](https://img.shields.io/gem/v/micromicro.svg?logo=rubygems\u0026style=for-the-badge)](https://rubygems.org/gems/micromicro)\n[![Downloads](https://img.shields.io/gem/dt/micromicro.svg?logo=rubygems\u0026style=for-the-badge)](https://rubygems.org/gems/micromicro)\n[![Build](https://img.shields.io/github/actions/workflow/status/jgarber623/micromicro/ci.yml?branch=main\u0026logo=github\u0026style=for-the-badge)](https://github.com/jgarber623/micromicro/actions/workflows/ci.yml)\n\n## Key Features\n\n- Parses microformats2-encoded HTML documents according to the [microformats2 parsing specification](https://microformats.org/wiki/microformats2-parsing)\n- Passes all microformats2 tests from [the official test suite](https://github.com/microformats/tests)¹\n- Supports Ruby 3.0 and newer\n\n**Note:** MicroMicro **does not** parse [Classic Microformats](https://microformats.org/wiki/Main_Page#Classic_Microformats) (referred to in [the parsing specification](https://microformats.org/wiki/microformats2-parsing#note_backward_compatibility_details) as \"backcompat root classes\" and \"backcompat properties\" and in vocabulary specifications in the \"Parser Compatibility\" sections [e.g. [h-entry](https://microformats.org/wiki/h-entry#Parser_Compatibility)]). To parse documents marked up with Classic Microformats, consider using [the official microformats-ruby parser](https://github.com/microformats/microformats-ruby).\n\n\u003csmall\u003e¹ …with some exceptions until [this pull request](https://github.com/microformats/tests/pull/112) is merged.\u003c/small\u003e\n\n## Installation\n\nBefore installing and using MicroMicro, you'll want to have [Ruby](https://www.ruby-lang.org) 3.0 (or newer) installed. If you're using [Bundler](https://bundler.io) to manage gem dependencies, add MicroMicro to your project's Gemfile:\n\n```ruby\ngem 'micromicro'\n```\n\n…and run `bundle install` in your shell.\n\nTo install the gem manually, run the following in your shell:\n\n```sh\ngem install micromicro\n```\n\n## Usage\n\nMicroMicro's `parse` method accepts two arguments: a `String` of markup and a `String` representing the URL associated with that markup. The resulting `MicroMicro::Document` may be converted to a `Hash` which may be further manipulated using conventional Ruby tooling.\n\n```ruby\nrequire 'micromicro'\n\ndoc = MicroMicro.parse('\u003cdiv class=\"h-card\"\u003eJason Garber\u003c/div\u003e', 'https://sixtwothree.org')\n#=\u003e #\u003cMicroMicro::Document items: #\u003cMicroMicro::Collections::ItemsCollection count: 1, members: [#\u003cMicroMicro::Item types: [\"h-card\"], properties: 1, children: 0\u003e]\u003e, relationships: #\u003cMicroMicro::Collections::RelationshipsCollection count: 0, members: []\u003e\u003e\n\ndoc.to_h\n#=\u003e { :items =\u003e [{ :type =\u003e [\"h-card\"], :properties =\u003e { :name =\u003e [\"Jason Garber\"] } }], :rels =\u003e {}, :\"rel-urls\" =\u003e {} }\n```\n\nSee [USAGE.md](https://github.com/jgarber623/micromicro/blob/main/USAGE.md) for detailed examples of MicroMicro's features. Additional structured documentation is available on [RubyDoc.info](https://rubydoc.info/gems/micromicro).\n\n## Acknowledgments\n\nMicroMicro wouldn't exist without the hard work of everyone involved in the [microformats](https://microformats.org) community. Additionally, the comprehensive [microformats test suite](https://github.com/microformats/tests) was invaluable in the development of this Ruby gem.\n\nMicroMicro is written and maintained by [Jason Garber](https://sixtwothree.org).\n\n## License\n\nMicroMicro is freely available under the [MIT License](https://opensource.org/licenses/MIT). Use it, learn from it, fork it, improve it, change it, tailor it to your needs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjgarber623%2Fmicromicro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjgarber623%2Fmicromicro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjgarber623%2Fmicromicro/lists"}