|
|
|
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,
|
|
|
|
minTocLevel: WIKI.config.theming.minTocLevel,
|
|
|
|
tocLevel: WIKI.config.theming.tocLevel,
|
|
|
|
tocCollapseLevel: WIKI.config.theming.tocCollapseLevel,
|
|
|
|
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,
|
|
|
|
minTocLevel: args.minTocLevel,
|
|
|
|
tocLevel: args.tocLevel,
|
|
|
|
tocCollapseLevel: args.tocCollapseLevel,
|
|
|
|
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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|