From be284f40eda4efe3ea693f37cc946e30578fbb35 Mon Sep 17 00:00:00 2001 From: Travis Ueki Date: Mon, 29 May 2017 14:46:05 -0400 Subject: [PATCH 1/4] :recycle: now supporting markdown files as an entryMarkdown value, update markdown code block parsing --- src/components/markdown.component.ts | 27 +++++++++++++++++++++++---- src/views/components.component.ts | 2 +- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/components/markdown.component.ts b/src/components/markdown.component.ts index 987abe4..1547eab 100644 --- a/src/components/markdown.component.ts +++ b/src/components/markdown.component.ts @@ -1,6 +1,8 @@ import { Component, Input, ViewEncapsulation } from '@angular/core' import * as marked from 'marked'; + + @Component({ selector: 'dope-docs-markdown', template: ` @@ -10,18 +12,35 @@ import * as marked from 'marked'; }) export class MarkdownComponent { @Input() markdown: string = '' + md: any parsedMarkdown: string; - ngOnChanges() { - const md = marked.setOptions({ + constructor() { + // hijack the renderer + const renderer = new marked.Renderer(); + + // nest code block within pre tags + renderer.code = function (code, lang) { + return `
${code}
`; + } + + // nest inline code block within pre tags + renderer.codespan = function (code) { + return `
${code}
`; + } + this.md = marked.setOptions({ gfm: true, tables: true, breaks: false, pedantic: false, sanitize: true, smartLists: true, - smartypants: false + smartypants: false, + renderer: renderer }); - this.parsedMarkdown = md.parse(this.markdown || ''); + } + + ngOnChanges() { + this.parsedMarkdown = this.md.parse(this.markdown || ''); } } diff --git a/src/views/components.component.ts b/src/views/components.component.ts index 9c92e80..75f848b 100644 --- a/src/views/components.component.ts +++ b/src/views/components.component.ts @@ -180,5 +180,5 @@ import { ENTRY_MARKDOWN } from '../services' `] }) export class ComponentsView { - constructor(@Inject(ENTRY_MARKDOWN) public entryMarkdown: string) { } + constructor(@Inject(ENTRY_MARKDOWN) public entryMarkdown: string) {} } From 71a643a1d1559daaf228c63413e58512fe08bca3 Mon Sep 17 00:00:00 2001 From: Travis Ueki Date: Mon, 29 May 2017 14:55:09 -0400 Subject: [PATCH 2/4] :lipstick: style change --- src/components/markdown.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/markdown.component.ts b/src/components/markdown.component.ts index 1547eab..b6ca453 100644 --- a/src/components/markdown.component.ts +++ b/src/components/markdown.component.ts @@ -20,12 +20,12 @@ export class MarkdownComponent { const renderer = new marked.Renderer(); // nest code block within pre tags - renderer.code = function (code, lang) { + renderer.code = (code, lang) => { return `
${code}
`; } // nest inline code block within pre tags - renderer.codespan = function (code) { + renderer.codespan = (code) => { return `
${code}
`; } this.md = marked.setOptions({ From 1d69fc451355c26e1dbc0d40068ff1c9dc098178 Mon Sep 17 00:00:00 2001 From: Travis Ueki Date: Mon, 29 May 2017 14:57:34 -0400 Subject: [PATCH 3/4] :lipstick: removed whitespace --- src/components/markdown.component.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/markdown.component.ts b/src/components/markdown.component.ts index b6ca453..e0645c2 100644 --- a/src/components/markdown.component.ts +++ b/src/components/markdown.component.ts @@ -1,8 +1,6 @@ import { Component, Input, ViewEncapsulation } from '@angular/core' import * as marked from 'marked'; - - @Component({ selector: 'dope-docs-markdown', template: ` From ba4434479291953b49c53920d35cf5acbe615f08 Mon Sep 17 00:00:00 2001 From: Travis Ueki Date: Mon, 29 May 2017 16:19:47 -0400 Subject: [PATCH 4/4] :sparkles: prism support on entry component and lang support in md --- src/components/markdown.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/markdown.component.ts b/src/components/markdown.component.ts index e0645c2..15b9bb0 100644 --- a/src/components/markdown.component.ts +++ b/src/components/markdown.component.ts @@ -19,7 +19,7 @@ export class MarkdownComponent { // nest code block within pre tags renderer.code = (code, lang) => { - return `
${code}
`; + return `
${code}
`; } // nest inline code block within pre tags