Cross-platform Open Graph parser
const { parseFromDocument } = require('parse-open-graph')
const result = parseFromDocument()
console.log(result)
const { parse } = require('parse-open-graph')
const cheerio = require('cheerio')
const html = `
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />
`
const $ = cheerio.load(html)
const meta = $('meta[property]').map((i, el) => ({
property: $(el).attr('property'),
content: $(el).attr('content')
})).get()
const result = parse(meta)
console.log(JSON.stringify(result, null, 2))
Parses the meta to arrays from document.
Return format:
[
{
"property": "og:title",
"content": "Open Graph protocol"
},
{
"property": "og:type",
"content": "website"
},
{
"property": "og:url",
"content": "http://ogp.me/"
},
{
"property": "og:image",
"content": "http://ogp.me/logo.png"
},
...
]
Parses meta arrays to structured objects.
Params:
meta
: Meta arrays. The format is the same as the return value of parseMetaFromDocument()
.
options
: Parse options. Defaults:
{
alias: {
'og:locale': 'og:locale:_', // `og:locale` will be parsed to `og.local._`
'og:image': 'og:image:url',
'og:video': 'og:video:url',
'og:audio': 'og:audio:url',
'music:album': 'music:album:url',
'music:song': 'music:song:url',
'video:actor': 'video:actor:url'
},
arrays: [
'og:image',
'og:video',
'og:audio',
'music:album',
'music:song',
'video:actor',
'og:locale:alternate',
'music:musician',
'music:creator',
'video:director',
'video:writer',
'video:tag',
'article:author',
'article:tag',
'book:author',
'book:tag'
]
}
Your custom alias
and arrays
options will be merged into default options.
Return format:
{
og: {
title: 'Open Graph protocol',
type: 'website',
url: 'http://ogp.me/',
image: [
{
url: 'http://ogp.me/logo.png',
type: 'image/png',
width: '300',
height: '300',
alt: 'The Open Graph logo'
}
]
description: 'The Open Graph protocol enables any web page to become a rich object in a social graph.'
},
fb: {
app_id: '115190258555800'
}
}
See examples/browser.html for example.
Shortcut of parse(parseMetaFromDocument(), options)