Skip to content
This repository has been archived by the owner on Dec 29, 2020. It is now read-only.

bees/midal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Check out https://github.com/chefconnie/microdata for a mature implementation, this code is essentially abandoned


Midal

A microdata parser for Elixir. Name shamelessly stolen from Mida. There has been no time spent yet on handling abusive/malformed inputs. Midal is still too immature for even toy projects. It will be available on hex.pm when that changes.

Example usage

  iex> Midal.parse("<div itemscope><div itemprop='name'>Midal</div></div>")
  {:ok, %{"name" => "Midal"}}

Deviations from W3C spec

Any deviation from the current specification is considered a bug. Here are the currently known limitations:

  • Unsupported attributes:
    • itemref

TODOs

  • implement initial basic parser
  • fix deviations from w3c spec
  • add basic handling for malformed/abusively crafted inputs (likely just limits on item nesting)
  • improve Floki-based implementation (horrific performance, requeries the document way too much)
  • refactor Floki-implementation to provide a document querying interface, move its current logic either to lib/midal.ex or a new file
  • flesh out documentation
  • write conversion utilities for JSON-LD, RDFa
  • research adding features for vocabularies (validation, not sure what else is useful)
  • setup CI
  • general repo maintenance (contributors, issue templates, etc)
  • publish on hex when stable

Installation

If available in Hex, the package can be installed by adding midal to your list of dependencies in mix.exs:

def deps do
  [
    {:midal, "~> 0.1.0"}
  ]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/midal.

About

Microdata parser for Elixir

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published