diff --git a/frontend/components/DocumentPreview/DocumentPreview.js b/frontend/components/DocumentPreview/DocumentPreview.js
index 52870f064..08fbbad8a 100644
--- a/frontend/components/DocumentPreview/DocumentPreview.js
+++ b/frontend/components/DocumentPreview/DocumentPreview.js
@@ -2,43 +2,41 @@
import React from 'react';
import { toJS } from 'mobx';
import { Link } from 'react-router-dom';
-
-import styles from './DocumentPreview.scss';
-
+import type { Document } from 'types';
+import styled from 'styled-components';
import PublishingInfo from 'components/PublishingInfo';
+import Markdown from 'components/Markdown';
-class Document extends React.Component {
- static propTypes = {
- document: React.PropTypes.object.isRequired,
- };
+type Props = {
+ document: Document,
+};
- render() {
- return (
-
-
+const Container = styled.div`
+ width: 100%;
+ padding: 20px 0;
+`;
-
-
{this.props.document.title}
+const DocumentPreview = ({ document }: Props) => {
+ return (
+
+
+
+ {document.title}
+
+
+
+
+ Continue reading…
-
-
-
-
-
- Continue reading...
-
-
- );
- }
-}
+
+ );
+};
-export default Document;
+export default DocumentPreview;
diff --git a/frontend/components/DocumentPreview/DocumentPreview.scss b/frontend/components/DocumentPreview/DocumentPreview.scss
deleted file mode 100644
index 122416df9..000000000
--- a/frontend/components/DocumentPreview/DocumentPreview.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-@import '~styles/constants.scss';
-
-
-.container {
- width: 100%;
- padding: 20px 0;
-}
-
-.title {
- color: $textColor;
- text-decoration: none;
-
- h2 {
- font-size: 1.3em;
- }
-}
-
-.continueLink {
- text-decoration: none;
-}
diff --git a/frontend/scenes/Document/components/Editor/Editor.js b/frontend/components/Editor/Editor.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/Editor.js
rename to frontend/components/Editor/Editor.js
diff --git a/frontend/scenes/Document/components/Editor/Editor.scss b/frontend/components/Editor/Editor.scss
similarity index 100%
rename from frontend/scenes/Document/components/Editor/Editor.scss
rename to frontend/components/Editor/Editor.scss
diff --git a/frontend/scenes/Document/components/Editor/components/ClickablePadding/ClickablePadding.js b/frontend/components/Editor/components/ClickablePadding/ClickablePadding.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/ClickablePadding/ClickablePadding.js
rename to frontend/components/Editor/components/ClickablePadding/ClickablePadding.js
diff --git a/frontend/scenes/Document/components/Editor/components/ClickablePadding/ClickablePadding.scss b/frontend/components/Editor/components/ClickablePadding/ClickablePadding.scss
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/ClickablePadding/ClickablePadding.scss
rename to frontend/components/Editor/components/ClickablePadding/ClickablePadding.scss
diff --git a/frontend/scenes/Document/components/Editor/components/ClickablePadding/index.js b/frontend/components/Editor/components/ClickablePadding/index.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/ClickablePadding/index.js
rename to frontend/components/Editor/components/ClickablePadding/index.js
diff --git a/frontend/scenes/Document/components/Editor/components/Code.js b/frontend/components/Editor/components/Code.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Code.js
rename to frontend/components/Editor/components/Code.js
diff --git a/frontend/scenes/Document/components/Editor/components/Heading.js b/frontend/components/Editor/components/Heading.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Heading.js
rename to frontend/components/Editor/components/Heading.js
diff --git a/frontend/scenes/Document/components/Editor/components/Image.js b/frontend/components/Editor/components/Image.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Image.js
rename to frontend/components/Editor/components/Image.js
diff --git a/frontend/scenes/Document/components/Editor/components/Link.js b/frontend/components/Editor/components/Link.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Link.js
rename to frontend/components/Editor/components/Link.js
diff --git a/frontend/scenes/Document/components/Editor/components/ListItem.js b/frontend/components/Editor/components/ListItem.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/ListItem.js
rename to frontend/components/Editor/components/ListItem.js
diff --git a/frontend/scenes/Document/components/Editor/components/TodoItem.js b/frontend/components/Editor/components/TodoItem.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/TodoItem.js
rename to frontend/components/Editor/components/TodoItem.js
diff --git a/frontend/scenes/Document/components/Editor/components/Toolbar/Toolbar.js b/frontend/components/Editor/components/Toolbar/Toolbar.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Toolbar/Toolbar.js
rename to frontend/components/Editor/components/Toolbar/Toolbar.js
diff --git a/frontend/scenes/Document/components/Editor/components/Toolbar/Toolbar.scss b/frontend/components/Editor/components/Toolbar/Toolbar.scss
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Toolbar/Toolbar.scss
rename to frontend/components/Editor/components/Toolbar/Toolbar.scss
diff --git a/frontend/scenes/Document/components/Editor/components/Toolbar/components/FormattingToolbar.js b/frontend/components/Editor/components/Toolbar/components/FormattingToolbar.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Toolbar/components/FormattingToolbar.js
rename to frontend/components/Editor/components/Toolbar/components/FormattingToolbar.js
diff --git a/frontend/scenes/Document/components/Editor/components/Toolbar/components/LinkToolbar.js b/frontend/components/Editor/components/Toolbar/components/LinkToolbar.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Toolbar/components/LinkToolbar.js
rename to frontend/components/Editor/components/Toolbar/components/LinkToolbar.js
diff --git a/frontend/scenes/Document/components/Editor/components/Toolbar/index.js b/frontend/components/Editor/components/Toolbar/index.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/components/Toolbar/index.js
rename to frontend/components/Editor/components/Toolbar/index.js
diff --git a/frontend/scenes/Document/components/Editor/index.js b/frontend/components/Editor/index.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/index.js
rename to frontend/components/Editor/index.js
diff --git a/frontend/scenes/Document/components/Editor/plugins.js b/frontend/components/Editor/plugins.js
similarity index 95%
rename from frontend/scenes/Document/components/Editor/plugins.js
rename to frontend/components/Editor/plugins.js
index cbdecbe7b..a6940899b 100644
--- a/frontend/scenes/Document/components/Editor/plugins.js
+++ b/frontend/components/Editor/plugins.js
@@ -15,7 +15,10 @@ const onlyInCode = node => node.type === 'code';
const createPlugins = ({
onImageUploadStart,
onImageUploadStop,
-}: { onImageUploadStart: Function, onImageUploadStop: Function }) => {
+}: {
+ onImageUploadStart: Function,
+ onImageUploadStop: Function,
+}) => {
return [
PasteLinkify({
type: 'link',
diff --git a/frontend/scenes/Document/components/Editor/plugins/KeyboardShortcuts.js b/frontend/components/Editor/plugins/KeyboardShortcuts.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/plugins/KeyboardShortcuts.js
rename to frontend/components/Editor/plugins/KeyboardShortcuts.js
diff --git a/frontend/scenes/Document/components/Editor/plugins/MarkdownShortcuts.js b/frontend/components/Editor/plugins/MarkdownShortcuts.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/plugins/MarkdownShortcuts.js
rename to frontend/components/Editor/plugins/MarkdownShortcuts.js
diff --git a/frontend/scenes/Document/components/Editor/schema.js b/frontend/components/Editor/schema.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/schema.js
rename to frontend/components/Editor/schema.js
diff --git a/frontend/scenes/Document/components/Editor/serializer.js b/frontend/components/Editor/serializer.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/serializer.js
rename to frontend/components/Editor/serializer.js
diff --git a/frontend/scenes/Document/components/Editor/types.js b/frontend/components/Editor/types.js
similarity index 100%
rename from frontend/scenes/Document/components/Editor/types.js
rename to frontend/components/Editor/types.js
diff --git a/frontend/components/Markdown/Markdown.js b/frontend/components/Markdown/Markdown.js
new file mode 100644
index 000000000..5334aef21
--- /dev/null
+++ b/frontend/components/Markdown/Markdown.js
@@ -0,0 +1,35 @@
+// @flow
+import React, { Component } from 'react';
+import { Editor } from 'slate';
+import MarkdownSerializer from '../Editor/serializer';
+import type { State } from '../Editor/types';
+import schema from '../Editor/schema';
+import styles from '../Editor/Editor.scss';
+
+type Props = {
+ text: string,
+};
+
+export default class MarkdownEditor extends Component {
+ props: Props;
+
+ state: {
+ state: State,
+ };
+
+ constructor(props: Props) {
+ super(props);
+ this.state = { state: MarkdownSerializer.deserialize(props.text) };
+ }
+
+ render = () => {
+ return (
+
+ );
+ };
+}
diff --git a/frontend/components/Markdown/index.js b/frontend/components/Markdown/index.js
new file mode 100644
index 000000000..ae494d3a1
--- /dev/null
+++ b/frontend/components/Markdown/index.js
@@ -0,0 +1,3 @@
+// @flow
+import Markdown from './Markdown';
+export default Markdown;
diff --git a/frontend/scenes/Document/Document.js b/frontend/scenes/Document/Document.js
index 41573def2..15a61ab0a 100644
--- a/frontend/scenes/Document/Document.js
+++ b/frontend/scenes/Document/Document.js
@@ -7,8 +7,8 @@ import { Flex } from 'reflexbox';
import DocumentStore from './DocumentStore';
import Breadcrumbs from './components/Breadcrumbs';
-import Editor from './components/Editor';
import Menu from './components/Menu';
+import Editor from 'components/Editor';
import Layout, { HeaderAction, SaveAction } from 'components/Layout';
import AtlasPreviewLoading from 'components/AtlasPreviewLoading';
import CenteredContent from 'components/CenteredContent';