Ghost/core/server/config/overrides.json

76 lines
2.7 KiB
JSON
Raw Normal View History

{
"paths": {
"appRoot": ".",
"corePath": "core/",
"clientAssets": "core/built/assets",
"helperTemplates": "core/server/helpers/tpl/",
"adminViews": "core/server/web/admin/views/",
"defaultViews": "core/server/views/",
YAML settings loader and parser closes #9528 These code changes introduce a YAML parser which will load and parse YAML files from the `/content/settings` directory. There are three major parts involved: 1. `ensure-settings.js`: this fn takes care that on bootstrap, the supported files are present in the `/content/settings` directory. If the files are not present, they get copied back from our default files. The default files to copy from are located in `core/server/services/settings`. 2. `loader.js`: the settings loader reads the requested `yaml` file from the disk and passes it to the yaml parser, which returns a `json` object of the file. The settings loader throws an error, if the file is not accessible, e. g. because of permission errors. 3. `yaml-parser`: gets passed a `yaml` file and returns a `json` object. If the file is not parseable, it returns a clear error that contains the information, what and where the parsing error occurred (e. g. line number and reason). - added a `get()` fn to settings services, that returns the settings object that's asked for. e. g. `settings.get('routes').then(()...` will return the `routes` settings. - added a `getAll()` fn to settings services, that returns all available settings in an object. The object looks like: `{routes: {routes: {}, collections: {}, resources: {}}, globals: {value: {}}`, assuming that we have to supported settings `routes` and `globals`. Further additions: - config `contentPath` for `settings` - config overrides for default `yaml` files location in `/core/server/services/settings` **Important**: These code changes are in preparation for Dynamic Routing and not yet used. The process of copying the supported `yaml` files (in this first step, the `routes.yaml` file) is not yet activated.
2018-04-13 04:34:03 +03:00
"defaultSettings": "core/server/services/settings/",
"internalAppPath": "core/server/apps/",
"internalStoragePath": "core/server/adapters/storage/",
"internalSchedulingPath": "core/server/adapters/scheduling/",
"migrationPath": "core/server/data/migrations",
"publicFilePath": "core/server/public"
},
"apps": {
"internal": [
"private-blogging",
"subscribers",
"amp"
]
},
"routeKeywords": {
"tag": "tag",
"author": "author",
"page": "page",
"preview": "p",
"private": "private",
"subscribe": "subscribe",
"amp": "amp",
✨ Multiple authors (#9426) no issue This PR adds the server side logic for multiple authors. This adds the ability to add multiple authors per post. We keep and support single authors (maybe till the next major - this is still in discussion) ### key notes - `authors` are not fetched by default, only if we need them - the migration script iterates over all posts and figures out if an author_id is valid and exists (in master we can add invalid author_id's) and then adds the relation (falls back to owner if invalid) - ~~i had to push a fork of bookshelf to npm because we currently can't bump bookshelf + the two bugs i discovered are anyway not yet merged (https://github.com/kirrg001/bookshelf/commits/master)~~ replaced by new bookshelf release - the implementation of single & multiple authors lives in a single place (introduction of a new concept: model relation) - if you destroy an author, we keep the behaviour for now -> remove all posts where the primary author id matches. furthermore, remove all relations in posts_authors (e.g. secondary author) - we make re-use of the `excludeAttrs` concept which was invented in the contributors PR (to protect editing authors as author/contributor role) -> i've added a clear todo that we need a logic to make a diff of the target relation -> both for tags and authors - `authors` helper available (same as `tags` helper) - `primary_author` computed field available - `primary_author` functionality available (same as `primary_tag` e.g. permalinks, prev/next helper etc)
2018-03-27 17:16:15 +03:00
"primaryTagFallback": "all",
"primaryAuthorFallback": "all"
},
"slugs": {
"reserved": ["admin", "app", "apps", "categories",
"category", "dashboard", "feed", "ghost-admin", "login", "logout",
"page", "pages", "post", "posts", "public", "register", "setup",
"signin", "signout", "signup", "user", "users", "wp-admin", "wp-login"],
"protected": ["ghost", "rss", "amp"]
},
"uploads": {
"subscribers": {
"extensions": [".csv"],
"contentTypes": ["text/csv", "application/csv", "application/octet-stream"]
},
"images": {
"extensions": [".jpg", ".jpeg", ".gif", ".png", ".svg", ".svgz"],
"contentTypes": ["image/jpeg", "image/png", "image/gif", "image/svg+xml"]
},
"icons": {
"extensions": [".png", ".ico"],
"contentTypes": ["image/png", "image/x-icon", "image/vnd.microsoft.icon"]
},
"db": {
"extensions": [".json", ".zip"],
"contentTypes": ["text/plain", "application/octet-stream", "application/json", "application/zip", "application/x-zip-compressed"]
},
"themes": {
"extensions": [".zip"],
"contentTypes": ["application/zip", "application/x-zip-compressed", "application/octet-stream"]
},
"redirects": {
"extensions": [".json"],
"contentTypes": ["text/plain", "application/octet-stream", "application/json"]
}
},
"times": {
"cannotScheduleAPostBeforeInMinutes": 2,
"publishAPostBySchedulerToleranceInMinutes": 2,
"getImageSizeTimeoutInMS": 5000
},
"maintenance": {
"enabled": false
}
}