exports.package = function(req, res, next) { var name = req.params.name; var version = req.params.version; var p = new Package({ name: name, version: version }); if (p.md5) { p.readme = marked(p.readme || ''); p.fromNow = moment(p.updated_at).fromNow(); // jquery@1.7.2 -> jquery p.dependents = _.uniq((p.dependents || []).map(function(d) { return d.split('@')[0]; })); if (p.repository && p.repository.url) { try { p.repositoryurl = gu(p.repository.url).http_href; } catch(e) { p.repositoryurl = ''; } } res.render('package', { title: p.name + '@' + p.version + ' - '+ CONFIG.website.title, spmjsioVersion: spmjsioVersion, user: req.session.user, anonymous: anonymous, GA: CONFIG.website.GA, package: p }); } else { next(); } };
exports.project = function(req, res, next) { var name = req.params.name; var p = new Project({ name: name }); if (p.packages) { p.latest = new Package({ name: p.name, version: p.version }); p.versions = p.getVersions(); p.fromNow = moment(p.updated_at).fromNow(); p.latest.readme = kramed(p.latest.readme || ''); // jquery@1.7.2 -> jquery p.latest.dependencies = _.uniq((p.latest.dependencies || []).map(function(d) { return d.split('@')[0]; })); p.latest.dependents = _.uniq((p.latest.dependents || []).map(function(d) { return d.split('@')[0]; })); if (p.unpublished) { p.unpublished.fromNow = moment(p.unpublished.time).fromNow(); } var editable; var ownerIds = p.owners.map(function(owner) { return owner && owner.id; }); if (ownerIds && ownerIds.length > 0 && req.session.user && !anonymous && ownerIds.indexOf(req.session.user.id) >= 0) { editable = true; } if (p.repository && p.repository.url) { try { p.repositoryurl = gu(p.repository.url).http_href; } catch(e) { p.repositoryurl = ''; } } res.render('project', { siteName: CONFIG.website.title, title: p.name + ' - '+ CONFIG.website.title, spmjsioVersion: spmjsioVersion, gitRev: gitRev, user: req.session.user, anonymous: anonymous, GA: CONFIG.website.GA, project: p, doclink: docLink(p.name), editable: editable, errormessage: req.query.errormessage }); } else { next(); } };