diff options
| author | jackyzha0 <[email protected]> | 2020-09-04 11:31:47 -0700 |
|---|---|---|
| committer | jackyzha0 <[email protected]> | 2020-09-04 11:31:47 -0700 |
| commit | 006b0208e1d0cfcaddf2842e38a3d7fd2374f136 (patch) | |
| tree | f0e277d990ce451cc437c4a2cbec741f90d4a4eb /frontend/src | |
| parent | add md class to preview renderer (diff) | |
| download | ctrl-v-006b0208e1d0cfcaddf2842e38a3d7fd2374f136.tar.xz ctrl-v-006b0208e1d0cfcaddf2842e38a3d7fd2374f136.zip | |
add code highlighting to md
Diffstat (limited to 'frontend/src')
| -rw-r--r-- | frontend/src/components/renderers/InlineCode.js | 16 | ||||
| -rw-r--r-- | frontend/src/components/renderers/Markdown.js | 9 | ||||
| -rw-r--r-- | frontend/src/css/index.css | 1 |
3 files changed, 24 insertions, 2 deletions
diff --git a/frontend/src/components/renderers/InlineCode.js b/frontend/src/components/renderers/InlineCode.js new file mode 100644 index 0000000..36c2ac2 --- /dev/null +++ b/frontend/src/components/renderers/InlineCode.js @@ -0,0 +1,16 @@ +import React from 'react'; +import SyntaxHighlighter from 'react-syntax-highlighter'; +import { atomOneLight } from 'react-syntax-highlighter/dist/esm/styles/hljs'; +import { LANGS } from './Code' + +const MarkdownCodeRenderer = (props) => { + return ( + <SyntaxHighlighter + language={LANGS[props.language]} + style={atomOneLight}> + {props.value} + </SyntaxHighlighter> + ); +}; + +export default MarkdownCodeRenderer;
\ No newline at end of file diff --git a/frontend/src/components/renderers/Markdown.js b/frontend/src/components/renderers/Markdown.js index b9b9112..16f5e37 100644 --- a/frontend/src/components/renderers/Markdown.js +++ b/frontend/src/components/renderers/Markdown.js @@ -1,6 +1,7 @@ import React from 'react'; import ReactMarkdown from 'react-markdown'; import styled from 'styled-components' +import MarkdownCodeRenderer from './InlineCode' const Content = styled.div` max-width: 100%; @@ -11,7 +12,13 @@ const Content = styled.div` ` const Markdown = ({content}) => { return <Content> - <ReactMarkdown source={content} /> + <ReactMarkdown + source={content} + linkTarget='_blank' + renderers={{ + code: MarkdownCodeRenderer, + }} + /> </Content>; } diff --git a/frontend/src/css/index.css b/frontend/src/css/index.css index a6e8e9c..fcda1a3 100644 --- a/frontend/src/css/index.css +++ b/frontend/src/css/index.css @@ -167,7 +167,6 @@ button[type=button] { .md code { background: #00000008; font-size: 0.8em; - padding: 0.2em 0.5em; } .md pre { |