mirror of
https://github.com/ArthurDanjou/website.git
synced 2026-01-27 02:10:35 +01:00
Working
This commit is contained in:
@@ -3,7 +3,36 @@
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
ABOUT
|
||||
</div>
|
||||
<section>
|
||||
<div class="w-container lg:my-32 mt-16">
|
||||
<div class="max-w-2xl space-y-8 mb-16">
|
||||
<h1 class="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl !leading-tight">
|
||||
I'm Arthur, I live and study in France where I learn new things.
|
||||
</h1>
|
||||
<p class="leading-relaxed text-subtitle">
|
||||
As a software engineer with a passion for AI and the cloud, I have a deep understanding of emerging technologies that are transforming the way businesses and organizations operate. I am at the heart of an ever-changing and rapidly growing field. My background in mathematics also gives me an edge in understanding the mathematical concepts and theories behind these technologies as well as how to design them.
|
||||
</p>
|
||||
<p class="leading-relaxed text-subtitle">
|
||||
I enjoy sharing my knowledge and learning new theorems and technologies. I am a curious person and eager to continue learning and growing throughout your life. My passion and commitment to these subjects are admirable qualities and will help me succeed in my career and education.
|
||||
</p>
|
||||
</div>
|
||||
<GridSection title="Interests">
|
||||
<GridSlot title="Development">
|
||||
Development is the passion that appeared the earliest in my life. I started developing on Minecraft and then I migrated to the broad field of the web.
|
||||
</GridSlot>
|
||||
<GridSlot title="Mathematics">
|
||||
During my studies, I loved mathematics very quickly. That's why today I continue my studies in this fabulous field.
|
||||
</GridSlot>
|
||||
<GridSlot title="Artificial Intelligence">
|
||||
We hear more and more about artificial intelligence with the evolution of our society. So I quickly got interested by doing my own research and I quickly discovered that this field is closely related to mathematics, hence my interest.
|
||||
</GridSlot>
|
||||
<GridSlot title="Cloud and infrastructure">
|
||||
When you're doing development and deploying projects online, you discover and are forced to touch the cloud, infrastructure, and network. It's a totally different field than the others but just as interesting.
|
||||
</GridSlot>
|
||||
<GridSlot title="Fitness">
|
||||
In addition to my studies and programming, I go to the gym every day to relax and stay in shape. Sport allows me to recharge my batteries and move on to other things.
|
||||
</GridSlot>
|
||||
</GridSection>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
@@ -1,18 +1,23 @@
|
||||
<script lang="ts" setup>
|
||||
import type { Post } from '../../../types'
|
||||
import type { Post } from '~~/types'
|
||||
|
||||
const route = useRoute()
|
||||
const { data: postContent } = await useAsyncData<Post>(`writing:${route.params.slug}`, async () => await queryContent<Post>(`/writing/${route.params.slug}`).findOne())
|
||||
|
||||
const { post, view, like, likes, views } = await usePost(route.params.slug.toString())
|
||||
if (!postContent.value) {
|
||||
throw createError({
|
||||
statusMessage: 'The post you are looking for was not found.',
|
||||
statusCode: 404,
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
view()
|
||||
})
|
||||
const { post, view, like, likes, views } = await usePost(route.params.slug.toString())
|
||||
view()
|
||||
|
||||
useHead({
|
||||
title: `${postContent.value?.title} — Arthur Danjou's shelf`,
|
||||
})
|
||||
|
||||
function top() {
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
@@ -25,8 +30,6 @@ const { copy, copied } = useClipboard({
|
||||
source: `https://arthurdanjou.fr/writing/${route.params.slug}`,
|
||||
copiedDuring: 4000,
|
||||
})
|
||||
|
||||
const router = useRouter()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -41,7 +44,7 @@ const router = useRouter()
|
||||
size="lg"
|
||||
:ui="{ rounded: 'rounded-full' }"
|
||||
class="lg:absolute left-0 mb-8"
|
||||
@click.prevent="router.back()"
|
||||
@click.prevent="useRouter().back()"
|
||||
/>
|
||||
<article>
|
||||
<header class="flex flex-col space-y-6">
|
||||
@@ -54,7 +57,7 @@ const router = useRouter()
|
||||
<span>•</span>
|
||||
<div>{{ postContent.readingMins }} min</div>
|
||||
<span>•</span>
|
||||
<div>{{ views }} views</div>
|
||||
<div>{{ views }} {{ views > 1 ? 'views' : 'view' }}</div>
|
||||
</div>
|
||||
</time>
|
||||
<h1 class="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">
|
||||
@@ -67,18 +70,25 @@ const router = useRouter()
|
||||
<div class="w-full rounded-md my-8">
|
||||
{{ postContent.cover }}
|
||||
</div>
|
||||
<ContentRenderer
|
||||
class="mt-12 prose leading-6 prose-table:w-full md:prose-table:w-3/4 lg:prose-table:w-2/5 max-w-none
|
||||
<ClientOnly>
|
||||
<ContentRenderer
|
||||
class="mt-12 prose leading-6 prose-table:w-full md:prose-table:w-3/4 lg:prose-table:w-2/5 max-w-none
|
||||
dark:prose dark:prose-invert dark:leading-6 dark:max-w-none dark:prose-table:w-full dark:md:prose-table:w-3/4 dark:lg:prose-table:w-2/5"
|
||||
:value="postContent || undefined"
|
||||
/>
|
||||
:value="postContent"
|
||||
/>
|
||||
<template #fallback>
|
||||
<p class="my-16 text-subtitle">
|
||||
The content of the page is loading...
|
||||
</p>
|
||||
</template>
|
||||
</ClientOnly>
|
||||
<footer class="my-8 space-y-8">
|
||||
<p class="text-subtitle">
|
||||
Thanks for reading this post! If you liked it, please consider sharing it with your friends. <strong>Don't forget to leave a like!</strong>
|
||||
</p>
|
||||
<div class="flex gap-4 flex-wrap">
|
||||
<UButton
|
||||
:label="`${likes} likes`"
|
||||
:label="`${likes} ${likes > 1 ? 'likes' : 'like'}`"
|
||||
icon="i-ph-heart-bold"
|
||||
size="lg"
|
||||
variant="soft"
|
||||
|
||||
@@ -26,7 +26,7 @@ const { data: posts } = await usePosts()
|
||||
<div class="mt-16 md:mt-20">
|
||||
<div class="md:border-l md:border-zinc-100 md:pl-6 md:dark:border-zinc-700/40">
|
||||
<div class="flex max-w-3xl flex-col space-y-16">
|
||||
<article v-for="post in posts" :key="post.slug" class="md:grid md:grid-cols-4 md:items-baseline">
|
||||
<article v-for="post in posts" :key="post.slug" class="group md:grid md:grid-cols-4 md:items-baseline">
|
||||
<div class="md:col-span-3 group relative flex flex-col items-start">
|
||||
<h2 class="text-base font-semibold tracking-tight text-zinc-800 dark:text-zinc-100">
|
||||
<div class="absolute -inset-y-6 -inset-x-4 z-0 scale-95 bg-zinc-50 opacity-0 transition group-hover:scale-100 group-hover:opacity-100 dark:bg-zinc-800/50 sm:-inset-x-6 sm:rounded-2xl" />
|
||||
@@ -48,7 +48,7 @@ const { data: posts } = await usePosts()
|
||||
</p>
|
||||
<div class="relative z-10 mt-4 flex items-center gap-2 justify-center text-sm font-medium" :class="getColor()">
|
||||
<p>Read article</p>
|
||||
<UIcon name="i-ph-arrow-circle-right-bold" />
|
||||
<UIcon name="i-ph-arrow-circle-right-bold" class="duration-300 group-hover:ml-2"/>
|
||||
</div>
|
||||
</div>
|
||||
<time class="mt-1 md:block relative z-10 order-first mb-3 hidden text-sm text-zinc-400 dark:text-zinc-500">
|
||||
|
||||
Reference in New Issue
Block a user