feat: add asciidoc editor module (#5954)
* feat: add asciidoc editor module * fix storage file extension for asciidoc pages * fix: asciidoc editor + rendering improvements * fix: description list css improvements Co-authored-by: NGPixel <github@ngpixel.com>
This commit is contained in:
		
							
								
								
									
										20
									
								
								server/modules/rendering/asciidoc-core/definition.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								server/modules/rendering/asciidoc-core/definition.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| key: asciidocCore | ||||
| title: Core | ||||
| description: Basic Asciidoc Parser | ||||
| author: dzruyk (Based on asciidoctor.js renderer) | ||||
| input: asciidoc | ||||
| output: html | ||||
| icon: mdi-sitemap | ||||
| enabledDefault: true | ||||
| props: | ||||
|   safeMode: | ||||
|     type: String | ||||
|     default: server | ||||
|     title: Safe Mode | ||||
|     hint: Sets the safe mode to use when parsing content to HTML. | ||||
|     order: 1 | ||||
|     enum: | ||||
|       - unsafe | ||||
|       - safe | ||||
|       - server | ||||
|       - secure | ||||
							
								
								
									
										26
									
								
								server/modules/rendering/asciidoc-core/renderer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								server/modules/rendering/asciidoc-core/renderer.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| const asciidoctor = require('asciidoctor')() | ||||
| const cheerio = require('cheerio') | ||||
|  | ||||
| module.exports = { | ||||
|   async render() { | ||||
|     const html = asciidoctor.convert(this.input, { | ||||
|       standalone: false, | ||||
|       safe: this.config.safeMode, | ||||
|       attributes: { | ||||
|         showtitle: true, | ||||
|         icons: 'font' | ||||
|       } | ||||
|     }) | ||||
|  | ||||
|     const $ = cheerio.load(html, { | ||||
|       decodeEntities: true | ||||
|     }) | ||||
|  | ||||
|     $('pre.highlight > code.language-diagram').each((i, elm) => { | ||||
|       const diagramContent = Buffer.from($(elm).html(), 'base64').toString() | ||||
|       $(elm).parent().replaceWith(`<pre class="diagram">${diagramContent}</div>`) | ||||
|     }) | ||||
|  | ||||
|     return $.html() | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user