diff --git a/index.js b/index.js index e0959e3..e17855d 100644 --- a/index.js +++ b/index.js @@ -12,7 +12,8 @@ hexo.extend.console.register('server', 'Start the server.', { {name: '-i, --ip', desc: 'Override the default server IP. Bind to all IP address by default.'}, {name: '-p, --port', desc: 'Override the default port.'}, {name: '-s, --static', desc: 'Only serve static files.'}, - {name: '-l, --log [format]', desc: 'Enable logger. Override the logger format.'} + {name: '-l, --log [format]', desc: 'Enable logger. Override the logger format.'}, + {name: '-o, --open', desc: 'Immediately open the server url in your default web browser.'} ] }, require('./lib/server')); @@ -21,4 +22,4 @@ hexo.extend.filter.register('server_middleware', require('./lib/middlewares/head hexo.extend.filter.register('server_middleware', require('./lib/middlewares/route')); hexo.extend.filter.register('server_middleware', require('./lib/middlewares/static')); hexo.extend.filter.register('server_middleware', require('./lib/middlewares/redirect')); -hexo.extend.filter.register('server_middleware', require('./lib/middlewares/gzip')); \ No newline at end of file +hexo.extend.filter.register('server_middleware', require('./lib/middlewares/gzip')); diff --git a/lib/server.js b/lib/server.js index c70e63e..5793b63 100644 --- a/lib/server.js +++ b/lib/server.js @@ -2,6 +2,8 @@ var connect = require('connect'); var http = require('http'); var chalk = require('chalk'); var Promise = require('bluebird'); +var format = require('util').format; +var open = require('open'); function server(args){ var app = connect(); @@ -24,9 +26,14 @@ function server(args){ }).then(function(){ return startServer(http.createServer(app), port, ip); }).then(function(server){ - self.log.info('Hexo is running at ' + chalk.underline('http://%s:%d%s') + '. Press Ctrl+C to stop.', ip, port, root); + var addr = format('http://%s:%d%s', ip, port, root); + self.log.info('Hexo is running at %s. Press Ctrl+C to stop.', chalk.underline(addr)); self.emit('server'); + if (args.o || args.open) { + open(addr); + } + return server; }, function(err){ switch (err.code){ @@ -53,4 +60,4 @@ function startServer(server, port, ip){ }); } -module.exports = server; \ No newline at end of file +module.exports = server; diff --git a/package.json b/package.json index b14d49b..4211f2c 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "connect": "3.x", "mime": "^1.2.11", "morgan": "^1.5.0", + "open": "0.0.5", "serve-static": "^1.7.1", "utils-merge": "^1.0.0" },