@compodoc/compodoc
Version:
The missing documentation tool for your Angular application
55 lines (47 loc) • 1.65 kB
text/typescript
import { clearModuleCache } from '../../../utils/module-cache.util';
export class MarkdownToPDFEngine {
private static instance: MarkdownToPDFEngine;
private markedInstance;
private convertedTokens = [];
private constructor() {
clearModuleCache('marked');
const { marked } = require('marked');
this.markedInstance = marked;
const self = this;
this.markedInstance.use({
gfm: true,
breaks: false,
renderer: {
strong(token) {
return { text: token.text, bold: true };
},
em(token) {
self.convertedTokens.push({ text: token.text, italics: true });
return token.text;
},
paragraph(token) {
return token.text;
}
}
});
}
public static getInstance() {
if (!MarkdownToPDFEngine.instance) {
MarkdownToPDFEngine.instance = new MarkdownToPDFEngine();
}
return MarkdownToPDFEngine.instance;
}
public convert(stringToConvert: string) {
this.convertedTokens = [];
// console.log('MarkdownToPDFEngine convert: ', stringToConvert);
const tokens = this.markedInstance.lexer(stringToConvert);
// console.log(tokens);
// const pdfmakeData = this.markedInstance.Parser.parse(tokens);
// console.log(this.convertedTokens);
const result = {
text: this.convertedTokens
};
return result;
}
}
export default MarkdownToPDFEngine.getInstance();