Fetch metadata from Web App Manifests and/or HTML attributes
Go to file
Râu Cao 8d79113438
continuous-integration/drone/push Build is passing Details
Move all metadata parsing to Metadata class
2023-09-15 21:40:33 +02:00
bin Hello world 2018-06-26 13:03:33 -07:00
lib Move all metadata parsing to Metadata class 2023-09-15 21:40:33 +02:00
spec Update spec 2023-09-15 21:00:27 +02:00
.drone.yml Add Drone CI config 2023-09-15 20:11:26 +02:00
.gitignore Switch to RSpec 2018-06-28 17:23:09 -07:00
CODE_OF_CONDUCT.md Hello world 2018-06-26 13:03:33 -07:00
Gemfile Hello world 2018-06-26 13:03:33 -07:00
Gemfile.lock Update dependencies 2023-09-15 20:00:59 +02:00
Guardfile Switch to RSpec 2018-06-28 17:23:09 -07:00
LICENSE.txt Swap actual license document 2018-07-03 13:08:39 +02:00
README.md Update CI badge 2023-09-15 20:24:17 +02:00
Rakefile Switch to RSpec 2018-06-28 17:23:09 -07:00
manifest.json Discover Web App Manifest in HTML 2018-06-28 21:11:52 -07:00
manifique.gemspec Update dependencies 2023-09-15 20:00:59 +02:00


Build Status


Manifique fetches metadata of Web applications, like e.g. name, description, and app icons. It prefers information from Web App Manifest files, and falls back to parsing HTML if necessary.


Add this line to your application's Gemfile:

gem 'manifique'

And then execute:

$ bundle

Or install it yourself as:

$ gem install manifique


First, initialize a Manifique agent for the web app you want to get metadata for. Its URL is the only required argument:

agent = Manifique::Agent.new(url: "https://kosmos.social")

Now you can fetch its metadata:

metadata = agent.fetch_metadata

Selecting icons

Let's select an icon that we like:

icon = metadata.select_icon(type: "image/png", sizes: "96x96")

Or maybe just iOS icons? They're pretty convenient for postprocessing after all.

icon = metadata.select_icon(purpose: "apple-touch-icon", sizes: "180x180")

TODO check out the docs for options and behavior.


After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the specs once, or bundle exec guard to watch all source files and run their specs automatically.

You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.


Bug reports and pull requests are welcome on GitHub at https://github.com/5apps/manifique. Please add specs for any changes or additions.


The gem is available as open source under the terms of the AGPL 3.

TL;DR: if you use this gem in a project, the entire project's source has to be made available as open source.

TODO add information about dual/commercial licensing

Code of Conduct

Everyone interacting in this projects codebase, issue trackers, and chat rooms is expected to follow the code of conduct.