4.2 KiB
Microformats2
Development Status
This gem sat unmaintained for quite a long time. It's now under new management. Work will begin shortly on getting it on par with the other Microformats2 parsers and the current state of the spec. (2015-12-23)
A Ruby gem to parse HTML containing one or more microformats2 and return a collection of dynamically defined Ruby objects.
A work in progress.
Implemented:
- parsing depth first, doc order
- parsing a p- property
- parsing a u- property
- parsing a dt- property
- parsing a e- property
- parsing implied properties
- nested properties
- nested microformat with associated property
- dynamic creation of properties
- rel
- normalize u-* property values
Not Implemented:
- nested microformat without associated property
- value-class-pattern
- include-pattern
- recognition of vendor extensions
- backwards compatable support for microformats v1
Current Version
2.0.1
Requirements
- "nokogiri"
- "json"
- "activesupport"
Installation
Add this line to your application's Gemfile:
gem 'microformats2'
And then execute:
$ bundle
Or install it yourself as:
$ gem install microformats2
Usage
require "microformats2"
source = '<div class="h-card"><p class="p-name">Jessica Lynn Suttles</p></div>'
collection = Microformats2.parse(source)
# using singular accessors
collection.card.name.to_s #=> "Jessica Lynn Suttles"
# using plural accessors
collection.cards.first.names.first.to_s #=> "Jessica Lynn Suttles"
source = '<article class="h-entry">
<h1 class="p-name">Microformats 2</h1>
<div class="h-card p-author"><p class="p-name">Jessica Lynn Suttles</p></div>
</article>'
collection = Microformats2.parse(source)
collection.entry.name.to_s #=> "Microformats 2"
# accessing nested microformats
collection.entry.author.format.name.to_s #=> "Jessica Lynn Suttles"
# getting a copy of the canonical microformats2 hash structure
collection.to_hash
# the above, as JSON in a string
collection.to_json
source
can be a URL, filepath, or HTML
Authors
- Jessica Lynn Suttles / @jlsuttles
- Shane Becker / @veganstraightedge
- Chris Stringer / @jcstringer
- Michael Mitchell / @variousred
- Jessica Dillon / @jessicard
Contributions
- Fork it
- Get it running (see Installation above)
- Create your feature branch (
git checkout -b my-new-feature
) - Write your code and specs
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
If you find bugs, have feature requests or questions, please file an issue.
Specs
To update spec cases that are scraped from other sites. Warning: This could break specs.
rake specs:update
To run specs
rake spec
To keep specs running
guard
License
Microformats2 is dedicated to the public domain using Creative Commons -- CC0 1.0 Universal.