diff --git a/resources/js/components/MarkdownEditor.vue b/resources/js/components/MarkdownEditor.vue
index c803913..f348f87 100644
--- a/resources/js/components/MarkdownEditor.vue
+++ b/resources/js/components/MarkdownEditor.vue
@@ -1,20 +1,72 @@
-
-
+
diff --git a/resources/js/router-app-admin.js b/resources/js/router-app-admin.js
index b9bfeb0..a2ff9cf 100644
--- a/resources/js/router-app-admin.js
+++ b/resources/js/router-app-admin.js
@@ -1,12 +1,19 @@
const VueRouter = require('vue-router');
import Home from './views/AdminHome.vue';
+import Blog from "./views/Blog.vue";
+import BlogArticle from "./views/BlogArticle.vue";
+import BlogArticleEdit from "./views/BlogArticleEdit.vue";
import NotFound from './views/NotFound.vue';
// TODO: Change base url to be `/admin`
const routes = [
{ path: '/admin/', name: 'index', component: Home },
+ { path: '/admin/blog', name: 'blog', component: Blog },
+ { path: '/admin/blog/:id', name: 'blog-article', component: BlogArticle, props: route => ({ id: route.params.id, admin: true }) },
+ { path: '/admin/blog/:id/edit', name: 'blog-article-edit', component: BlogArticleEdit, props: true },
+ { path: '/admin/blog/create', name: 'blog-article-create', component: BlogArticleEdit },
{ path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
];
diff --git a/resources/js/views/BlogArticle.vue b/resources/js/views/BlogArticle.vue
index 8d5d105..90113d3 100644
--- a/resources/js/views/BlogArticle.vue
+++ b/resources/js/views/BlogArticle.vue
@@ -1,15 +1,69 @@
- {{ id }} - {{ slug }}
+
+
+
+
+
+
diff --git a/resources/js/views/BlogArticleEdit.vue b/resources/js/views/BlogArticleEdit.vue
new file mode 100644
index 0000000..2843631
--- /dev/null
+++ b/resources/js/views/BlogArticleEdit.vue
@@ -0,0 +1,84 @@
+
+
+
+ View Article
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/scss/_blog.scss b/resources/scss/_blog.scss
index b1cbd7b..41d2e9f 100644
--- a/resources/scss/_blog.scss
+++ b/resources/scss/_blog.scss
@@ -120,3 +120,9 @@ section.blog-popular {
}
}
}
+
+.blog-links {
+ &> :not(:first-child) {
+ margin-left: 1rem;
+ }
+}
diff --git a/resources/scss/_blogedit.scss b/resources/scss/_blogedit.scss
new file mode 100644
index 0000000..a1b05de
--- /dev/null
+++ b/resources/scss/_blogedit.scss
@@ -0,0 +1,74 @@
+.blog-edit {
+ .article-form {
+ input,
+ textarea {
+ padding: .1rem;
+ width: calc(100% - .2rem);
+ margin: 0;
+ }
+
+ .controls {
+ width: 100%;
+ }
+
+ input {
+ border-radius: 5px;
+ }
+
+ .md-editor {
+ margin-top: .5rem;
+
+ :first-child {
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ }
+
+ :last-child {
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+ }
+
+ &> * {
+ border-width: 3px;
+ }
+
+ .controls {
+ background-color: $background-lighter;
+ border-color: $background-darker;
+ border-bottom-width: 0;
+ border-style: solid;
+
+ ul {
+ display: flex;
+ list-style: none;
+ padding: .25rem;
+ margin: 0;
+
+ li {
+ a {
+ display: inline-block;
+ width: 32px;
+ height: 32px;
+
+ i {
+ width: 100%;
+ max-height: 100%;
+ font-size: 24px;
+ text-align: center;
+ vertical-align: baseline;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ input,
+ textarea,
+ button {
+ background-color: $background-lighter;
+ border-color: $background-darker;
+ color: $text-color;
+ }
+ }
+}
diff --git a/resources/scss/_markdown.scss b/resources/scss/_markdown.scss
new file mode 100644
index 0000000..846453f
--- /dev/null
+++ b/resources/scss/_markdown.scss
@@ -0,0 +1,24 @@
+.markdown-editor {
+ width: 100%;
+
+ .input {
+ resize: vertical;
+ }
+
+ .submit {
+ padding: .5rem;
+ border-radius: 5px;
+ }
+
+ .popup {
+ position: absolute;
+ background-color: $background-lighter;
+ border: 2px solid $background-darker;
+ color: $text-color;
+ padding: 1rem;
+ }
+
+ .render {
+ width: 100%;
+ }
+}
diff --git a/resources/scss/app.scss b/resources/scss/app.scss
index 6871d8c..042a73a 100644
--- a/resources/scss/app.scss
+++ b/resources/scss/app.scss
@@ -17,3 +17,5 @@
@import "footer";
@import "home";
@import "pagination";
+@import "markdown";
+@import "blogedit";