1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-04 15:09:16 +02:00

tidy up serve tool, adds 'gulp serve' task

This commit is contained in:
Fred Chasen 2015-02-16 14:12:33 -05:00
parent 338bc64884
commit c965cb5408
8 changed files with 2148 additions and 1521 deletions

3466
dist/epub.js vendored

File diff suppressed because it is too large Load diff

6
dist/epub.min.js vendored

File diff suppressed because one or more lines are too long

View file

@ -8,6 +8,7 @@ var plumber = require('gulp-plumber');
var onError = function (err) { var onError = function (err) {
gutil.log(gutil.colors.green(err)); gutil.log(gutil.colors.green(err));
}; };
var server = require("./tools/serve.js");
// Lint JS // Lint JS
gulp.task('lint', function() { gulp.task('lint', function() {
@ -32,6 +33,10 @@ gulp.task('watch', function() {
gulp.watch('lib/*/*.js', ['minify']); gulp.watch('lib/*/*.js', ['minify']);
}); });
gulp.task('serve', ["watch"], function() {
server();
});
// Default // Default
gulp.task('default', ['lint', 'minify']); gulp.task('default', ['lint', 'minify']);

View file

@ -144,10 +144,42 @@ EPUBJS.Rendition.prototype.bounds = function() {
EPUBJS.Rendition.prototype.display = function(what){ EPUBJS.Rendition.prototype.display = function(what){
return this.q.enqueue(this.load, what); return this.q.enqueue(function(what){
var displaying = new RSVP.defer();
var displayed = displaying.promise;
var section = this.book.spine.get(what);
var view;
this.displaying = true;
if(section){
view = new EPUBJS.View(section);
// This will clear all previous views
this.fill(view);
// Move to correct place within the section, if needed
// this.moveTo(what)
this.check();
view.displayed.then(function(){
this.trigger("displayed", section);
this.displaying = false;
displaying.resolve(this);
}.bind(this));
} else {
displaying.reject(new Error("No Section Found"));
}
return displayed;
}, what);
}; };
/*
EPUBJS.Rendition.prototype.load = function(what){ EPUBJS.Rendition.prototype.load = function(what){
var displaying = new RSVP.defer(); var displaying = new RSVP.defer();
var displayed = displaying.promise; var displayed = displaying.promise;
@ -180,7 +212,7 @@ EPUBJS.Rendition.prototype.load = function(what){
return displayed; return displayed;
}; };
*/
// Takes a cfi, fragment or page? // Takes a cfi, fragment or page?
EPUBJS.Rendition.prototype.moveTo = function(what){ EPUBJS.Rendition.prototype.moveTo = function(what){

View file

@ -3,6 +3,7 @@
"version": "0.3.0", "version": "0.3.0",
"description": "Render Epubs", "description": "Render Epubs",
"main": "/lib/epub.js", "main": "/lib/epub.js",
"repository" : "https://github.com/futurepress/epub.js"
"directories": { "directories": {
"test": "test" "test": "test"
}, },
@ -23,6 +24,7 @@
"gulp-rename": "^1.2.0", "gulp-rename": "^1.2.0",
"gulp-uglify": "^0.3.1", "gulp-uglify": "^0.3.1",
"gulp-util": "^3.0.0", "gulp-util": "^3.0.0",
"gulp-webserver": "^0.9.0",
"morgan": "^1.1.1", "morgan": "^1.1.1",
"optimist": "^0.6.1", "optimist": "^0.6.1",
"portfinder": "^0.2.1", "portfinder": "^0.2.1",

View file

@ -1,43 +0,0 @@
var connect = require('connect'),
colors = require('colors'),
argv = require('optimist').argv,
portfinder = require('portfinder');
var port = argv.p,
logger = argv.l,
log = console.log;
if (!argv.p) {
portfinder.basePort = 8080;
portfinder.getPort(function (err, port) {
if (err) throw err;
listen(port);
});
} else {
listen(port);
}
function listen(port) {
var server = connect();
server.use(connect.static(__dirname))
if(!logger) server.use(connect.logger(logger))
server.listen(port);
log('Starting up Server, serving '.yellow
+ __dirname.green
+ ' on port: '.yellow
+ port.toString().cyan);
log('Hit CTRL-C to stop the server');
}
process.on('SIGINT', function () {
log('http-server stopped.'.red);
process.exit();
});

View file

@ -1,57 +1,12 @@
#!/usr/bin/env node #!/usr/bin/env node
var connect = require('connect');
var express = require('express');
var serveStatic = require('serve-static');
var morgan = require('morgan');
var colors = require('colors');
var argv = require('optimist').argv; var argv = require('optimist').argv;
var portfinder = require('portfinder'); var server = require('./serve.js');
var port = argv.p, var port = argv.p;
logger = argv.l,
log = console.log;
if (!argv.p) { if (!argv.p) {
portfinder.basePort = 8080; server();
portfinder.getPort(function (err, port) {
if (err) throw err;
listen(port);
});
} else { } else {
listen(port); server(port);
} }
//CORS middleware
function allowCrossDomain(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
function listen(port) {
var server = express();
server.use(allowCrossDomain);
server.use(serveStatic(__dirname + "../../"));
if(!logger) server.use(morgan(logger))
server.listen(port);
log('Starting up Server, serving '.yellow
+ __dirname.replace("tools", '').green
+ ' on port: '.yellow
+ port.toString().cyan);
log('Hit CTRL-C to stop the server');
}
process.on('SIGINT', function () {
log('http-server stopped.'.red);
process.exit();
});

56
tools/serve.js Normal file
View file

@ -0,0 +1,56 @@
var connect = require('connect');
var express = require('express');
var serveStatic = require('serve-static');
var morgan = require('morgan');
var colors = require('colors');
var argv = require('optimist').argv;
var portfinder = require('portfinder');
var logger, port;
var log = console.log;
function start(_port) {
if (!_port) {
portfinder.basePort = 8080;
portfinder.getPort(function (err, openPort) {
if (err) throw err;
port = openPort
listen(port);
});
} else {
listen(_port);
}
}
//CORS middleware
function allowCrossDomain(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
function listen(port) {
var server = express();
server.use(allowCrossDomain);
server.use(serveStatic(__dirname + "../../"));
if(!logger) server.use(morgan(logger))
server.listen(port);
log('Starting up Server, serving '.yellow
+ __dirname.replace("tools", '').green
+ ' on port: '.yellow
+ port.toString().cyan);
log('Hit CTRL-C to stop the server');
}
process.on('SIGINT', function () {
log('Server stopped.'.red);
process.exit();
});
module.exports = start;