49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict'
 | |
| 
 | |
| /**
 | |
|  * Module dependencies.
 | |
|  */
 | |
| 
 | |
| var express = require('../../');
 | |
| var GithubView = require('./github-view');
 | |
| var md = require('marked').parse;
 | |
| 
 | |
| var app = module.exports = express();
 | |
| 
 | |
| // register .md as an engine in express view system
 | |
| app.engine('md', function(str, options, fn){
 | |
|   try {
 | |
|     var html = md(str);
 | |
|     html = html.replace(/\{([^}]+)\}/g, function(_, name){
 | |
|       return options[name] || '';
 | |
|     });
 | |
|     fn(null, html);
 | |
|   } catch(err) {
 | |
|     fn(err);
 | |
|   }
 | |
| });
 | |
| 
 | |
| // pointing to a particular github repo to load files from it
 | |
| app.set('views', 'expressjs/express');
 | |
| 
 | |
| // register a new view constructor
 | |
| app.set('view', GithubView);
 | |
| 
 | |
| app.get('/', function(req, res){
 | |
|   // rendering a view relative to the repo.
 | |
|   // app.locals, res.locals, and locals passed
 | |
|   // work like they normally would
 | |
|   res.render('examples/markdown/views/index.md', { title: 'Example' });
 | |
| });
 | |
| 
 | |
| app.get('/Readme.md', function(req, res){
 | |
|   // rendering a view from https://github.com/expressjs/express/blob/master/Readme.md
 | |
|   res.render('Readme.md');
 | |
| });
 | |
| 
 | |
| /* istanbul ignore next */
 | |
| if (!module.parent) {
 | |
|   app.listen(3000);
 | |
|   console.log('Express started on port 3000');
 | |
| }
 |