// markdown.js // Copyright (C) 2021 Digital Telepresence, LLC // License: Apache-2.0 'use strict'; const fs = require('fs'); const { SiteService } = require('../../lib/site-lib'); const marked = require('marked'); class MarkdownService extends SiteService { constructor (dtp) { super(dtp, module.exports); } async start ( ) { this.markedRenderer = new marked.Renderer(); } async renderMarkdownFile (documentFile) { const markdown = await fs.promises.readFile(documentFile, 'utf8'); return this.renderMarkdown(markdown); } async renderMarkdown (markdown) { return marked(markdown, { renderer: this.markedRenderer }); } } module.exports = { slug: 'markdown', name: 'markdown', create: (dtp) => { return new MarkdownService(dtp); }, };