diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/Markdown/Content.tsx | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/Markdown/Content.tsx b/src/lib/Markdown/Content.tsx index d0a2193..593b9e9 100644 --- a/src/lib/Markdown/Content.tsx +++ b/src/lib/Markdown/Content.tsx @@ -2,11 +2,16 @@ import React from 'react';  import CodeBlock from './CodeBlock';  import Paragraph from './Paragraph'; +import InlineSyntax from './InlineSyntax';  import { ParserPropTypes } from './types';  const denotesCodeBlock = (line: string): boolean => { -  return line.slice(0, 3) === '```'; +  return line.match(/^```.*$/) !== null; +} + +const denotesDottedList = (line: string): boolean => { +  return line.match(/^ ?- .*$/) !== null;  }  const Content: React.FC<ParserPropTypes> = ({ rawLines }) => { @@ -19,6 +24,11 @@ const Content: React.FC<ParserPropTypes> = ({ rawLines }) => {      const closeIndex = rawLines.findIndex(line => denotesCodeBlock(line));      const codeBlockLines = rawLines.splice(0, closeIndex + 1).slice(0, closeIndex);      result = <CodeBlock rawLines={codeBlockLines} /> +  } else if (denotesDottedList(line)) { +    const closeIndex = rawLines.findIndex(line => !denotesDottedList(line)); +    const dottedListLines = rawLines.splice(0, closeIndex).slice(0, closeIndex); +    dottedListLines.unshift(line); +    result = <ul>{dottedListLines.map(li => <li><InlineSyntax line={li} /></li>)}</ul>;    } else {      result = <Paragraph line={line} />    } @@ -28,7 +38,7 @@ const Content: React.FC<ParserPropTypes> = ({ rawLines }) => {        { result }        <Content rawLines={rawLines} />      </> -  ) +  );  }  export default Content;  |