Example #1
0
exports.documentation = function(req, res, next) {
  var title = req.params.title || 'getting-started';
  var content = (fs.readFileSync(path.join('documentation', title + '.md')) || '').toString();
  content = kramed(content);

  var nav = fs.readdirSync('documentation');
  nav = nav.map(function(item, i) {
    item = item.replace('.md', '');
    return {
      text: item,
      current: (item === title),
      index: DocumentationOrder[item] || 100
    };
  });

  nav = nav.sort(function(a, b) {
    return a.index - b.index;
  });

  res.render('documentation', {
    siteName: CONFIG.website.title,
    title: capitalize.words(title.replace(/-/g, ' ')) + '- spm documentation',
    spmjsioVersion: spmjsioVersion,
    gitRev: gitRev,
    user: req.session.user,
    anonymous: anonymous,
    nav: nav,
    GA: CONFIG.website.GA,
    content: content
  });
};
Example #2
0
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();
  }
};
Example #3
0
exports.package = function(req, res, next) {
  var name = req.params.name;
  var project = new Project({
    name: req.params.name
  });
  var version = semver.maxSatisfying(Object.keys(project.packages || {}), req.params.version);

  var p = new Package({
    name: name,
    version: version
  });
  if (p.md5) {
    p.readme = kramed(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', {
      siteName: CONFIG.website.title,
      title: p.name + '@' + p.version + ' - '+ CONFIG.website.title,
      spmjsioVersion: spmjsioVersion,
      gitRev: gitRev,
      user: req.session.user,
      anonymous: anonymous,
      GA: CONFIG.website.GA,
      package: p
    });
  } else {
    next();
  }
};