Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wiki-js
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
wiki-js
Commits
3b347f26
Commit
3b347f26
authored
Dec 21, 2019
by
NGPixel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: save rendering configuration
parent
9166e27e
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
33 additions
and
120 deletions
+33
-120
admin-rendering.vue
client/components/admin/admin-rendering.vue
+23
-7
rendering.js
server/graph/resolvers/rendering.js
+2
-2
rendering.graphql
server/graph/schemas/rendering.graphql
+0
-1
renderers.js
server/models/renderers.js
+8
-0
definition.yml
server/modules/rendering/html-mathjax/definition.yml
+0
-9
mathjax.js
server/modules/rendering/html-mathjax/mathjax.js
+0
-82
definition.yml
server/modules/rendering/markdown-mathjax/definition.yml
+0
-8
renderer.js
server/modules/rendering/markdown-mathjax/renderer.js
+0
-11
No files found.
client/components/admin/admin-rendering.vue
View file @
3b347f26
...
...
@@ -20,7 +20,6 @@
flat
dark
)
v-icon.mr-2 mdi-creation
.subtitle-1 Pipeline
v-expansion-panels.adm-rendering-pipeline(
v-model='selectedCore'
...
...
@@ -132,6 +131,7 @@ import { get } from 'vuex-pathify'
import
{
StatusIndicator
}
from
'vue-status-indicator'
import
renderersQuery
from
'gql/admin/rendering/rendering-query-renderers.gql'
import
renderersSaveMutation
from
'gql/admin/rendering/rendering-mutation-save-renderers.gql'
export
default
{
components
:
{
...
...
@@ -164,18 +164,34 @@ export default {
})
},
async
refresh
()
{
await
this
.
$apollo
.
queries
.
renderers
.
refetch
()
this
.
$store
.
commit
(
'showNotification'
,
{
style
:
'indigo
'
,
message
:
`Coming soon...`
,
icon
:
'
directions_boat
'
message
:
'Rendering active configuration has been reloaded.
'
,
style
:
'success'
,
icon
:
'
cached
'
})
},
async
save
()
{
this
.
$store
.
commit
(
`loadingStart`
,
'admin-rendering-saverenderers'
)
await
this
.
$apollo
.
mutate
({
mutation
:
renderersSaveMutation
,
variables
:
{
renderers
:
_
.
reduce
(
this
.
renderers
,
(
result
,
core
)
=>
{
result
=
_
.
concat
(
result
,
core
.
children
.
map
(
rd
=>
({
key
:
rd
.
key
,
isEnabled
:
rd
.
isEnabled
,
config
:
rd
.
config
.
map
(
cfg
=>
({
key
:
cfg
.
key
,
value
:
JSON
.
stringify
({
v
:
cfg
.
value
.
value
})
}))
})))
return
result
},
[])
}
})
this
.
$store
.
commit
(
'showNotification'
,
{
style
:
'indigo
'
,
message
:
`Coming soon...`
,
icon
:
'
directions_boat
'
message
:
'Rendering configuration saved successfully.
'
,
style
:
'success'
,
icon
:
'
check
'
})
this
.
$store
.
commit
(
`loadingStop`
,
'admin-rendering-saverenderers'
)
}
},
apollo
:
{
...
...
server/graph/resolvers/rendering.js
View file @
3b347f26
...
...
@@ -41,10 +41,10 @@ module.exports = {
async
updateRenderers
(
obj
,
args
,
context
)
{
try
{
for
(
let
rdr
of
args
.
renderers
)
{
await
WIKI
.
models
.
storage
.
query
().
patch
({
await
WIKI
.
models
.
renderers
.
query
().
patch
({
isEnabled
:
rdr
.
isEnabled
,
config
:
_
.
reduce
(
rdr
.
config
,
(
result
,
value
,
key
)
=>
{
_
.
set
(
result
,
`
${
value
.
key
}
`
,
value
.
value
)
_
.
set
(
result
,
`
${
value
.
key
}
`
,
_
.
get
(
JSON
.
parse
(
value
.
value
),
'v'
,
null
)
)
return
result
},
{})
}).
where
(
'key'
,
rdr
.
key
)
...
...
server/graph/schemas/rendering.graphql
View file @
3b347f26
...
...
@@ -50,6 +50,5 @@ type Renderer {
input
RendererInput
{
isEnabled
:
Boolean
!
key
:
String
!
mode
:
String
!
config
:
[
KeyValuePairInput
]
}
server/models/renderers.js
View file @
3b347f26
...
...
@@ -90,6 +90,14 @@ module.exports = class Renderer extends Model {
}
else
{
WIKI
.
logger
.
info
(
`No new renderers found: [ SKIPPED ]`
)
}
// -> Delete removed Renderers
for
(
const
renderer
of
dbRenderers
)
{
if
(
!
_
.
some
(
WIKI
.
data
.
renderers
,
[
'key'
,
renderer
.
key
]))
{
await
WIKI
.
models
.
renderers
.
query
().
where
(
'key'
,
renderer
.
key
).
del
()
WIKI
.
logger
.
info
(
`Removed renderer
${
renderer
.
key
}
because it is no longer present in the modules folder: [ OK ]`
)
}
}
}
catch
(
err
)
{
WIKI
.
logger
.
error
(
`Failed to scan or load new renderers: [ FAILED ]`
)
WIKI
.
logger
.
error
(
err
)
...
...
server/modules/rendering/html-mathjax/definition.yml
deleted
100644 → 0
View file @
9166e27e
key
:
htmlMathjax
title
:
Mathjax Processor
description
:
TeX/MathML Math Equations Parser
author
:
requarks.io
icon
:
mdi-function-variant
enabledDefault
:
false
dependsOn
:
htmlCore
step
:
pre
props
:
{}
server/modules/rendering/html-mathjax/mathjax.js
deleted
100644 → 0
View file @
9166e27e
const
mathjax
=
require
(
'mathjax-node'
)
const
_
=
require
(
'lodash'
)
// ------------------------------------
// Mathjax
// ------------------------------------
/* global WIKI */
const
mathRegex
=
[
{
format
:
'TeX'
,
regex
:
/
\\\[([\s\S]
*
?)\\\]
/g
},
{
format
:
'inline-TeX'
,
regex
:
/
\\\((
.*
?)\\\)
/g
},
{
format
:
'MathML'
,
regex
:
/<math
([\s\S]
*
?)
<
\/
math>/g
}
]
module
.
exports
=
{
init
(
$
,
config
)
{
mathjax
.
config
({
MathJax
:
{
jax
:
[
'input/TeX'
,
'input/MathML'
,
'output/SVG'
],
extensions
:
[
'tex2jax.js'
,
'mml2jax.js'
],
TeX
:
{
extensions
:
[
'AMSmath.js'
,
'AMSsymbols.js'
,
'noErrors.js'
,
'noUndefined.js'
]
},
SVG
:
{
scale
:
120
,
font
:
'STIX-Web'
}
}
})
},
async
render
(
content
)
{
let
matchStack
=
[]
let
replaceStack
=
[]
let
currentMatch
let
mathjaxState
=
{}
_
.
forEach
(
mathRegex
,
mode
=>
{
do
{
currentMatch
=
mode
.
regex
.
exec
(
content
)
if
(
currentMatch
)
{
matchStack
.
push
(
currentMatch
[
0
])
replaceStack
.
push
(
new
Promise
((
resolve
,
reject
)
=>
{
mathjax
.
typeset
({
math
:
(
mode
.
format
===
'MathML'
)
?
currentMatch
[
0
]
:
currentMatch
[
1
],
format
:
mode
.
format
,
speakText
:
false
,
svg
:
true
,
state
:
mathjaxState
,
timeout
:
30
*
1000
},
result
=>
{
if
(
!
result
.
errors
)
{
resolve
(
result
.
svg
)
}
else
{
resolve
(
currentMatch
[
0
])
WIKI
.
logger
.
warn
(
result
.
errors
.
join
(
', '
))
}
})
})
)
}
}
while
(
currentMatch
)
})
return
(
matchStack
.
length
>
0
)
?
Promise
.
all
(
replaceStack
).
then
(
results
=>
{
_
.
forEach
(
matchStack
,
(
repMatch
,
idx
)
=>
{
content
=
content
.
replace
(
repMatch
,
results
[
idx
])
})
return
content
})
:
Promise
.
resolve
(
content
)
}
}
server/modules/rendering/markdown-mathjax/definition.yml
deleted
100644 → 0
View file @
9166e27e
key
:
markdownMathjax
title
:
Mathjax Preprocessor
description
:
Prepare TeX blocks for Mathjax
author
:
requarks.io
icon
:
mdi-function-variant
enabledDefault
:
false
dependsOn
:
markdownCore
props
:
{}
server/modules/rendering/markdown-mathjax/renderer.js
deleted
100644 → 0
View file @
9166e27e
const
mdMathjax
=
require
(
'markdown-it-mathjax'
)()
// ------------------------------------
// Markdown - Mathjax Preprocessor
// ------------------------------------
module
.
exports
=
{
init
(
md
,
conf
)
{
md
.
use
(
mdMathjax
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment