mirror of https://github.com/pelias/api.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.1 KiB
51 lines
1.1 KiB
|
|
var pkg = require('../package'); |
|
var markdown = require('markdown').markdown; |
|
var fs = require('fs'); |
|
|
|
function setup(){ |
|
|
|
var text = null; |
|
function getText( callback ) { |
|
if( text ) { |
|
process.nextTick( callback.bind( null, null, text ) ); |
|
return; |
|
} |
|
|
|
fs.readFile( './DOCS.md', 'utf8', function ( err, content ) { |
|
if( err ) { |
|
callback( err ); |
|
return; |
|
} |
|
text = '# Pelias API\n'; |
|
text += '### Version: ['+ pkg.version+ '](https://github.com/pelias/api/releases)\n'; |
|
text += content; |
|
|
|
callback( null, text ); |
|
}); |
|
} |
|
|
|
function controller( req, res, next ) { |
|
getText( function ( err, content ) { |
|
if( !err ) { |
|
if( req.accepts( 'html' ) ) { |
|
var style = '<style>html{font-family:monospace}</style>'; |
|
res.send( style + markdown.toHTML( content ) ); |
|
} |
|
else { |
|
// stats |
|
res.json({ |
|
name: pkg.name, |
|
version: { |
|
number: pkg.version |
|
} |
|
}); |
|
} |
|
} |
|
}); |
|
} |
|
|
|
return controller; |
|
} |
|
|
|
module.exports = setup; |