From 518bd58c5aba1a6eaa645074f3ae2d780c45f6dc Mon Sep 17 00:00:00 2001 From: HampusM Date: Mon, 24 May 2021 10:49:41 +0200 Subject: Restructured the whole project & added Nodemon and Concurrently --- src/frontend/App.vue | 11 ++ src/frontend/app.html | 11 ++ src/frontend/app.js | 7 + src/frontend/components/BaseBackButton.vue | 25 +++ src/frontend/components/CommitPatch.vue | 149 ++++++++++++++ src/frontend/components/HomeHeader.vue | 39 ++++ src/frontend/components/RepositoryHeader.vue | 50 +++++ src/frontend/components/RepositoryNavbar.vue | 32 +++ src/frontend/router/index.js | 39 ++++ src/frontend/scss/abstracts/_colors.scss | 9 + src/frontend/scss/abstracts/_fonts.scss | 5 + src/frontend/scss/style.scss | 284 +++++++++++++++++++++++++++ src/frontend/util/hljs-languages.js | 45 +++++ src/frontend/views/Home.vue | 62 ++++++ src/frontend/views/Repository.vue | 29 +++ src/frontend/views/RepositoryCommit.vue | 98 +++++++++ src/frontend/views/RepositoryLog.vue | 91 +++++++++ 17 files changed, 986 insertions(+) create mode 100644 src/frontend/App.vue create mode 100644 src/frontend/app.html create mode 100644 src/frontend/app.js create mode 100644 src/frontend/components/BaseBackButton.vue create mode 100644 src/frontend/components/CommitPatch.vue create mode 100644 src/frontend/components/HomeHeader.vue create mode 100644 src/frontend/components/RepositoryHeader.vue create mode 100644 src/frontend/components/RepositoryNavbar.vue create mode 100644 src/frontend/router/index.js create mode 100644 src/frontend/scss/abstracts/_colors.scss create mode 100644 src/frontend/scss/abstracts/_fonts.scss create mode 100644 src/frontend/scss/style.scss create mode 100644 src/frontend/util/hljs-languages.js create mode 100644 src/frontend/views/Home.vue create mode 100644 src/frontend/views/Repository.vue create mode 100644 src/frontend/views/RepositoryCommit.vue create mode 100644 src/frontend/views/RepositoryLog.vue (limited to 'src/frontend') diff --git a/src/frontend/App.vue b/src/frontend/App.vue new file mode 100644 index 0000000..cbdce56 --- /dev/null +++ b/src/frontend/App.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/src/frontend/app.html b/src/frontend/app.html new file mode 100644 index 0000000..348ca45 --- /dev/null +++ b/src/frontend/app.html @@ -0,0 +1,11 @@ + + + + + + + +
+ + + \ No newline at end of file diff --git a/src/frontend/app.js b/src/frontend/app.js new file mode 100644 index 0000000..1b43bbe --- /dev/null +++ b/src/frontend/app.js @@ -0,0 +1,7 @@ +import { createApp } from "vue/dist/vue.esm-bundler"; +import App from "./App.vue"; +import router from "./router"; + +createApp(App) + .use(router) + .mount("#app"); \ No newline at end of file diff --git a/src/frontend/components/BaseBackButton.vue b/src/frontend/components/BaseBackButton.vue new file mode 100644 index 0000000..64b1286 --- /dev/null +++ b/src/frontend/components/BaseBackButton.vue @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/src/frontend/components/CommitPatch.vue b/src/frontend/components/CommitPatch.vue new file mode 100644 index 0000000..53edeb9 --- /dev/null +++ b/src/frontend/components/CommitPatch.vue @@ -0,0 +1,149 @@ + \ No newline at end of file diff --git a/src/frontend/components/HomeHeader.vue b/src/frontend/components/HomeHeader.vue new file mode 100644 index 0000000..f0366a3 --- /dev/null +++ b/src/frontend/components/HomeHeader.vue @@ -0,0 +1,39 @@ + + + \ No newline at end of file diff --git a/src/frontend/components/RepositoryHeader.vue b/src/frontend/components/RepositoryHeader.vue new file mode 100644 index 0000000..b0db4f9 --- /dev/null +++ b/src/frontend/components/RepositoryHeader.vue @@ -0,0 +1,50 @@ + + + \ No newline at end of file diff --git a/src/frontend/components/RepositoryNavbar.vue b/src/frontend/components/RepositoryNavbar.vue new file mode 100644 index 0000000..a1e1002 --- /dev/null +++ b/src/frontend/components/RepositoryNavbar.vue @@ -0,0 +1,32 @@ + + + \ No newline at end of file diff --git a/src/frontend/router/index.js b/src/frontend/router/index.js new file mode 100644 index 0000000..68762cd --- /dev/null +++ b/src/frontend/router/index.js @@ -0,0 +1,39 @@ +import { createRouter, createWebHistory } from "vue-router"; +import Home from "../views/Home"; +import Repository from "../views/Repository"; +import RepositoryLog from "../views/RepositoryLog"; +import RepositoryCommit from "../views/RepositoryCommit"; + +const routes = [ + { + name: "Home", + path: "/", + component: Home + }, + { + name: "Repository", + path: '/:repo([a-zA-Z0-9\\.\\-_]+)', + component: Repository, + props: route => ({ repository: route.params.repo }), + children: [ + { + name: "Repository Log", + path: "log", + component: RepositoryLog, + }, + { + name: "Commit", + path: "log/:commit([a-fA-F0-9]{40}$)", + component: RepositoryCommit, + props: route => ({ commit: route.params.commit }) + } + ] + } +] + +const router = createRouter({ + history: createWebHistory(process.env.BASE_URL), + routes +}); + +export default router; \ No newline at end of file diff --git a/src/frontend/scss/abstracts/_colors.scss b/src/frontend/scss/abstracts/_colors.scss new file mode 100644 index 0000000..d7c43f5 --- /dev/null +++ b/src/frontend/scss/abstracts/_colors.scss @@ -0,0 +1,9 @@ +$primary: #023E8A; +$primary-light: #0096C7; +$secondary: #F48C06; +$success: #40916C; +$new: #06d6a0; +$danger: #D00000; +$text: #ffffff; +$text-gray: #6c757d; +$background: #121212; \ No newline at end of file diff --git a/src/frontend/scss/abstracts/_fonts.scss b/src/frontend/scss/abstracts/_fonts.scss new file mode 100644 index 0000000..6af5233 --- /dev/null +++ b/src/frontend/scss/abstracts/_fonts.scss @@ -0,0 +1,5 @@ +@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;600;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Oxygen:wght@300&display=swap'); + +$title: 'Oxygen', sans-serif; +$primary: 'Open Sans', sans-serif; \ No newline at end of file diff --git a/src/frontend/scss/style.scss b/src/frontend/scss/style.scss new file mode 100644 index 0000000..77fee90 --- /dev/null +++ b/src/frontend/scss/style.scss @@ -0,0 +1,284 @@ +@use "abstracts/colors"; +@use "abstracts/fonts"; + +@import "../../../node_modules/bootstrap/scss/functions"; +@import "../../../node_modules/bootstrap/scss/variables"; +@import "../../../node_modules/bootstrap/scss/mixins"; + +$theme-colors: ( + "primary": colors.$primary, + "secondary": colors.$secondary, + "success": colors.$success, + "info": $info, + "warning": $warning, + "danger": colors.$danger, + "light": $light, + "dark": $dark +); + +$font-size-base: 0.75rem; + +$h1-font-size: $font-size-base * 2.5; +$h2-font-size: $font-size-base * 2; +$h3-font-size: $font-size-base * 1.75; +$h4-font-size: $font-size-base * 1.5; +$h5-font-size: $font-size-base * 1.125; +$h6-font-size: $font-size-base; + +$font-sizes: ( + 1: $h1-font-size, + 2: $h2-font-size, + 3: $h3-font-size, + 4: $h4-font-size, + 5: $h5-font-size, + 6: $h6-font-size +); + +$navbar-nav-link-padding-x: 0.5rem; + +@import "../../../node_modules/bootstrap/scss/breadcrumb"; +@import "../../../node_modules/bootstrap/scss/utilities"; +@import "../../../node_modules/bootstrap/scss/utilities/api"; +@import "../../../node_modules/bootstrap/scss/nav"; +@import "../../../node_modules/bootstrap/scss/navbar"; + +$table-cell-padding-x: 1rem; +$table-cell-padding-y: 0.2rem; + +$table-variants: ( + "primary": shift-color($primary, $table-bg-scale), + "secondary": shift-color($secondary, $table-bg-scale), + "success": shift-color($success, $table-bg-scale), + "info": shift-color($info, $table-bg-scale), + "warning": shift-color($warning, $table-bg-scale), + "danger": shift-color($danger, $table-bg-scale), + "light": $light, + "dark": colors.$background, +); + +@import "../../../node_modules/bootstrap/scss/tables"; + +@import "../../../node_modules/bootstrap/scss/containers"; +@import "../../../node_modules/bootstrap/scss/grid"; + +@import "../../../node_modules/highlight.js/scss/srcery.scss"; + +body { + background-color: colors.$background; + color: colors.$text; + font-family: fonts.$primary; + margin: 0px; +} + +ul { + list-style-type: none; + padding: 0; +} + +li { + margin-bottom: 25px; + div { + h2 { + margin: 0px; + } + } +} + +p { + margin: 0px; +} + +#title { + font-family: fonts.$title; + font-weight: 300; + line-height: 0.6; +} + +#about { + font-weight: 300; + padding-left: 1px; +} + +#projects-search { + align-items: center; + form { + display: flex; + align-items: center; + height: 35px; + input[type=search] { + margin-right: 15px; + } + } +} + +#repos { + margin-top: 25px; +} + +.repo-last-updated { + display: block; + font-weight: 300; + font-style: italic; +} + +input[type=submit] { + background-color: colors.$primary; + color: colors.$text; + font-size: 1rem; + border: 0px; + border-radius: 7px; + padding: 8px 15px 8px 15px; +} + +a { + color: colors.$text; + text-decoration: none; + &:hover { + color: colors.$primary-light; + } +} + +.breadcrumb { + li { + margin-bottom: 0.5rem; + } +} + +#commit-info { + margin-bottom: 2rem; + tbody tr { + td { + padding: 0px; + padding-right: 10px; + } + } +} + +.commit-file { + margin-bottom: 50px; + table { + padding-top: 15px; + tbody tr td { + padding: 0px; + padding-left: 8px; + vertical-align: top; + &:nth-child(2) { + padding-right: 7px; + } + &:nth-child(3) { + padding-right: 15px; + } + } + } +} + +.commit-file-add-del { + margin-left: auto; + margin-right: 23px; + span { + margin-right: 10px !important; + font-weight: 700; + &:nth-child(1) { + color: colors.$new; + } + } +} + +.commit-file-pos-change { + color: colors.$text-gray; +} + +.commit-file-no-newline { + color: colors.$text-gray; +} + +.line-new { + color: colors.$new; +} +.line-deleted { + color: colors.$danger; +} + +.line-unchanged { + color: colors.$text-gray; +} + +.line-highlight-new { + border-right: 1px solid colors.$new; +} +.line-highlight-deleted { + border-right: 1px solid colors.$danger; +} + +code { + white-space: pre-wrap; + word-wrap: anywhere; +} + +.commit-file-header { + display: flex; + background-color: rgba($color: #ffffff, $alpha: 0.08); + padding: 10px; + span { + margin-right: 30px; + &:nth-child(2) { + color: colors.$danger; + } + } +} + +#back:hover { + fill: colors.$primary-light; +} + +#navbar { + line-height: 0; +} + +th { + text-align: start; +} + +.commit-info-title { + color: colors.$secondary; + padding-right: 30px; + width: 20px; +} + +.patch-too-large { + font-weight: 600; +} + + +@include media-breakpoint-down(sm) { + .commit-file table tbody tr td { + padding-left: 4px; + &:nth-child(2) { + padding-right: 4px; + } + &:nth-child(3) { + padding-right: 5px; + } + } + .table > :not(caption) > * > * { + padding: 0.1rem; + } +} + +@media (max-width: 1200px) { + .fs-1 { + font-size: calc(1.375rem + 0.667vw) !important; + } + .fs-2 { + font-size: calc(1.325rem + 1.584vw) !important; + } + .fs-3 { + font-size: calc(1.3rem + 0.017vw) !important; + } + .fs-4 { + font-size: calc(0.82rem + 0.4vw) !important; + } + .fs-5 { + font-size: calc(0.65rem + 0.25vw) !important; + } +} \ No newline at end of file diff --git a/src/frontend/util/hljs-languages.js b/src/frontend/util/hljs-languages.js new file mode 100644 index 0000000..c8576e0 --- /dev/null +++ b/src/frontend/util/hljs-languages.js @@ -0,0 +1,45 @@ +const languages = [ + { "name": "arduino", "extensions": [ ".ino" ]}, + { "name": "actionscript", "extensions": [ ".as" ]}, + { "name": "bash", "extensions": [ ".sh", ".zsh" ]}, + { "name": "csharp", "extensions": [ ".cs" ]}, + { "name": "c", "extensions": [ ".c", ".h" ]}, + { "name": "cpp", "extensions": [ ".cpp", ".hpp" ]}, + { "name": "cmake", "extensions": [ "cmake.in" ]}, + { "name": "css", "extensions": [ ".css" ]}, + { "name": "d", "extensions": [ ".d" ]}, + { "name": "dos", "extensions": [ ".bat", ".cmd" ]}, + { "name": "dockerfile", "extensions": [ "dockerfile", "Dockerfile" ]}, + { "name": "go", "extensions": [ ".go" ]}, + { "name": "gradle", "extensions": [ ".gradle" ]}, + { "name": "xml", "extensions": [ ".xml", ".html", ".xhtml", ".rss", ".atom", ".xjb", ".xsd", ".xsl", ".plist", ".svg" ]}, + { "name": "haskell", "extensions": [ ".hs" ]}, + { "name": "ini", "extensions": [ ".ini", ".toml" ]}, + { "name": "json", "extensions": [ ".json" ]}, + { "name": "java", "extensions": [ ".java", ".jsp" ]}, + { "name": "javascript", "extensions": [ ".js", ".jsx" ]}, + { "name": "kotlin", "extensions": [ ".kt" ]}, + { "name": "lua", "extensions": [ ".lua" ]}, + { "name": "makefile", "extensions": [ "makefile", "Makefile" ]}, + { "name": "markdown", "extensions": [ ".md" ]}, + { "name": "objectivec", "extensions": [ ".m", ".mm", ".M" ]}, + { "name": "php", "extensions": [ ".php" ]}, + { "name": "perl", "extensions": [ ".pl", ".pm" ]}, + { "name": "plaintext", "extensions": [ ".txt" ]}, + { "name": "pgsql", "extensions": [ ".pgsql" ]}, + { "name": "powershell", "extensions": [ ".ps", ".ps1" ]}, + { "name": "python", "extensions": [ ".py" ]}, + { "name": "ruby", "extensions": [ ".rb" ]}, + { "name": "rust", "extensions": [ ".rs" ]}, + { "name": "scss", "extensions": [ ".scss" ]}, + { "name": "sql", "extensions": [ ".sql" ]}, + { "name": "swift", "extensions": [ ".swift" ]}, + { "name": "typescript", "extensions": [ ".ts" ]}, + { "name": "vbnet", "extensions": [ ".vb" ]}, + { "name": "vba", "extensions": [ ".vba" ]}, + { "name": "vbscript", "extensions": [ ".vbs" ]}, + { "name": "vim", "extensions": [ ".vim" ]}, + { "name": "yml", "extensions": [ ".yml" ]} +]; + +export default languages; \ No newline at end of file diff --git a/src/frontend/views/Home.vue b/src/frontend/views/Home.vue new file mode 100644 index 0000000..79ec4ab --- /dev/null +++ b/src/frontend/views/Home.vue @@ -0,0 +1,62 @@ + + + \ No newline at end of file diff --git a/src/frontend/views/Repository.vue b/src/frontend/views/Repository.vue new file mode 100644 index 0000000..8863529 --- /dev/null +++ b/src/frontend/views/Repository.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/src/frontend/views/RepositoryCommit.vue b/src/frontend/views/RepositoryCommit.vue new file mode 100644 index 0000000..283ed69 --- /dev/null +++ b/src/frontend/views/RepositoryCommit.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/frontend/views/RepositoryLog.vue b/src/frontend/views/RepositoryLog.vue new file mode 100644 index 0000000..399fc78 --- /dev/null +++ b/src/frontend/views/RepositoryLog.vue @@ -0,0 +1,91 @@ + + + \ No newline at end of file -- cgit v1.2.3-18-g5258