Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
090af8aa68 |
@@ -11,6 +11,7 @@ export default defineContentConfig({
|
||||
schema: z.object({
|
||||
date: z.date(),
|
||||
img: z.string(),
|
||||
sub: z.string(),
|
||||
tags: z.array(z.string()),
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2,12 +2,9 @@
|
||||
title: "My First Blog Post"
|
||||
description: "This is a test article."
|
||||
navigation: true
|
||||
date: "2025-03-01"
|
||||
sub: "C++20, GLSL, Lua"
|
||||
img: "/img/personal-website/login.png"
|
||||
tags:
|
||||
- C++20
|
||||
- GLSL
|
||||
- Lua
|
||||
date: "2025-03-01"
|
||||
---
|
||||
|
||||
Foobarbazbuz.
|
||||
|
||||
@@ -2,12 +2,9 @@
|
||||
title: "Personal Website"
|
||||
description: "An open-source content management system, used for this website."
|
||||
navigation: false
|
||||
date: "2025-03-03"
|
||||
sub: "PHP 7, MySQL, jQuery"
|
||||
img: "/img/personal-website/admin-menu.png"
|
||||
tags:
|
||||
- PHP 7
|
||||
- MySQL
|
||||
- jQuery
|
||||
date: "2025-03-03"
|
||||
---
|
||||
|
||||
<small>Open-source content management system.<br>
|
||||
|
||||
@@ -2,10 +2,9 @@
|
||||
title: "My Second Blog Post"
|
||||
description: "This is another article."
|
||||
navigation: false
|
||||
date: "2025-03-02"
|
||||
sub: "Bash"
|
||||
img: "/img/personal-website/reset-password.png"
|
||||
tags:
|
||||
- Bash
|
||||
date: "2025-03-02"
|
||||
---
|
||||
|
||||
This is another article.
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<ArticlesTableOfContents v-if="article.navigation" :toc="article.body.toc" />
|
||||
|
||||
<h1>{{ article.title }}</h1>
|
||||
<p><i><small>{{ prettyDate(article.date) }}</small></i></p>
|
||||
<ContentRenderer :value="article" />
|
||||
</template>
|
||||
<template v-else>
|
||||
|
||||
@@ -10,13 +10,10 @@
|
||||
</div>
|
||||
<div class="col-7 col-lg-8 col-xl-9">
|
||||
<NuxtLink v-if="article.img" :to="article.path">
|
||||
<h4 class="mb-0"><strong>{{ article.title }}</strong></h4>
|
||||
<h4><strong>{{ article.title }}</strong></h4>
|
||||
</NuxtLink>
|
||||
<p><i><small>{{ prettyDate(article.date) }}</small></i></p>
|
||||
<p>{{ article.description }}</p>
|
||||
<template v-if="article.tags">
|
||||
<p>Tags: <code>{{ article.tags.join(", ") }}</code></p>
|
||||
</template>
|
||||
{{ article.description }}<br>
|
||||
<i><small>{{ article.sub }}</small></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -41,10 +38,6 @@ a h4 {
|
||||
a h4:hover {
|
||||
color: var(--bs-link-hover-color);
|
||||
}
|
||||
|
||||
code {
|
||||
color: var(--bs-link-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
+1
-23
@@ -1,14 +1,8 @@
|
||||
import { withTrailingSlash, withLeadingSlash, joinURL } from "ufo"
|
||||
import { useRuntimeConfig } from "#imports"
|
||||
|
||||
/**
|
||||
* Returns if environment is in development mode
|
||||
*/
|
||||
export const isDev = process.env.NODE_ENV === "development";
|
||||
|
||||
/**
|
||||
* Gets URL path, taking into acount the baseURL
|
||||
*/
|
||||
export const getPublicPath = function (path: string): string {
|
||||
if (path?.startsWith("/") && !path.startsWith("//")) {
|
||||
const _base = withLeadingSlash(withTrailingSlash(useRuntimeConfig().app.baseURL));
|
||||
@@ -16,23 +10,7 @@ export const getPublicPath = function (path: string): string {
|
||||
return joinURL(_base, path);
|
||||
}
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return date string in format "Feb 10, 2025"
|
||||
*/
|
||||
export const prettyDate = function (date: string | Date): string {
|
||||
if (typeof date === "string") {
|
||||
date = new Date(date);
|
||||
}
|
||||
|
||||
const formatted = new Intl.DateTimeFormat("en-US", {
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
year: "numeric"
|
||||
}).format(date);
|
||||
|
||||
return formatted;
|
||||
}
|
||||
// datetime format
|
||||
|
||||
Reference in New Issue
Block a user