Skip to main content

Python Microformats2 parser

Project description

mf2py banner

version downloads license python-version

Welcome 👋

mf2py is a full-featured microformats2 (mf2) parser implemented in Python.

mf2py implements the full mf2 specification, including backward compatibility with microformats1.

Installation 💻

To install mf2py, run the following command:

pip install mf2py

Quickstart 🚀

Import the parser using:

import mf2py

Parse a File

Parse a file containing HTML:

with open('file/content.html','r') as file:
    obj = mf2py.parse(doc=file)

Parse a String

Parse string containing HTML content:

content = '<article class="h-entry"><h1 class="p-name">Hello</h1></article>'
obj = mf2py.parse(doc=content)

Parse a HTML Document Retrieved from a URL

Parse content from a URL:

obj = mf2py.parse(url="http://tommorris.org/")

parse is a convenience method that actually delegates to mf2py.Parser to do the real work. More sophisticated behaviors are available by invoking the object directly.

Format Options

Retrieve parsed microformats as a Python dictionary or JSON string:

p = mf2py.Parser(...)
p.to_dict()  # returns a python dictionary
p.to_json()  # returns a JSON string

Filter by Microformat Type

Filter by microformat type:

p.to_dict(filter_by_type="h-entry")
p.to_json(filter_by_type="h-entry")

Experimental Features 🧪

  • Pass the optional argument img_with_alt=True to either the Parser object or to the parse method to enable parsing of the alt attribute of <img> tags according to issue: image alt text is lost during parsing. By default this is False to be backwards compatible.

FAQs ❓

  • I passed mf2py.parse() a BeautifulSoup document, and it got modified!

Yes, mf2py currently does that. We're working on preventing it! Hopefully soon.

Testing Environments 🌐

A hosted live version of mf2py can be found at python.microformats.io.

Contributing 🛠️

We welcome contributions and bug reports via Github, and on the microformats wiki.

We to follow the IndieWebCamp code of conduct. Please be respectful of other contributors, and forge a spirit of positive co-operation without discrimination or disrespect.

License 🧑‍⚖️

mf2py is licensed under an MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mf2py-1.1.3.tar.gz (27.3 kB view hashes)

Uploaded Source

Built Distribution

mf2py-1.1.3-py3-none-any.whl (24.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page