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 @@ 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 @@ + + + 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";