Never Panic Much

    parse-open-graph

    0.4.0 • Public • Published

    parse-open-graph

    Cross-platform Open Graph parser

    Usage

    Broswer

    const { parseFromDocument } = require('parse-open-graph')
    const result = parseFromDocument()
    console.log(result)

    Node.js

    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))

    APIs

    parseMetaFromDocument()

    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"
      },
      ...
    ]

    parse(meta, options)

    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.

    parseFromDocument(options)

    Shortcut of parse(parseMetaFromDocument(), options)

    License

    MIT

    Keywords

    Install

    npm i parse-open-graph

    DownloadsWeekly Downloads

    35

    Version

    0.4.0

    License

    MIT

    Unpacked Size

    25.9 kB

    Total Files

    12

    Last publish

    Collaborators

    • jiangfengming