🚀 Socket Launch Week 🚀 Day 2: Introducing Repository Labels and Security Policies.Learn More
Socket
Sign inDemoInstall
Socket

@byte-this/html-metadata-reader

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@byte-this/html-metadata-reader

Read all meta tags and their values from an HTML document without the use of the window object

1.0.8
latest
Source
npm
Version published
Weekly downloads
5
150%
Maintainers
1
Weekly downloads
 
Created
Source

html-metadata-reader

Coverage lines Coverage functions Coverage branches Coverage statements

Node JS solution to read all meta tags and their values from an HTML document. This is useful in cases where we need to read metadata from a document on a Node Js server, where we cannot do a document query. Unlike other solutions, this will retrieve all meta tag information, including arbitrary/non-standard tags.

For a demo + how to use: https://bytethisstore.com/articles/pg/html-document-metadata

Usage


const htmlDocumentMetadataReader = new HtmlDocumentMetadataReader();
const tags = htmlDocumentMetadataReader.readTagsFromDocument(htmlString);
console.log(tags);

The result will have this schema:

/*
* The structure of a tag is split as follows:
* <meta {key.labelName}="{key.value}" {value.labelName}="{value.value}">
* <meta {key.value}="{value.value}">
*/
[
    //title is included, even though it is not technically a meta tag
    {
        "key": {
            "labelName": "",
            "value": "title"
        },
        "value": {
            "labelName": "",
            "value": "Test Page"
        }
    },
    {
        "key": {
            "labelName": "",
            "value": "charset"
        },
        "value": {
            "labelName": "",
            "value": "utf-8"
        }
    },
    {
        "key": {
            "labelName": "name",
            "value": "description"
        },
        "value": {
            "labelName": "value",
            "value": "something"
        }
    },
    {
        "key": {
            "labelName": "name",
            "value": "author"
        },
        "value": {
            "labelName": "content",
            "value": "Byte This!"
        }
    },
    {
        "key": {
            "labelName": "property",
            "value": "og:description"
        },
        "value": {
            "labelName": "content",
            "value": "something"
        }
    }
]

This can be formatted into a key-value pair object:

const keyValueObj = DocumentMetadataFormatter.toDictionary(metaTagsAr);

FAQs

Package last updated on 05 Dec 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts