var TransferObject = module.exports = function(name, config){ this.name = name; this.doc = config.doc; this.def = config.def; this.access = config.access || false; this._create = config.create; this.title = config.title; this.docs_dir = config.docs_dir; this.links = {}; this.returned = []; // check for .md documentation var filename = this.docs_dir+'/transfers/'+this.name+'.md'; if( path.existsSync(filename) ){ this.doc = markdown.parse( fs.readFileSync(filename, 'utf-8')); } // run through the links and associate with this controller if( this.def.links ){ var self = this; Object.keys(this.def.links).forEach(function(key){ if( Bozuko.link(key) ){ Bozuko.link(key).associateTransferObject(self); } else{ console.warn('Undocumented Link ['+key+']'); } }); } };
function addReply(req,res,next) { var articleId=req.params.articleId||''; var author=req.params.username||''; var content=req.body.content||''; var user=req.session.user||''; if(user===''){ res.redirect('/login'); return; } var replyer_id=user.id; var ep=eventproxy(); ep.on('reply_error',function(tip){ req.flash('error',tip); res.redirect('/article/detail/'+articleId); }); if ([articleId,content].some(function (item) { return item === ''; })) { ep.emit('reply_error', '内容不能为空或评论的文章不存在!'); return; } var newReply=new Reply({'content':markdown.parse(content),'articleId':articleId,'replyer_id':replyer_id}); newReply.addReply(function(err,result){ if(err){ ep.emit('reply_error',err); return; }else{ res.redirect('/'+author+'/article/detail/'+articleId); } }); }
Blog.find({'_id':req.params.name},function(err,blog){ if(err||blog.length<=0){ next(); }else{ blog=blog[0]; blog.content=markdown.parse(blog.content); // console.log(blog.content); res.render('blog',{title:blog.title,blog:blog,user:req.cookies.user}); } })
fs.exists(filePath, function (exists) { if(!exists) { //Jump 404 next(); } else { var content = fs.readFileSync(filePath, config.encoding); // 这里将markdown转成html, 然后以参数形式输出 var html_content = markdown.parse(content); res.render('blogs/show', { title: config.app + " - Blogs" , blog_content: html_content }); } });
fs.readFile(path, 'utf8', function(err, str){ if (err) return fn(err); str = markdown.parse(str).toString(); fn(null, str); });
function markdown(str) { return Markdown.parse(str); }