aboutsummaryrefslogtreecommitdiff
path: root/frontend/src
diff options
context:
space:
mode:
authorjackyzha0 <[email protected]>2020-09-04 11:31:47 -0700
committerjackyzha0 <[email protected]>2020-09-04 11:31:47 -0700
commit006b0208e1d0cfcaddf2842e38a3d7fd2374f136 (patch)
treef0e277d990ce451cc437c4a2cbec741f90d4a4eb /frontend/src
parentadd md class to preview renderer (diff)
downloadctrl-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.js16
-rw-r--r--frontend/src/components/renderers/Markdown.js9
-rw-r--r--frontend/src/css/index.css1
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 {