A Ruby gem for extracting microformats2-encoded data from HTML documents.
- Parses microformats2-encoded HTML documents according to the microformats2 parsing specification
- Passes all microformats2 tests from the official test suite¹
- Supports Ruby 3.0 and newer
Note: MicroMicro does not parse Classic Microformats (referred to in the parsing specification as "backcompat root classes" and "backcompat properties" and in vocabulary specifications in the "Parser Compatibility" sections [e.g. h-entry]). To parse documents marked up with Classic Microformats, consider using the official microformats-ruby parser.
¹ …with some exceptions until this pull request is merged.
Before installing and using MicroMicro, you'll want to have Ruby 3.0 (or newer) installed. If you're using Bundler to manage gem dependencies, add MicroMicro to your project's Gemfile:
gem 'micromicro'
…and run bundle install
in your shell.
To install the gem manually, run the following in your shell:
gem install micromicro
MicroMicro'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.
require 'micromicro'
doc = MicroMicro.parse('<div class="h-card">Jason Garber</div>', 'https://sixtwothree.org')
#=> #<MicroMicro::Document items: #<MicroMicro::Collections::ItemsCollection count: 1, members: [#<MicroMicro::Item types: ["h-card"], properties: 1, children: 0>]>, relationships: #<MicroMicro::Collections::RelationshipsCollection count: 0, members: []>>
doc.to_h
#=> { :items => [{ :type => ["h-card"], :properties => { :name => ["Jason Garber"] } }], :rels => {}, :"rel-urls" => {} }
See USAGE.md for detailed examples of MicroMicro's features. Additional structured documentation is available on RubyDoc.info.
MicroMicro wouldn't exist without the hard work of everyone involved in the microformats community. Additionally, the comprehensive microformats test suite was invaluable in the development of this Ruby gem.
MicroMicro is written and maintained by Jason Garber.
MicroMicro is freely available under the MIT License. Use it, learn from it, fork it, improve it, change it, tailor it to your needs.