diff --git a/content/articles/first.md b/content/articles/first.md index 4734e21..c5a0deb 100644 --- a/content/articles/first.md +++ b/content/articles/first.md @@ -7,6 +7,41 @@ description: "This is a test article." This is a test article. +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum a tempor +dolor. Nullam mattis sapien vel finibus dignissim. Etiam et diam ultrices, +aliquam enim nec, commodo sem. Cras ut faucibus risus. Suspendisse vel faucibus +ipsum. Duis vel orci nec arcu porttitor fermentum eu quis est. Phasellus elit +odio, elementum ac placerat at, feugiat sit amet sapien. + +Vestibulum dapibus pharetra metus. Integer volutpat lacus nec enim euismod, id +dignissim felis rhoncus. Cras commodo tempus turpis, eu vehicula mi lacinia +eget. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per +inceptos himenaeos. Integer rhoncus dolor ut dolor gravida vestibulum. Ut +dignissim orci a ornare ullamcorper. Nam facilisis mauris sit amet nunc +fermentum pretium. Nullam in nisi at risus luctus viverra. Mauris non congue +dolor, vel finibus lectus. Nam quis leo pretium, sodales augue et, dictum sem. + +Curabitur velit ante, imperdiet in eros eu, iaculis gravida risus. Nullam ut +feugiat eros, viverra vehicula sem. Aliquam finibus mi magna, eu fringilla +tellus ullamcorper vel. Fusce eget auctor mi. Mauris venenatis pellentesque +arcu. Nam ac diam sem. Nulla suscipit sed risus non vehicula. Cras molestie +lectus et tincidunt tempor. Ut tempus lorem id augue semper convallis. Aliquam +vel dui quis dolor cursus faucibus eget a mi. Curabitur tempus justo diam, a +facilisis ligula tincidunt viverra. Donec sodales quis dolor at dignissim. +Nullam placerat vitae urna quis bibendum. + +Integer a magna a velit bibendum mollis. Donec lobortis molestie diam at rutrum. +Nunc viverra gravida metus at facilisis. Nulla sit amet erat sodales, commodo +elit sed, ultrices magna. Aliquam vel purus fringilla, gravida enim quis, +aliquam augue. Duis interdum et erat nec feugiat. Praesent vitae lacinia leo, +non suscipit purus. + +Aenean massa magna, imperdiet id ex quis, mollis auctor lectus. Cras velit +nulla, volutpat eu neque id, semper venenatis urna. Integer in blandit ex, non +scelerisque nisi. Ut sagittis tincidunt enim at volutpat. Sed hendrerit metus ac +interdum laoreet. In rutrum turpis in nulla vulputate suscipit. Nunc dictum nisl +id magna laoreet dapibus. + ## Component Rendering ::ExampleComponent @@ -36,9 +71,9 @@ protected static $router; $path = parse_url($_SERVER['REQUEST_URI'])['path']; ``` -Inline `hightlight`. +Inline `hightlight` looks like so. -`const code: string = 'highlighted code inline'`{lang="ts"} +Inline highlight with language `const code: string = 'highlighted code inline'`{lang="ts"} like this. - An - Unordered diff --git a/nuxt.config.ts b/nuxt.config.ts index 66c06bc..d0d4340 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,4 +1,6 @@ -import Aura from "@primevue/themes/aura"; +import Icons from "unplugin-icons/vite" +import IconsResolver from "unplugin-icons/resolver" +import ViteComponents from "unplugin-vue-components/vite" // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ @@ -17,7 +19,7 @@ export default defineNuxtConfig({ } }, css: [ - "primeicons/primeicons.css", + "bootstrap/dist/css/bootstrap.min.css", "~/assets/css/style.css" ], devtools: { enabled: true }, @@ -25,11 +27,12 @@ export default defineNuxtConfig({ public: "../public" }, modules: [ + "@bootstrap-vue-next/nuxt", "@nuxt/content", "@nuxt/eslint", "@pinia/nuxt", - "@primevue/nuxt-module", "pinia-plugin-persistedstate/nuxt", + "unplugin-icons/nuxt" ], pinia: { storesDirs: ["src/stores/**"] // also auto-import nested directories @@ -42,13 +45,18 @@ export default defineNuxtConfig({ secure: process.env.NODE_ENV !== "development" // only send over HTTPS } }, - primevue: { - options: { - theme: { - preset: Aura - } - } - }, srcDir: "src/", - ssr: false + ssr: false, + vite: { + plugins: [ + ViteComponents({ + resolvers: [IconsResolver()], + dts: true + }), + Icons({ + compiler: "vue3", + autoInstall: true, + }), + ], + }, }) diff --git a/package-lock.json b/package-lock.json index d7d0143..971d9b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,13 +20,19 @@ "zod": "^3.23.8" }, "devDependencies": { + "@bootstrap-vue-next/nuxt": "^0.28.3", "@nuxt/content": "^3.4.0", "@nuxt/eslint": "^1.2.0", "@primevue/nuxt-module": "^4.2.3", "@types/bun": "latest", + "@vue/compiler-sfc": "^3.5.13", "@vue/language-server": "^2.1.10", "@vue/typescript-plugin": "^2.1.10", - "typescript": "^5.7.2" + "bootstrap": "^5.3.3", + "bootstrap-vue-next": "^0.28.3", + "typescript": "^5.7.2", + "unplugin-icons": "^22.1.0", + "unplugin-vue-components": "^28.4.1" } }, "node_modules/@ampproject/remapping": { @@ -60,6 +66,16 @@ "quansync": "^0.2.7" } }, + "node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "11.9.3", "dev": true, @@ -430,6 +446,23 @@ "node": ">=6.9.0" } }, + "node_modules/@bootstrap-vue-next/nuxt": { + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/@bootstrap-vue-next/nuxt/-/nuxt-0.28.3.tgz", + "integrity": "sha512-tgDDrxyqoye1UUkK3J7s11icQ8ZfLL2GoiRZ6cLNkTPpxq1tlQEiNIQKt1qUgI/NzWMFhvxyJUgNmkvEqOK7Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nuxt/kit": "^3.16.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap-vue-next" + }, + "peerDependencies": { + "bootstrap-vue-next": "^0.28.3" + } + }, "node_modules/@clack/core": { "version": "0.4.1", "dev": true, @@ -874,6 +907,43 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@iconify/utils/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ioredis/commands": { "version": "1.2.0", "license": "MIT" @@ -1686,6 +1756,18 @@ "version": "1.0.0-next.28", "license": "MIT" }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@poppinss/colors": { "version": "4.1.4", "license": "MIT", @@ -2742,6 +2824,8 @@ }, "node_modules/@vue/compiler-sfc": { "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", @@ -3331,6 +3415,54 @@ "version": "1.0.0", "license": "ISC" }, + "node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/bootstrap-vue-next": { + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/bootstrap-vue-next/-/bootstrap-vue-next-0.28.3.tgz", + "integrity": "sha512-AUBhDVXcO0/Qc8Wpwy/LjVyGq5V77XT3bHhvHhchC7lqu9qZ/FhLDdzLoHMZFs0WOEQ6qmsba8QxegMpvw3toA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap-vue-next" + }, + "peerDependencies": { + "@floating-ui/vue": "*", + "@vueuse/core": "*", + "vue": "^3.5.13", + "vue-router": "*" + }, + "peerDependenciesMeta": { + "@floating-ui/vue": { + "optional": true + }, + "@vueuse/core": { + "optional": true + }, + "vue-router": { + "optional": true + } + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "license": "MIT", @@ -6669,6 +6801,13 @@ "version": "1.2.0", "license": "MIT" }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, "node_modules/launch-editor": { "version": "2.10.0", "license": "MIT", @@ -11022,6 +11161,51 @@ "node": ">=18.12.0" } }, + "node_modules/unplugin-icons": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-22.1.0.tgz", + "integrity": "sha512-ect2ZNtk1Zgwb0NVHd0C1IDW/MV+Jk/xaq4t8o6rYdVS3+L660ZdD5kTSQZvsgdwCvquRw+/wYn75hsweRjoIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@iconify/utils": "^2.3.0", + "debug": "^4.4.0", + "local-pkg": "^1.0.0", + "unplugin": "^2.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@svgr/core": ">=7.0.0", + "@svgx/core": "^1.0.1", + "@vue/compiler-sfc": "^3.0.2 || ^2.7.0", + "svelte": "^3.0.0 || ^4.0.0 || ^5.0.0", + "vue-template-compiler": "^2.6.12", + "vue-template-es2015-compiler": "^1.9.0" + }, + "peerDependenciesMeta": { + "@svgr/core": { + "optional": true + }, + "@svgx/core": { + "optional": true + }, + "@vue/compiler-sfc": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + }, + "vue-template-es2015-compiler": { + "optional": true + } + } + }, "node_modules/unplugin-utils": { "version": "0.2.4", "license": "MIT", @@ -11038,6 +11222,8 @@ }, "node_modules/unplugin-vue-components": { "version": "28.4.1", + "resolved": "https://registry.npmjs.org/unplugin-vue-components/-/unplugin-vue-components-28.4.1.tgz", + "integrity": "sha512-niGSc0vJD9ueAnsqcfAldmtpkppZ09B6p2G1dL7X5S8KPdgbk1P+txPwaaDCe7N+eZh2VG1aAypLXkuJs3OSUg==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 115bb1c..cf0f8c0 100644 --- a/package.json +++ b/package.json @@ -11,25 +11,28 @@ }, "dependencies": { "@pinia/nuxt": "^0.10.1", - "@primevue/forms": "^4.2.3", - "@primevue/themes": "^4.2.3", - "nuxt": "^3.14.1592", "pinia-plugin-persistedstate": "^4.1.3", - "primeicons": "^7.0.0", - "primevue": "^4.2.3", "uuid": "^11.0.3", "vue": "latest", "vue-router": "latest", "zod": "^3.23.8" }, "devDependencies": { + "@bootstrap-vue-next/nuxt": "^0.28.3", + "@iconify-json/bi": "^1.2.2", + "@iconify-json/fa": "^1.2.1", "@nuxt/content": "^3.4.0", "@nuxt/eslint": "^1.2.0", - "@primevue/nuxt-module": "^4.2.3", "@types/bun": "latest", + "@vue/compiler-sfc": "^3.5.13", "@vue/language-server": "^2.1.10", "@vue/typescript-plugin": "^2.1.10", - "typescript": "^5.7.2" + "bootstrap": "^5.3.3", + "bootstrap-vue-next": "^0.28.3", + "nuxt": "^3.14.1592", + "typescript": "^5.7.2", + "unplugin-icons": "^22.1.0", + "unplugin-vue-components": "^28.4.1" }, "trustedDependencies": [ "@parcel/watcher" diff --git a/src/assets/css/style.css b/src/assets/css/style.css index 2de1978..238c9cc 100644 --- a/src/assets/css/style.css +++ b/src/assets/css/style.css @@ -1,7 +1,42 @@ /*----------------------------------------*/ /* General */ -body { +html { font-family: "Segoe UI", "DejaVu Sans", sans-serif; scroll-behavior: smooth; } + +body { + background-color: #f4f4f4; +} + +nav { + box-shadow: 0 .25rem .5rem rgba(0,0,0,.28) !important; +} + +/* Main content */ +/*----------------------------------------*/ + +.container { + margin: 56px auto 0 auto; +} + +.content { + position: relative; + min-height: calc(100vh - 104px - .5rem); + padding: 20px 20px 50px 20px; + + background-color: #fff; +} + +a:hover { + color: #818080 !important; +} + +/* Footer */ +/*----------------------------------------*/ + +footer { + text-align: center; + color: #909090; +} diff --git a/src/components.d.ts b/src/components.d.ts new file mode 100644 index 0000000..31f3742 --- /dev/null +++ b/src/components.d.ts @@ -0,0 +1,28 @@ +/* eslint-disable */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +// biome-ignore lint: disable +export {} + +/* prettier-ignore */ +declare module 'vue' { + export interface GlobalComponents { + IBi0Circle: typeof import('~icons/bi/0-circle')['default'] + IBiActivity: typeof import('~icons/bi/activity')['default'] + IFaAngellist: typeof import('~icons/fa/angellist')['default'] + IFaCheck: typeof import('~icons/fa/check')['default'] + IFaClone: typeof import('~icons/fa/clone')['default'] + IFaCoffee: typeof import('~icons/fa/coffee')['default'] + IFaCope: typeof import('~icons/fa/cope')['default'] + IFaCopy: typeof import('~icons/fa/copy')['default'] + IFaGithub: typeof import('~icons/fa/github')['default'] + IFaGitlab: typeof import('~icons/fa/gitlab')['default'] + IFaHome: typeof import('~icons/fa/home')['default'] + IFaLink: typeof import('~icons/fa/link')['default'] + IFaLinkedinSquare: typeof import('~icons/fa/linkedin-square')['default'] + IMdiAccountBox: typeof import('~icons/mdi/account-box')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + } +} diff --git a/src/components/ExampleComponent.vue b/src/components/ExampleComponent.vue index 10d532d..1786d17 100644 --- a/src/components/ExampleComponent.vue +++ b/src/components/ExampleComponent.vue @@ -1,16 +1,18 @@ - + - + Broken Slot - + + + diff --git a/src/components/Shared/Footer.vue b/src/components/Shared/Footer.vue index 6beff51..e1e06ad 100644 --- a/src/components/Shared/Footer.vue +++ b/src/components/Shared/Footer.vue @@ -1,2 +1,11 @@ + + + diff --git a/src/components/Shared/NavMenu.vue b/src/components/Shared/NavMenu.vue index 239ce11..11a9dbd 100644 --- a/src/components/Shared/NavMenu.vue +++ b/src/components/Shared/NavMenu.vue @@ -1,61 +1,30 @@ - - - - - - - {{ item.label }} - - - - - {{ item.label }} - - - - - + + + Home + + + + + + Articles + Todos + + + + + Gitea + + + Github + + + Gitlab + + Linked + + + + + - - diff --git a/src/components/Table/SortingColumn.vue b/src/components/Table/SortingColumn.vue deleted file mode 100644 index 70cb81c..0000000 --- a/src/components/Table/SortingColumn.vue +++ /dev/null @@ -1,18 +0,0 @@ - - adasda - - - Title - - - - - - - diff --git a/src/components/Todo/Add.vue b/src/components/Todo/Add.vue deleted file mode 100644 index 338f3cb..0000000 --- a/src/components/Todo/Add.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - {{ $form.title.error?.message }} - - - - - - - - - diff --git a/src/components/Todo/Browse.vue b/src/components/Todo/Browse.vue deleted file mode 100644 index d8b8fd5..0000000 --- a/src/components/Todo/Browse.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/layouts/default.vue b/src/layouts/default.vue index 931999c..2afa410 100644 --- a/src/layouts/default.vue +++ b/src/layouts/default.vue @@ -1,5 +1,13 @@ - - + + + + + + + + + + diff --git a/src/pages/articles/[slug].vue b/src/pages/articles/[slug].vue index d984f53..10227d3 100644 --- a/src/pages/articles/[slug].vue +++ b/src/pages/articles/[slug].vue @@ -12,6 +12,41 @@ + + diff --git a/tsconfig.json b/tsconfig.json index a746f2a..4b8418b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,8 @@ { - // https://nuxt.com/docs/guide/concepts/typescript - "extends": "./.nuxt/tsconfig.json" + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json", + "include": ["components.d.ts"], + "compilerOptions": { + "types": ["unplugin-icons/types/vue"] + } }
+ +