feat(admin): make page extensions configurable
This commit is contained in:
		| @@ -164,6 +164,19 @@ | ||||
|                   //-   disabled | ||||
|                   //-   ) | ||||
|  | ||||
|               v-card.mt-5.animated.fadeInUp.wait-p6s | ||||
|                 v-toolbar(color='primary', dark, dense, flat) | ||||
|                   v-toolbar-title.subtitle-1 URL Handling | ||||
|                 v-card-text | ||||
|                   v-text-field( | ||||
|                     outlined | ||||
|                     :label='$t(`admin:general.pageExtensions`)' | ||||
|                     v-model='config.pageExtensions' | ||||
|                     prepend-icon='mdi-format-text-wrapping-overflow' | ||||
|                     :hint='$t(`admin:general.pageExtensionsHint`)' | ||||
|                     persistent-hint | ||||
|                     ) | ||||
|  | ||||
|     component(:is='activeModal') | ||||
|  | ||||
| </template> | ||||
| @@ -202,7 +215,8 @@ export default { | ||||
|         featurePageRatings: false, | ||||
|         featurePageComments: false, | ||||
|         featurePersonalWikis: false, | ||||
|         featureTinyPNG: false | ||||
|         featureTinyPNG: false, | ||||
|         pageExtensions: '' | ||||
|       }, | ||||
|       metaRobots: [ | ||||
|         { text: 'Index', value: 'index' }, | ||||
| @@ -247,32 +261,34 @@ export default { | ||||
|         await this.$apollo.mutate({ | ||||
|           mutation: gql` | ||||
|             mutation ( | ||||
|               $host: String! | ||||
|               $title: String! | ||||
|               $description: String! | ||||
|               $robots: [String]! | ||||
|               $analyticsService: String! | ||||
|               $analyticsId: String! | ||||
|               $company: String! | ||||
|               $contentLicense: String! | ||||
|               $logoUrl: String! | ||||
|               $featurePageRatings: Boolean! | ||||
|               $featurePageComments: Boolean! | ||||
|               $featurePersonalWikis: Boolean! | ||||
|               $host: String | ||||
|               $title: String | ||||
|               $description: String | ||||
|               $robots: [String] | ||||
|               $analyticsService: String | ||||
|               $analyticsId: String | ||||
|               $company: String | ||||
|               $contentLicense: String | ||||
|               $logoUrl: String | ||||
|               $pageExtensions: String | ||||
|               $featurePageRatings: Boolean | ||||
|               $featurePageComments: Boolean | ||||
|               $featurePersonalWikis: Boolean | ||||
|             ) { | ||||
|               site { | ||||
|                 updateConfig( | ||||
|                   host: $host, | ||||
|                   title: $title, | ||||
|                   description: $description, | ||||
|                   robots: $robots, | ||||
|                   analyticsService: $analyticsService, | ||||
|                   analyticsId: $analyticsId, | ||||
|                   company: $company, | ||||
|                   contentLicense: $contentLicense, | ||||
|                   logoUrl: $logoUrl, | ||||
|                   featurePageRatings: $featurePageRatings, | ||||
|                   featurePageComments: $featurePageComments, | ||||
|                   host: $host | ||||
|                   title: $title | ||||
|                   description: $description | ||||
|                   robots: $robots | ||||
|                   analyticsService: $analyticsService | ||||
|                   analyticsId: $analyticsId | ||||
|                   company: $company | ||||
|                   contentLicense: $contentLicense | ||||
|                   logoUrl: $logoUrl | ||||
|                   pageExtensions: $pageExtensions | ||||
|                   featurePageRatings: $featurePageRatings | ||||
|                   featurePageComments: $featurePageComments | ||||
|                   featurePersonalWikis: $featurePersonalWikis | ||||
|                 ) { | ||||
|                   responseResult { | ||||
| @@ -295,6 +311,7 @@ export default { | ||||
|             company: _.get(this.config, 'company', ''), | ||||
|             contentLicense: _.get(this.config, 'contentLicense', ''), | ||||
|             logoUrl: _.get(this.config, 'logoUrl', ''), | ||||
|             pageExtensions: _.get(this.config, 'pageExtensions', ''), | ||||
|             featurePageRatings: _.get(this.config, 'featurePageRatings', false), | ||||
|             featurePageComments: _.get(this.config, 'featurePageComments', false), | ||||
|             featurePersonalWikis: _.get(this.config, 'featurePersonalWikis', false) | ||||
| @@ -347,6 +364,7 @@ export default { | ||||
|               company | ||||
|               contentLicense | ||||
|               logoUrl | ||||
|               pageExtensions | ||||
|               featurePageRatings | ||||
|               featurePageComments | ||||
|               featurePersonalWikis | ||||
|   | ||||
| @@ -45,6 +45,10 @@ defaults: | ||||
|     company: '' | ||||
|     contentLicense: '' | ||||
|     logoUrl: https://static.requarks.io/logo/wikijs-butterfly.svg | ||||
|     pageExtensions: | ||||
|       - md | ||||
|       - html | ||||
|       - txt | ||||
|     mail: | ||||
|       host: '' | ||||
|       secure: true | ||||
| @@ -152,8 +156,4 @@ reservedPaths: | ||||
|   - img | ||||
|   - js | ||||
|   - svg | ||||
| pageExtensions: | ||||
|   - md | ||||
|   - html | ||||
|   - txt | ||||
| # --------------------------------- | ||||
|   | ||||
| @@ -414,7 +414,7 @@ router.get('/_userav/:uid', async (req, res, next) => { | ||||
|  * View document / asset | ||||
|  */ | ||||
| router.get('/*', async (req, res, next) => { | ||||
|   const stripExt = _.some(WIKI.data.pageExtensions, ext => _.endsWith(req.path, `.${ext}`)) | ||||
|   const stripExt = _.some(WIKI.config.pageExtensions, ext => _.endsWith(req.path, `.${ext}`)) | ||||
|   const pageArgs = pageHelper.parsePath(req.path, { stripExt }) | ||||
|   const isPage = (stripExt || pageArgs.path.indexOf('.') === -1) | ||||
|  | ||||
|   | ||||
| @@ -18,6 +18,7 @@ module.exports = { | ||||
|         company: WIKI.config.company, | ||||
|         contentLicense: WIKI.config.contentLicense, | ||||
|         logoUrl: WIKI.config.logoUrl, | ||||
|         pageExtensions: WIKI.config.pageExtensions.join(', '), | ||||
|         ...WIKI.config.seo, | ||||
|         ...WIKI.config.features, | ||||
|         ...WIKI.config.security, | ||||
| @@ -62,6 +63,10 @@ module.exports = { | ||||
|           WIKI.config.logoUrl = _.trim(args.logoUrl) | ||||
|         } | ||||
|  | ||||
|         if (args.hasOwnProperty('pageExtensions')) { | ||||
|           WIKI.config.pageExtensions = _.trim(args.pageExtensions).split(',').map(p => p.trim().toLowerCase()).filter(p => p !== '') | ||||
|         } | ||||
|  | ||||
|         WIKI.config.seo = { | ||||
|           description: _.get(args, 'description', WIKI.config.seo.description), | ||||
|           robots: _.get(args, 'robots', WIKI.config.seo.robots), | ||||
| @@ -104,7 +109,7 @@ module.exports = { | ||||
|           forceDownload: _.get(args, 'uploadForceDownload', WIKI.config.uploads.forceDownload) | ||||
|         } | ||||
|  | ||||
|         await WIKI.configSvc.saveToDb(['host', 'title', 'company', 'contentLicense', 'seo', 'logoUrl', 'auth', 'features', 'security', 'uploads']) | ||||
|         await WIKI.configSvc.saveToDb(['host', 'title', 'company', 'contentLicense', 'seo', 'logoUrl', 'pageExtensions', 'auth', 'features', 'security', 'uploads']) | ||||
|  | ||||
|         if (WIKI.config.security.securityTrustProxy) { | ||||
|           WIKI.app.enable('trust proxy') | ||||
|   | ||||
| @@ -33,6 +33,7 @@ type SiteMutation { | ||||
|     company: String | ||||
|     contentLicense: String | ||||
|     logoUrl: String | ||||
|     pageExtensions: String | ||||
|     authAutoLogin: Boolean | ||||
|     authEnforce2FA: Boolean | ||||
|     authHideLocal: Boolean | ||||
| @@ -74,6 +75,7 @@ type SiteConfig { | ||||
|   company: String | ||||
|   contentLicense: String | ||||
|   logoUrl: String | ||||
|   pageExtensions: String | ||||
|   authAutoLogin: Boolean | ||||
|   authEnforce2FA: Boolean | ||||
|   authHideLocal: Boolean | ||||
|   | ||||
		Reference in New Issue
	
	Block a user