Ghost/core/client/app/utils/ghost-paths.js
2015-05-13 15:08:04 +01:00

61 lines
1.5 KiB
JavaScript

var makeRoute = function (root, args) {
var slashAtStart,
slashAtEnd,
parts,
route;
slashAtStart = /^\//;
slashAtEnd = /\/$/;
route = root.replace(slashAtEnd, '');
parts = Array.prototype.slice.call(args, 0);
parts.forEach(function (part) {
if (part) {
route = [route, part.replace(slashAtStart, '').replace(slashAtEnd, '')].join('/');
}
});
return route += '/';
};
function ghostPaths() {
var path = window.location.pathname,
subdir = path.substr(0, path.search('/ghost/')),
adminRoot = subdir + '/ghost',
apiRoot = subdir + '/ghost/api/v0.1';
function assetUrl(src) {
return subdir + src;
}
return {
subdir: subdir,
blogRoot: subdir + '/',
adminRoot: adminRoot,
apiRoot: apiRoot,
url: {
admin: function () {
return makeRoute(adminRoot, arguments);
},
api: function () {
return makeRoute(apiRoot, arguments);
},
join: function () {
if (arguments.length > 1) {
return makeRoute(arguments[0], Array.prototype.slice.call(arguments, 1));
} else if (arguments.length === 1) {
var arg = arguments[0];
return arg.slice(-1) === '/' ? arg : arg + '/';
}
return '/';
},
asset: assetUrl
}
};
}
export default ghostPaths;