Skip to content

Instantly share code, notes, and snippets.

@dninomiya
Last active December 3, 2017 13:17
Show Gist options
  • Save dninomiya/874da29bbb3cb7828d5fe2b7e1515cfa to your computer and use it in GitHub Desktop.
Save dninomiya/874da29bbb3cb7828d5fe2b7e1515cfa to your computer and use it in GitHub Desktop.
merked pipe
import { Pipe, PipeTransform } from '@angular/core';
import marked from 'marked';
import hljs from 'highlight.js';
@Pipe({
name: 'marked'
})
export class MarkedPipe implements PipeTransform {
marked;
constructor() {
const renderer = new marked.Renderer();
renderer.code = function (code, lang) {
let filename;
let lng;
if (lang && lang.match(/.+\./)) {
const params = lang.split('.');
filename = `<span class="filename">${lang}</span>`;
if (hljs.getLanguage(params[1])) {
lng = params[1];
}
}
return `
<div class="code hljs">
${filename || ''}
<pre><code>${lng ? hljs.highlight(lng, code).value : code}</code></pre>
</div>
`;
};
this.marked = marked.setOptions({
renderer: renderer
});
}
transform(value: any, args?: any): any {
return this.marked.parse(value);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment