📦 Add a Trails service to warp jsonld features
This package is an implementation of jsonld in Trails framework.
For the moment it's just a wrapper but in a short amount of time it will symplify the json-ld calls
With yo :
npm install -g yo generator-trails
yo trails:trailpack trailpack-jsonld
With npm (you will have to create config file manually) :
npm install --save trailpack-jsonld
Enable JsonLD
// config/main.js
packs: [
...
require('trailpack-jsonld')
],
Check that jsonld config is loaded on index.js
// config/index.js
...
exports.srcds = require('./jsonld')
Configure
// config/jsonld.js
module.exports = {
dictionaries: [{
name: "schema.org",
url: "http://schema.org"
}],
defaultDictonary: "schema.org"
}
let jsonldLegacyService = this.app.services.JsonldService.legacy()
var doc = {
"http://schema.org/name": "Manu Sporny",
"http://schema.org/url": {"@id": "http://manu.sporny.org/"},
"http://schema.org/image": {"@id": "http://manu.sporny.org/images/manu.png"}
};
var context = {
"name": "http://schema.org/name",
"homepage": {"@id": "http://schema.org/url", "@type": "@id"},
"image": {"@id": "http://schema.org/image", "@type": "@id"}
};
// compact a document according to a particular context
// see: http://json-ld.org/spec/latest/json-ld/#compacted-document-form
jsonldLegacyService.compact(doc, context, function(err, compacted) {
console.log(JSON.stringify(compacted, null, 2));
/* Output:
{
"@context": {...},
"name": "Manu Sporny",
"homepage": "http://manu.sporny.org/",
"image": "http://manu.sporny.org/images/manu.png"
}
*/
});
For more information check the jsonld repo to see the possibilities : here
A part of this docs are owned by Digitalbazaar the creator of jsonld package.