mirror of https://github.com/requarks/wiki
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.7 KiB
65 lines
1.7 KiB
const graphHelper = require('../../helpers/graph')
|
|
const _ = require('lodash')
|
|
const CleanCSS = require('clean-css')
|
|
|
|
/* global WIKI */
|
|
|
|
module.exports = {
|
|
Query: {
|
|
async theming() { return {} }
|
|
},
|
|
Mutation: {
|
|
async theming() { return {} }
|
|
},
|
|
ThemingQuery: {
|
|
async themes(obj, args, context, info) {
|
|
return [{ // TODO
|
|
key: 'default',
|
|
title: 'Default',
|
|
author: 'requarks.io'
|
|
}]
|
|
},
|
|
async config(obj, args, context, info) {
|
|
return {
|
|
theme: WIKI.config.theming.theme,
|
|
iconset: WIKI.config.theming.iconset,
|
|
darkMode: WIKI.config.theming.darkMode,
|
|
tocPosition: WIKI.config.theming.tocPosition || 'left',
|
|
injectCSS: new CleanCSS({ format: 'beautify' }).minify(WIKI.config.theming.injectCSS).styles,
|
|
injectHead: WIKI.config.theming.injectHead,
|
|
injectBody: WIKI.config.theming.injectBody
|
|
}
|
|
}
|
|
},
|
|
ThemingMutation: {
|
|
async setConfig(obj, args, context, info) {
|
|
try {
|
|
if (!_.isEmpty(args.injectCSS)) {
|
|
args.injectCSS = new CleanCSS({
|
|
inline: false
|
|
}).minify(args.injectCSS).styles
|
|
}
|
|
|
|
WIKI.config.theming = {
|
|
...WIKI.config.theming,
|
|
theme: args.theme,
|
|
iconset: args.iconset,
|
|
darkMode: args.darkMode,
|
|
tocPosition: args.tocPosition || 'left',
|
|
injectCSS: args.injectCSS || '',
|
|
injectHead: args.injectHead || '',
|
|
injectBody: args.injectBody || ''
|
|
}
|
|
|
|
await WIKI.configSvc.saveToDb(['theming'])
|
|
|
|
return {
|
|
responseResult: graphHelper.generateSuccess('Theme config updated')
|
|
}
|
|
} catch (err) {
|
|
return graphHelper.generateError(err)
|
|
}
|
|
}
|
|
}
|
|
}
|