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) { 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;