akashacms-breadcrumbs
Advanced tools
Comparing version 0.6.1 to 0.6.2
113
index.js
@@ -24,4 +24,5 @@ /** | ||
const util = require('util'); | ||
const async = require('async'); | ||
const co = require('co'); | ||
const akasha = require('akasharender'); | ||
const mahabhuta = require('mahabhuta'); | ||
@@ -44,84 +45,36 @@ const log = require('debug')('akasha:breadcrumbs-plugin'); | ||
var crumb = function(akasha, config, entry) { | ||
// util.log('crumb '+ entry.path); | ||
return akasha.findRendersTo(config.documentDirs, entry.foundPath) | ||
.then(found => { | ||
// log(`crumb ${util.inspect(entry)} found ${util.inspect(found)}`); | ||
var renderer = akasha.findRendererPath(found.foundFullPath); | ||
if (renderer && renderer.metadata) { | ||
return renderer.metadata(entry.foundDir, found.foundPathWithinDir) | ||
.then(metadata => { | ||
// log(`${entry.foundDir} ${entry.foundPath} ${util.inspect(metadata)}`) | ||
return { | ||
title: metadata.title, | ||
path: '/'+ entry.foundPath | ||
}; | ||
}); | ||
} else { | ||
return Promise.resolve({ | ||
title: path.basename(entry.foundPath), | ||
path: '/'+ entry.foundPath | ||
}); | ||
} | ||
}); | ||
}; | ||
var crumb = co.wrap(function* (akasha, config, entry) { | ||
var found = yield akasha.findRendersTo(config.documentDirs, entry.foundPath); | ||
var renderer = akasha.findRendererPath(found.foundFullPath); | ||
if (renderer && renderer.metadata) { | ||
var metadata = yield renderer.metadata(entry.foundDir, found.foundPathWithinDir) | ||
return { | ||
title: metadata.title, | ||
path: '/'+ entry.foundPath | ||
}; | ||
} else { | ||
return { | ||
title: path.basename(entry.foundPath), | ||
path: '/'+ entry.foundPath | ||
}; | ||
} | ||
}); | ||
/** | ||
* Find info useful for constructing a bookmark trail on a page. This is | ||
* the Entry for the given file, and any index.html that is a sibling or parent | ||
* of that file. | ||
**/ | ||
var breadcrumbTrail = function(akasha, config, fileName) { | ||
// util.log('breadcrumbTrail '+ fileName); | ||
return akasha.indexChain(config, fileName) | ||
.then(trail => { | ||
// console.log(`breadcrumbTrail ${util.inspect(trail)}`); | ||
return Promise.all(trail.map(crumbdata => { | ||
return crumb(akasha, config, crumbdata); | ||
})); | ||
}); | ||
}; | ||
module.exports.mahabhuta = new mahabhuta.MahafuncArray("akashacms-breadcrumbs", {}); | ||
module.exports.mahabhuta = [ | ||
function($, metadata, dirty, done) { | ||
class BreadcrumbTrailElement extends mahabhuta.CustomElement { | ||
get elementName() { return "breadcrumb-trail"; } | ||
process($element, metadata, dirty) { | ||
var docpath = metadata.document.path; | ||
var brdtrails = []; | ||
$('breadcrumb-trail').each(function(i, elem) { brdtrails.push(elem); }); | ||
// util.log('breadcrumbs <breadcrumb-trail> count='+ brdtrails.length); | ||
if (brdtrails.length <= 0) { | ||
// util.log('EMPTY <breadcrumb-trail>'); | ||
done(); | ||
} else { | ||
// log('before breadcrumbTrail '+ util.inspect(metadata.config) +" "+ docpath); | ||
breadcrumbTrail(akasha, metadata.config, docpath) | ||
.then(trail => { | ||
// log('<breadcrumb-trail> '+ util.inspect(trail)); | ||
// util.log('breadcrumbTrail cb called on '+ docpath +' trail='+ util.inspect(trail)); | ||
return akasha.partial(metadata.config, "breadcrumb-trail.html.ejs", { | ||
breadcrumbs: trail | ||
}) | ||
.then(replace => { | ||
// console.log(`replace ${replace}`); | ||
return new Promise((resolve, reject) => { | ||
async.each(brdtrails, | ||
(brd, cb) => { | ||
$(brd).replaceWith(replace); | ||
cb(); | ||
}, | ||
err => { | ||
if (err) { | ||
// log('ERROR <breadcrumb-trail> '+ err); | ||
reject(err); | ||
} else { | ||
// log('DONE <breadcrumb-trail>'); | ||
resolve(); | ||
} | ||
}); | ||
}); | ||
}); | ||
}) | ||
.then(() => { log('DONE #2 <breadcrumb-trail>'); done(); }) | ||
.catch(err => { error(err); done(err) }); | ||
} | ||
return co(function* () { | ||
var trail = yield akasha.indexChain(metadata.config, docpath); | ||
trail = yield Promise.all(trail.map(crumbdata => { | ||
return crumb(akasha, metadata.config, crumbdata); | ||
})); | ||
return yield akasha.partial(metadata.config, "breadcrumb-trail.html.ejs", { | ||
breadcrumbs: trail | ||
}); | ||
}); | ||
} | ||
]; | ||
} | ||
module.exports.mahabhuta.addMahafunc(new BreadcrumbTrailElement()); |
@@ -14,3 +14,3 @@ { | ||
}, | ||
"version": "0.6.1", | ||
"version": "0.6.2", | ||
"engines": { | ||
@@ -20,5 +20,5 @@ "node": ">=6.1" | ||
"dependencies": { | ||
"async": "*", | ||
"co": "*", | ||
"debug": "^2.2.0" | ||
} | ||
} |
Wildcard dependency
QualityPackage has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.
Found 1 instance in 1 package
Wildcard dependency
QualityPackage has a dependency with a floating version range. This can cause issues if the dependency publishes a new major version.
Found 1 instance in 1 package
5658
69
+ Addedco@*
+ Addedco@4.6.0(transitive)
- Removedasync@*
- Removedasync@3.2.6(transitive)