fix disqus_url, remove server, fix fs.copy
This commit is contained in:
parent
cb8e7c09d7
commit
f023315cfc
12
desirae.js
12
desirae.js
|
@ -892,6 +892,8 @@
|
|||
} else {
|
||||
view.entity.disqus_url = view.entity.production_url;
|
||||
}
|
||||
console.log('entity', view.entity);
|
||||
|
||||
return view;
|
||||
});
|
||||
|
||||
|
@ -919,10 +921,11 @@
|
|||
, view
|
||||
;
|
||||
|
||||
entity.url = env.base_url + path.join(env.base_path, entity.yml.permalink);
|
||||
entity.canonical_url = env.base_url + path.join(env.base_path, entity.yml.permalink);
|
||||
entity.production_url = desi.site.base_url + path.join(desi.site.base_path, entity.yml.permalink);
|
||||
entity.relative_url = path.join(env.base_path, entity.yml.permalink);
|
||||
// TODO still have some index.html mess to work out...
|
||||
entity.url = env.base_url + path.join(env.base_path, entity.yml.permalink).replace(/\/index.html$/, '/');
|
||||
entity.canonical_url = env.base_url + path.join(env.base_path, entity.yml.permalink).replace(/\/index.html$/, '/');
|
||||
entity.production_url = desi.site.base_url + path.join(desi.site.base_path, entity.yml.permalink).replace(/\/index.html$/, '/');
|
||||
entity.relative_url = path.join(env.base_path, entity.yml.permalink).replace(/\/index.html$/, '/');
|
||||
|
||||
// TODO nested names?
|
||||
navigation.forEach(function (nav) {
|
||||
|
@ -950,6 +953,7 @@
|
|||
|
||||
desi.transforms.forEach(function (fn) {
|
||||
view = fn(view);
|
||||
console.log('view.entity', view.entity);
|
||||
});
|
||||
|
||||
return renderLayers(desi, env, view, entity).then(function (html) {
|
||||
|
|
|
@ -237,7 +237,11 @@ function copyfs(blogdir, files) {
|
|||
}).then(function () {
|
||||
// TODO allow delete?
|
||||
return forEachAsync(sources, function (source) {
|
||||
return fsExtra.copyAsync(safeResolve(blogdir, source), safeResolve(blogdir, files[source])).catch(function (e) {
|
||||
return fsExtra.copyAsync(
|
||||
safeResolve(blogdir, source)
|
||||
, safeResolve(blogdir, files[source])
|
||||
, { replace: true }
|
||||
).catch(function (e) {
|
||||
results.errors.push({
|
||||
type: 'file'
|
||||
|
||||
|
|
168
server.js
168
server.js
|
@ -1,168 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
require('require-yaml');
|
||||
|
||||
var connect = require('connect')
|
||||
//, PromiseA = require('bluebird').Promise
|
||||
, query = require('connect-query')
|
||||
, bodyParser = require('body-parser')
|
||||
, serveStatic = require('serve-static')
|
||||
, send = require('connect-send-json')
|
||||
|
||||
, app = connect()
|
||||
, fsapi = require('./lib/fsapi')
|
||||
, walk = require('./lib/fsapi').walk
|
||||
, getfs = require('./lib/fsapi').getfs
|
||||
, putfs = require('./lib/fsapi').putfs
|
||||
|
||||
, blogdir = process.argv[2] || 'blog'
|
||||
, port = process.argv[3] || '65080'
|
||||
|
||||
, path = require('path')
|
||||
//, config = require(path.join('./', blogdir, 'config.yml'))
|
||||
;
|
||||
|
||||
|
||||
app
|
||||
.use(send.json())
|
||||
.use(query())
|
||||
.use(bodyParser.json({ limit: 10 * 1024 * 1024 })) // 10mb
|
||||
.use(require('compression')())
|
||||
.use('/api/fs/walk', function (req, res, next) {
|
||||
if (!(/^GET$/i.test(req.method) || /^GET$/i.test(req.query._method))) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
var opts = {}
|
||||
, dirnames = req.query.dir && [req.query.dir] || (req.query.dirs && req.query.dirs.split(/,/g)) || req.body.dirs
|
||||
;
|
||||
|
||||
if (!dirnames || !dirnames.length) {
|
||||
res.json({ error: "please specify GET w/ req.query.dir or POST w/ _method=GET&dirs=path/to/thing,..." });
|
||||
return;
|
||||
}
|
||||
|
||||
if (!dirnames.every(function (dirname) {
|
||||
return 'string' === typeof dirname;
|
||||
})) {
|
||||
res.json({ error: "malformed request: " + JSON.stringify(dirnames) });
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
if (req.query.excludes) {
|
||||
opts.excludes = req.query.excludes.split(',');
|
||||
}
|
||||
*/
|
||||
|
||||
if (req.query.extensions) {
|
||||
opts.extensions = req.query.extensions.split(/,/g);
|
||||
}
|
||||
|
||||
if ('true' === req.query.dotfiles) {
|
||||
opts.dotfiles = true;
|
||||
}
|
||||
if ('false' === req.query.sha1sum) {
|
||||
opts.sha1sum = false;
|
||||
}
|
||||
if ('true' === req.query.contents) {
|
||||
opts.contents = true;
|
||||
}
|
||||
|
||||
// TODO opts.contents?
|
||||
walk.walkDirs(blogdir, dirnames, opts).then(function (stats) {
|
||||
if (!req.body.dirs && !req.query.dirs) {
|
||||
res.json(stats[dirnames[0]]);
|
||||
} else {
|
||||
res.json(stats);
|
||||
}
|
||||
});
|
||||
})
|
||||
.use('/api/fs/files', function (req, res, next) {
|
||||
if (!(/^GET$/i.test(req.method) || /^GET$/i.test(req.query._method))) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
var filepaths = req.query.path && [req.query.path] || (req.query.paths && req.query.paths.split(/,/g)) || req.body.paths
|
||||
;
|
||||
|
||||
if (!filepaths || !filepaths.length) {
|
||||
res.json({ error: "please specify GET w/ req.query.path or POST _method=GET&paths=path/to/thing,..." });
|
||||
return;
|
||||
}
|
||||
|
||||
return getfs(blogdir, filepaths).then(function (files) {
|
||||
if (!req.body.paths && !req.query.paths) {
|
||||
res.json(files[0]);
|
||||
} else {
|
||||
res.send(files);
|
||||
}
|
||||
});
|
||||
})
|
||||
.use('/api/fs/files', function (req, res, next) {
|
||||
if (!(/^POST|PUT$/i.test(req.method) || /^POST|PUT$/i.test(req.query._method))) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
var opts = {}
|
||||
, files = req.body.files
|
||||
;
|
||||
|
||||
if (!files || !files.length) {
|
||||
res.json({ error: "please specify POST w/ req.body.files" });
|
||||
return;
|
||||
}
|
||||
|
||||
return putfs(blogdir, files, opts).then(function (results) {
|
||||
res.json(results);
|
||||
});
|
||||
})
|
||||
.use('/api/fs/copy', function (req, res, next) {
|
||||
if (!(/^POST|PUT$/i.test(req.method) || /^POST|PUT$/i.test(req.query._method))) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
var opts = {}
|
||||
, files = req.body.files
|
||||
;
|
||||
|
||||
if ('object' !== typeof files || !Object.keys(files).length) {
|
||||
res.json({ error: "please specify POST w/ req.body.files" });
|
||||
return;
|
||||
}
|
||||
|
||||
return fsapi.copyfs(blogdir, files, opts).then(function (results) {
|
||||
res.json(results);
|
||||
});
|
||||
})
|
||||
|
||||
.use('/api/fs', function (req, res) {
|
||||
var pathname = path.resolve(blogdir)
|
||||
;
|
||||
|
||||
res.json({
|
||||
path: pathname
|
||||
, name: path.basename(pathname)
|
||||
, relativePath: path.dirname(pathname)
|
||||
//, cwd: path.resolve()
|
||||
//, patharg: blogdir
|
||||
});
|
||||
return;
|
||||
})
|
||||
.use('/api/fs/static', serveStatic(blogdir))
|
||||
|
||||
.use(serveStatic('./'))
|
||||
.use('/compiled_dev', serveStatic(path.join(blogdir, '/compiled_dev')))
|
||||
// TODO
|
||||
//.use(serveStatic(tmpdir))
|
||||
;
|
||||
|
||||
module.exports = app;
|
||||
|
||||
require('http').createServer().on('request', app).listen(port, function () {
|
||||
console.log('listening ' + port);
|
||||
});
|
Loading…
Reference in New Issue