Create key-valued hashes from a document's meta
tags. Useful for reading static configurations from a page.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="foo" content="bar">
</head>
<body>
<script>
import metaProps from 'meta-props';
const props = metaProps();
console.assert(props.foo, 'bar');
</script>
</body>
</html>
Properties can be also be deep using a separator, default :
colon.
<meta name="name:foo" content="foo">
<meta name="name:bar:baz" content="baz">
<script>
const props = metaProps('name');
console.assert(props.foo, 'foo');
console.assert(props.bar.baz, 'baz');
</script>
Naming the same meta
tag will convert the values into an Array
.
<meta name="array" content="foo">
<meta name="array" content="bar">
<meta name="array" content="baz">
<script>
const props = metaProps();
console.assert(Array.isArray(props.array));
console.log(props.array); // ['foo', 'bar', 'baz']
</script>
Values can also be type casted via the type
attribute in the tag.
<meta name="number" content="42" type="number">
<meta name="string" content="foo" type="string">
<meta name="boolean" content="true" type="boolean">
<meta name="json" content='{"foo":true}' type="json">
<meta name="empty"> <!-- no content or type -->
<script>
const props = metaProps();
console.log(typeof props.number); // number
console.log(typeof props.string); // string
console.log(typeof props.boolean); // boolean
console.log(typeof props.json); // object
console.log(typeof props.json.foo); // boolean
console.assert(props.empty === null);
</script>
query
String Used to select prefixed meta tag names.separator
String The split character for building deep hashes.
Copyright (c) 2016 9Technology