diff --git a/ghost/admin/app.js b/ghost/admin/app.js index bd8a3e397e..b8d8ceb503 100755 --- a/ghost/admin/app.js +++ b/ghost/admin/app.js @@ -3,6 +3,7 @@ import loadInitializers from 'ember/load-initializers'; import 'ghost/utils/link-view'; import 'ghost/utils/text-field'; import configureApp from 'ghost/config'; +import ghostPathsHelper from 'ghost/helpers/ghostPaths'; Ember.MODEL_FACTORY_INJECTIONS = true; @@ -16,4 +17,6 @@ configureApp(App); loadInitializers(App, 'ghost'); +Ember.Handlebars.registerHelper('gh-path', ghostPathsHelper); + export default App; diff --git a/ghost/admin/helpers/ghostPaths.js b/ghost/admin/helpers/ghostPaths.js new file mode 100644 index 0000000000..311d7a6a9c --- /dev/null +++ b/ghost/admin/helpers/ghostPaths.js @@ -0,0 +1,34 @@ +// Handlebars Helper {{gh-path}} +// Usage: Assume 'http://www.myghostblog.org/myblog/' +// {{gh-path}} or {{gh-path ‘blog’}} for Ghost’s root (/myblog/) +// {{gh-path ‘admin’}} for Ghost’s admin root (/myblog/ghost/) +// {{gh-path ‘api’}} for Ghost’s api root (/myblog/ghost/api/v0.1/) +// {{gh-path 'admin' '/assets/hi.png'}} for resolved url (/myblog/ghost/assets/hi.png) +import ghostPaths from 'ghost/utils/ghost-paths'; + +export default function (path, url) { + + var base; + + switch (path.toString()) { + case 'blog': + base = ghostPaths().blogRoot; + break; + case 'admin': + base = ghostPaths().adminRoot; + break; + case 'api': + base = ghostPaths().apiRoot; + break; + default: + base = ghostPaths().blogRoot; + break; + } + + if (url && url.length > 0) { + base = base + url; + } + + return new Ember.Handlebars.SafeString(base); + +} \ No newline at end of file diff --git a/ghost/admin/templates/-navbar.hbs b/ghost/admin/templates/-navbar.hbs index b4ec684e73..e264d7efa4 100644 --- a/ghost/admin/templates/-navbar.hbs +++ b/ghost/admin/templates/-navbar.hbs @@ -1,6 +1,6 @@