feat: sub+sup+imsize markdown renderers
This commit is contained in:
parent
09d1f580d9
commit
572393aa7b
@ -105,7 +105,7 @@ module.exports = class Renderer extends Model {
|
|||||||
|
|
||||||
// Build tree
|
// Build tree
|
||||||
const rawCores = _.filter(renderers, renderer => !_.has(renderer, 'dependsOn')).map(core => {
|
const rawCores = _.filter(renderers, renderer => !_.has(renderer, 'dependsOn')).map(core => {
|
||||||
core.children = _.concat([_.cloneDeep(core)], _.filter(renderers, ['dependsOn', core.key]))
|
core.children = _.filter(renderers, ['dependsOn', core.key])
|
||||||
return core
|
return core
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
key: htmlCodehighlighter
|
||||||
|
title: Code Highlighting
|
||||||
|
description: Syntax highlighter for programming code
|
||||||
|
author: requarks.io
|
||||||
|
icon: palette
|
||||||
|
enabledDefault: true
|
||||||
|
dependsOn: htmlCore
|
||||||
|
props: {}
|
@ -3,6 +3,6 @@ title: Media Players
|
|||||||
description: Embed players such as Youtube, Vimeo, Soundcloud, etc.
|
description: Embed players such as Youtube, Vimeo, Soundcloud, etc.
|
||||||
author: requarks.io
|
author: requarks.io
|
||||||
icon: subscriptions
|
icon: subscriptions
|
||||||
enabledDefault: false
|
enabledDefault: true
|
||||||
dependsOn: htmlCore
|
dependsOn: htmlCore
|
||||||
props: {}
|
props: {}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
key: markdownMermaid
|
key: htmlMermaid
|
||||||
title: Mermaid
|
title: Mermaid
|
||||||
description: Generate flowcharts from Mermaid syntax
|
description: Generate flowcharts from Mermaid syntax
|
||||||
author: requarks.io
|
author: requarks.io
|
||||||
icon: merge_type
|
icon: merge_type
|
||||||
enabledDefault: false
|
enabledDefault: false
|
||||||
dependsOn: markdownCore
|
dependsOn: htmlCore
|
||||||
props: {}
|
props: {}
|
@ -1,8 +1,8 @@
|
|||||||
key: markdownPlantuml
|
key: htmlPlantuml
|
||||||
title: PlantUML
|
title: PlantUML
|
||||||
description: Generate diagrams from PlantUML syntax
|
description: Generate diagrams from PlantUML syntax
|
||||||
author: requarks.io
|
author: requarks.io
|
||||||
icon: multiline_chart
|
icon: multiline_chart
|
||||||
enabledDefault: false
|
enabledDefault: false
|
||||||
dependsOn: markdownCore
|
dependsOn: htmlCore
|
||||||
props: {}
|
props: {}
|
@ -44,8 +44,3 @@ props:
|
|||||||
- Russian
|
- Russian
|
||||||
- Spanish
|
- Spanish
|
||||||
- Swedish
|
- Swedish
|
||||||
highlightCode:
|
|
||||||
type: Boolean
|
|
||||||
default: true
|
|
||||||
title: Highlight code blocks
|
|
||||||
hint: Add syntax coloring to code blocks.
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
const md = require('markdown-it')
|
const md = require('markdown-it')
|
||||||
// const hljs = require('highlight.js')
|
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
|
|
||||||
const quoteStyles = {
|
const quoteStyles = {
|
||||||
@ -26,17 +25,16 @@ module.exports = {
|
|||||||
typographer: this.config.typographer,
|
typographer: this.config.typographer,
|
||||||
quotes: _.get(quoteStyles, this.config.quotes, quoteStyles.English),
|
quotes: _.get(quoteStyles, this.config.quotes, quoteStyles.English),
|
||||||
highlight(str, lang) {
|
highlight(str, lang) {
|
||||||
// if (this.config.highlightCode && lang && hljs.getLanguage(lang)) {
|
|
||||||
// try {
|
|
||||||
// return '<pre class="hljs"><code>' + hljs.highlight(lang, str, true).value + '</code></pre>'
|
|
||||||
// } catch (err) {
|
|
||||||
// return '<pre><code>' + _.escape(str) + '</code></pre>'
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
return '<pre><code>' + _.escape(str) + '</code></pre>'
|
return '<pre><code>' + _.escape(str) + '</code></pre>'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
for (let child of this.children) {
|
||||||
|
console.info(child)
|
||||||
|
const renderer = require(`../${_.kebabCase(child.key)}/renderer.js`)
|
||||||
|
renderer.init(mkdown, child.config)
|
||||||
|
}
|
||||||
|
|
||||||
return mkdown.render(this.input)
|
return mkdown.render(this.input)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
8
server/modules/rendering/markdown-imsize/definition.yml
Normal file
8
server/modules/rendering/markdown-imsize/definition.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
key: markdownImsize
|
||||||
|
title: Image Size
|
||||||
|
description: Adds dimensions attributes to images
|
||||||
|
author: requarks.io
|
||||||
|
icon: insert_photo
|
||||||
|
enabledDefault: true
|
||||||
|
dependsOn: markdownCore
|
||||||
|
props: {}
|
11
server/modules/rendering/markdown-imsize/renderer.js
Normal file
11
server/modules/rendering/markdown-imsize/renderer.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
const mdImsize = require('markdown-it-imsize')
|
||||||
|
|
||||||
|
// ------------------------------------
|
||||||
|
// Markdown - Image Size
|
||||||
|
// ------------------------------------
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
init (md, conf) {
|
||||||
|
md.use(mdImsize)
|
||||||
|
}
|
||||||
|
}
|
18
server/modules/rendering/markdown-supsub/definition.yml
Normal file
18
server/modules/rendering/markdown-supsub/definition.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
key: markdownSupsub
|
||||||
|
title: Subscript/Superscript
|
||||||
|
description: Parse subscript and superscript tags
|
||||||
|
author: requarks.io
|
||||||
|
icon: format_size
|
||||||
|
enabledDefault: true
|
||||||
|
dependsOn: markdownCore
|
||||||
|
props:
|
||||||
|
subEnabled:
|
||||||
|
type: Boolean
|
||||||
|
title: Subscript
|
||||||
|
hint: Enable subscript tags
|
||||||
|
default: true
|
||||||
|
supEnabled:
|
||||||
|
type: Boolean
|
||||||
|
title: Supercript
|
||||||
|
hint: Enable supercript tags
|
||||||
|
default: true
|
17
server/modules/rendering/markdown-supsub/renderer.js
Normal file
17
server/modules/rendering/markdown-supsub/renderer.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
const mdSub = require('markdown-it-sub')
|
||||||
|
const mdSup = require('markdown-it-sup')
|
||||||
|
|
||||||
|
// ------------------------------------
|
||||||
|
// Markdown - Subscript / Superscript
|
||||||
|
// ------------------------------------
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
init (md, conf) {
|
||||||
|
if (conf.subEnabled) {
|
||||||
|
md.use(mdSub)
|
||||||
|
}
|
||||||
|
if (conf.supEnabled) {
|
||||||
|
md.use(mdSup)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user