Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/microformats/microformats-parser
A JavaScript microformats parser for the browser and node.js
https://github.com/microformats/microformats-parser
Last synced: 8 days ago
JSON representation
A JavaScript microformats parser for the browser and node.js
- Host: GitHub
- URL: https://github.com/microformats/microformats-parser
- Owner: microformats
- License: mit
- Created: 2020-05-11T11:58:26.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-15T10:48:01.000Z (9 months ago)
- Last Synced: 2024-04-23T20:17:57.263Z (9 months ago)
- Language: TypeScript
- Homepage: https://microformats.github.io/microformats-parser/
- Size: 1.68 MB
- Stars: 48
- Watchers: 6
- Forks: 13
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# microformats-parser
A JavaScript microformats v2 parser, with v1 back-compatibility. [View the demo](https://microformats.github.io/microformats-parser/). Works with both the browser and node.js.
Follows the [microformats2 parsing specification](http://microformats.org/wiki/microformats2-parsing).
**Table of contents**
- [Quick start](#quick-start)
- [Installation](#installation)
- [Simple use](#simple-use)
- [API](#api)
- [mf2()](#mf2)
- [Support](#support)
- [Microformats v1](#microformats-v1)
- [Microformats v2](#microformats-v2)
- [Experimental options](#experimental-options)
- [`lang`](#lang)
- [`textContent`](#textcontent)
- [`metaformats`](#metaformats)
- [Contributing](#contributing)## Quick start
### Installation
```bash
# yarn
yarn add microformats-parser# npm
npm i microformats-parser
```### Simple use
```javascript
const { mf2 } = require("microformats-parser");const parsed = mf2('Jimmy', {
baseUrl: "http://example.com/",
});console.log(parsed);
```Outputs:
```json
{
"items": [
{
"properties": {
"name": ["Jimmy"],
"url": ["http://example.com/"]
},
"type": ["h-card"]
}
],
"rel-urls": {
"http://example.com": {
"rels": ["me"],
"text": "Jimmy"
}
},
"rels": {
"me": ["http://example.com/"]
}
}
```## API
### mf2()
Use: `mf2(html: string, options: { baseUrl: string, experimental: object })`
- `html` (string, required) - the HTML string to be parsed
- `options` (object, required) - parsing options, with the following properties:
- `baseUrl` (string, required) - a base URL to resolve relative URLs
- `experimental` (object, optional) - experimental (non-standard) options
- `lang` (boolean, optional) - enable support for parsing `lang` attributes
- `textContent` (boolean, optional) - enable support for better collapsing whitespace in text content.
- `metaformats` (boolean, optional) - enable meta tag fallback.Returns the parsed microformats from the HTML string
## Support
### Microformats v1
This package will parse microformats v1, however support will be limited to the v1 tests in the [microformats test suite](https://github.com/microformats/tests). Contributions are still welcome for improving v1 support.
### Microformats v2
We provide support for all microformats v2 parsing, as detailed in the [microformats2 parsing specification](http://microformats.org/wiki/microformats2-parsing). If there is an issue with v2 parsing, please create an issue.
### Experimental options
There is also support for some experimental parsing options. These can be enabled with the `experimental` flags in the `options` API.
**Note: Experimental options are subject to change at short notice and may change their behaviour without a major version update**
#### `lang`
Parse microformats for `lang` attributes. This will include `lang` on microformats and `e-*` properties where available.
These are sourced from the element themselves, a parent microformat, the HTML document or a meta tag.
#### `textContent`
When parsing microformats for text content, all the consecutive whitespace is collapsed into a single space. `
` and `` tags are treated as line breaks.
#### `metaformats`
Enables fallback to [metaformats](https://microformats.org/wiki/metaformats) parsing which looks at `` tags to infer content.
## Contributing
See our [contributing guidelines](./CONTRIBUTING.md) for more information.