sforkowany z mirror/soapbox
Allow features overrides, document `custom/` directory
rodzic
4543e943dd
commit
afb7827f40
|
@ -4,6 +4,19 @@ import { createSelector } from 'reselect';
|
|||
import gte from 'semver/functions/gte';
|
||||
import lt from 'semver/functions/lt';
|
||||
|
||||
// FIXME: We have to use a dynamic import to trick Webpack into treating it as
|
||||
// optional, but this causes custom locales to become part of the main chunk.
|
||||
const importCustom = path => {
|
||||
try {
|
||||
return require(`custom/${path}.json`);
|
||||
} catch(e) {
|
||||
return {};
|
||||
}
|
||||
};
|
||||
|
||||
// Import custom overrides, if exists
|
||||
const overrides = importCustom('features');
|
||||
|
||||
const any = arr => arr.some(Boolean);
|
||||
|
||||
// For uglification
|
||||
|
@ -16,7 +29,7 @@ export const getFeatures = createSelector([instance => instance], instance => {
|
|||
const features = instance.getIn(['pleroma', 'metadata', 'features'], ImmutableList());
|
||||
const federation = instance.getIn(['pleroma', 'metadata', 'federation'], ImmutableMap());
|
||||
|
||||
return {
|
||||
return Object.assign({
|
||||
bookmarks: any([
|
||||
v.software === MASTODON && gte(v.compatVersion, '3.1.0'),
|
||||
v.software === PLEROMA && gte(v.version, '0.9.9'),
|
||||
|
@ -93,7 +106,7 @@ export const getFeatures = createSelector([instance => instance], instance => {
|
|||
v.software === MASTODON && gte(v.compatVersion, '3.2.0'),
|
||||
v.software === PLEROMA && gte(v.version, '2.4.50'),
|
||||
]),
|
||||
};
|
||||
}, overrides);
|
||||
});
|
||||
|
||||
export const parseVersion = version => {
|
||||
|
|
|
@ -1,5 +1,45 @@
|
|||
# Build Configuration
|
||||
|
||||
Soapbox supports compile-time customizations in the form of environment variables and a gitignored `custom/` directory.
|
||||
|
||||
## `custom/` directory
|
||||
|
||||
You can place files into the `custom/` directory to customize the Soapbox build.
|
||||
|
||||
### Custom locales (`custom/locales/*.json`)
|
||||
|
||||
It is possible to override locale messages by creating a file for each language, eg `custom/locales/en.json`.
|
||||
In this file, add only the messages you want to be overridden.
|
||||
For example:
|
||||
|
||||
```json
|
||||
{
|
||||
"account.posts": "Poasts",
|
||||
"account.posts_with_replies": "Poasts & Replies",
|
||||
"compose.submit_success": "Your poast was sent!",
|
||||
"compose_form.publish": "Poast"
|
||||
}
|
||||
```
|
||||
|
||||
These messages will be merged into the language file shipped with Soapbox.
|
||||
|
||||
### Feature overrides (`custom/features.json`)
|
||||
|
||||
You can create a file called `custom/features.json` to disable version-checking and force some features on or off.
|
||||
For example:
|
||||
|
||||
```json
|
||||
{
|
||||
"bookmarks": false,
|
||||
"lists": false,
|
||||
"quotePosts": true
|
||||
}
|
||||
```
|
||||
|
||||
See `app/soapbox/utils/features.js` for the full list of features.
|
||||
|
||||
## Environment variables
|
||||
|
||||
When compiling Soapbox FE, environment variables may be passed to change the build itself.
|
||||
For example:
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue