mirror of
https://github.com/ArthurDanjou/artsite.git
synced 2026-02-09 13:06:08 +01:00
Working on website
This commit is contained in:
@@ -72,11 +72,13 @@ async function changeLocale(newLocale: string) {
|
|||||||
document.body.style.animation = ''
|
document.body.style.animation = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
const open = ref(false)
|
const openSelectMenu = ref(false)
|
||||||
|
const openContactDrawer = ref(false)
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
defineShortcuts({
|
defineShortcuts({
|
||||||
t: () => toggleTheme(),
|
t: () => toggleTheme(),
|
||||||
l: () => open.value = !open.value,
|
l: () => openSelectMenu.value = !openSelectMenu.value,
|
||||||
|
c: () => openContactDrawer.value = !openContactDrawer.value,
|
||||||
backspace: () => router.back(),
|
backspace: () => router.back(),
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
@@ -94,6 +96,7 @@ defineShortcuts({
|
|||||||
v-for="nav in navs"
|
v-for="nav in navs"
|
||||||
:key="nav.label.en"
|
:key="nav.label.en"
|
||||||
:text="nav.label[locale]"
|
:text="nav.label[locale]"
|
||||||
|
:delay-duration="4"
|
||||||
>
|
>
|
||||||
<UButton
|
<UButton
|
||||||
:icon="`i-ph:${nav.icon}`"
|
:icon="`i-ph:${nav.icon}`"
|
||||||
@@ -102,26 +105,56 @@ defineShortcuts({
|
|||||||
:aria-label="nav.label"
|
:aria-label="nav.label"
|
||||||
color="neutral"
|
color="neutral"
|
||||||
size="sm"
|
size="sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
/>
|
/>
|
||||||
</UTooltip>
|
</UTooltip>
|
||||||
|
<USeparator orientation="vertical" class="h-6" />
|
||||||
|
|
||||||
|
<UDrawer
|
||||||
|
v-model:open="openContactDrawer"
|
||||||
|
should-scale-background
|
||||||
|
:title="t('contact.title')"
|
||||||
|
>
|
||||||
|
<UTooltip
|
||||||
|
:kbds="['C']"
|
||||||
|
:text="t('contact.button')"
|
||||||
|
:delay-duration="4"
|
||||||
|
class="cursor-pointer"
|
||||||
|
>
|
||||||
|
<UButton
|
||||||
|
icon="i-ph-mailbox-duotone"
|
||||||
|
color="neutral"
|
||||||
|
size="sm"
|
||||||
|
variant="ghost"
|
||||||
|
@click="openContactDrawer = true"
|
||||||
|
/>
|
||||||
|
</UTooltip>
|
||||||
|
|
||||||
|
<template #body>
|
||||||
|
<div>Hey</div>
|
||||||
|
</template>
|
||||||
|
</UDrawer>
|
||||||
|
<USeparator orientation="vertical" class="h-6" />
|
||||||
<ClientOnly>
|
<ClientOnly>
|
||||||
<UTooltip
|
<UTooltip
|
||||||
:kbds="['T']"
|
:kbds="['T']"
|
||||||
:text="t('theme')"
|
:text="t('theme')"
|
||||||
|
class="cursor-pointer"
|
||||||
|
:delay-duration="4"
|
||||||
>
|
>
|
||||||
<UButton
|
<UButton
|
||||||
:icon="isDark ? 'i-ph-moon-duotone' : 'i-ph-sun-duotone'"
|
:icon="isDark ? 'i-ph-moon-duotone' : 'i-ph-sun-duotone'"
|
||||||
color="neutral"
|
color="neutral"
|
||||||
aria-label="switch theme"
|
aria-label="switch theme"
|
||||||
size="sm"
|
size="sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="toggleTheme()"
|
@click="toggleTheme()"
|
||||||
/>
|
/>
|
||||||
</UTooltip>
|
</UTooltip>
|
||||||
<UTooltip
|
<UTooltip
|
||||||
:kbds="['L']"
|
:kbds="['L']"
|
||||||
:text="t('language')"
|
:text="t('language')"
|
||||||
|
class="cursor-pointer"
|
||||||
:content="{
|
:content="{
|
||||||
align: 'center',
|
align: 'center',
|
||||||
side: 'right',
|
side: 'right',
|
||||||
@@ -130,13 +163,13 @@ defineShortcuts({
|
|||||||
>
|
>
|
||||||
<USelect
|
<USelect
|
||||||
v-model="lang"
|
v-model="lang"
|
||||||
v-model:open="open"
|
v-model:open="openSelectMenu"
|
||||||
:items="locales"
|
:items="locales"
|
||||||
size="sm"
|
size="sm"
|
||||||
:leading-icon="currentLocale.icon"
|
:leading-icon="currentLocale.icon"
|
||||||
label-key="label"
|
label-key="label"
|
||||||
value-key="code"
|
value-key="code"
|
||||||
variant="outline"
|
variant="soft"
|
||||||
@update:model-value="changeLocale"
|
@update:model-value="changeLocale"
|
||||||
/>
|
/>
|
||||||
</UTooltip>
|
</UTooltip>
|
||||||
@@ -177,15 +210,27 @@ defineShortcuts({
|
|||||||
{
|
{
|
||||||
"en": {
|
"en": {
|
||||||
"theme": "switch theme",
|
"theme": "switch theme",
|
||||||
"language": "change language"
|
"language": "change language",
|
||||||
|
"contact": {
|
||||||
|
"button": "contact me",
|
||||||
|
"title": "Contact me"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"fr": {
|
"fr": {
|
||||||
"theme": "changer de thème",
|
"theme": "changer de thème",
|
||||||
"language": "changer de langue"
|
"language": "changer de langue",
|
||||||
|
"contact": {
|
||||||
|
"button": "me contacter",
|
||||||
|
"title": "Me contacter"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"es": {
|
"es": {
|
||||||
"theme": "cambiar tema",
|
"theme": "cambiar tema",
|
||||||
"language": "cambiar idioma"
|
"language": "cambiar idioma",
|
||||||
|
"contact": {
|
||||||
|
"button": "contactame",
|
||||||
|
"title": "Contactame"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|||||||
@@ -54,14 +54,14 @@ function updateTag(payload: number | string) {
|
|||||||
<span class="truncate">{{ t(item.translation) }}</span>
|
<span class="truncate">{{ t(item.translation) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</UTabs>
|
</UTabs>
|
||||||
<ul class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
<ul class="grid grid-cols-1 gap-4">
|
||||||
<NuxtLink
|
<NuxtLink
|
||||||
v-for="(writing, id) in writings"
|
v-for="(writing, id) in writings"
|
||||||
:key="id"
|
:key="id"
|
||||||
:to="writing.path"
|
:to="writing.path"
|
||||||
>
|
>
|
||||||
<li
|
<li
|
||||||
class=" h-full border p-4 shadow-sm border-neutral-200 rounded-md hover:border-neutral-500 dark:border-neutral-800 dark:hover:border-neutral-600 duration-300"
|
class=" h-full border p-4 border-neutral-200 rounded-md hover:border-neutral-500 dark:border-neutral-800 dark:hover:border-neutral-600 duration-300"
|
||||||
>
|
>
|
||||||
<article class="space-y-2">
|
<article class="space-y-2">
|
||||||
<h1
|
<h1
|
||||||
@@ -165,3 +165,9 @@ function updateTag(payload: number | string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.tablist > button {
|
||||||
|
cursor: pointer !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
slug: arthome
|
slug: arthome
|
||||||
title: ArtHome
|
title: ArtHome
|
||||||
description: 🏡 ArtHome - Your personalised home page in your browser
|
description: 🏡 Your personalised home page in your browser
|
||||||
publishedAt: 2024/09/04
|
publishedAt: 2024/09/04
|
||||||
readingTime: 1
|
readingTime: 1
|
||||||
cover: arthome/cover.png
|
cover: arthome/cover.png
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
slug: monte-carlo-project
|
slug: monte-carlo-project
|
||||||
title: Monte Carlo Methods Project
|
title: Monte Carlo Methods Project
|
||||||
description: ⚠️ Still in progress - A project to demonstrate the use of Monte Carlo methods in R.
|
description: A project to demonstrate the use of Monte Carlo methods in R.
|
||||||
publishedAt: 2024/11/24
|
publishedAt: 2024/11/24
|
||||||
readingTime: 3
|
readingTime: 3
|
||||||
tags:
|
tags:
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ tags:
|
|||||||
- data
|
- data
|
||||||
- ai
|
- ai
|
||||||
- python
|
- python
|
||||||
- r
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Python Data & ML](https://github.com/ArthurDanjou/Python-Data-Machine-Learning) is a repository dedicated to learning and practicing Python libraries for machine learning. It includes a variety of projects and exercises that cover the following topics.
|
[Python Data & ML](https://github.com/ArthurDanjou/Python-Data-Machine-Learning) is a repository dedicated to learning and practicing Python libraries for machine learning. It includes a variety of projects and exercises that cover the following topics.
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ export default defineNuxtConfig({
|
|||||||
separator: '•',
|
separator: '•',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
rootAttrs: {
|
||||||
|
'vaul-drawer-wrapper': '',
|
||||||
|
'class': 'bg-[var(--ui-bg)]',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
css: ['~/assets/css/main.css'],
|
css: ['~/assets/css/main.css'],
|
||||||
@@ -35,7 +39,7 @@ export default defineNuxtConfig({
|
|||||||
// Nuxt Content
|
// Nuxt Content
|
||||||
content: {
|
content: {
|
||||||
preview: {
|
preview: {
|
||||||
api: 'https://api.nuxt.studio',
|
// todo: api: 'https://api.nuxt.studio',
|
||||||
},
|
},
|
||||||
build: {
|
build: {
|
||||||
markdown: {
|
markdown: {
|
||||||
@@ -117,16 +121,6 @@ export default defineNuxtConfig({
|
|||||||
defaultLocale: 'en',
|
defaultLocale: 'en',
|
||||||
},
|
},
|
||||||
|
|
||||||
// Nuxt Icon
|
|
||||||
icon: {
|
|
||||||
serverBundle: {
|
|
||||||
collections: ['twemoji', 'ph', 'logos', 'vscode-icons'],
|
|
||||||
},
|
|
||||||
clientBundle: {
|
|
||||||
scan: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
// Nuxt Google Fonts
|
// Nuxt Google Fonts
|
||||||
googleFonts: {
|
googleFonts: {
|
||||||
display: 'swap',
|
display: 'swap',
|
||||||
|
|||||||
@@ -14,6 +14,9 @@
|
|||||||
"db:generate": "drizzle-kit generate"
|
"db:generate": "drizzle-kit generate"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@iconify-json/logos": "^1.2.4",
|
||||||
|
"@iconify-json/ph": "^1.2.2",
|
||||||
|
"@iconify-json/vscode-icons": "^1.2.11",
|
||||||
"@nuxt/content": "3.1.0",
|
"@nuxt/content": "3.1.0",
|
||||||
"@nuxt/image": "^1.9.0",
|
"@nuxt/image": "^1.9.0",
|
||||||
"@nuxt/ui": "3.0.0-alpha.12",
|
"@nuxt/ui": "3.0.0-alpha.12",
|
||||||
|
|||||||
36
pnpm-lock.yaml
generated
36
pnpm-lock.yaml
generated
@@ -8,6 +8,15 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@iconify-json/logos':
|
||||||
|
specifier: ^1.2.4
|
||||||
|
version: 1.2.4
|
||||||
|
'@iconify-json/ph':
|
||||||
|
specifier: ^1.2.2
|
||||||
|
version: 1.2.2
|
||||||
|
'@iconify-json/vscode-icons':
|
||||||
|
specifier: ^1.2.11
|
||||||
|
version: 1.2.11
|
||||||
'@nuxt/content':
|
'@nuxt/content':
|
||||||
specifier: 3.1.0
|
specifier: 3.1.0
|
||||||
version: 3.1.0(@libsql/client@0.5.6(encoding@0.1.13))(drizzle-orm@0.33.0(@cloudflare/workers-types@4.20250124.3)(@libsql/client@0.5.6(encoding@0.1.13))(@opentelemetry/api@1.9.0)(better-sqlite3@11.8.1)(pg@8.13.1))(magicast@0.3.5)(rollup@4.32.1)(typescript@5.7.3)
|
version: 3.1.0(@libsql/client@0.5.6(encoding@0.1.13))(drizzle-orm@0.33.0(@cloudflare/workers-types@4.20250124.3)(@libsql/client@0.5.6(encoding@0.1.13))(@opentelemetry/api@1.9.0)(better-sqlite3@11.8.1)(pg@8.13.1))(magicast@0.3.5)(rollup@4.32.1)(typescript@5.7.3)
|
||||||
@@ -1106,6 +1115,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
|
resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
|
||||||
engines: {node: '>=18.18'}
|
engines: {node: '>=18.18'}
|
||||||
|
|
||||||
|
'@iconify-json/logos@1.2.4':
|
||||||
|
resolution: {integrity: sha512-XC4If5D/hbaZvUkTV8iaZuGlQCyG6CNOlaAaJaGa13V5QMYwYjgtKk3vPP8wz3wtTVNVEVk3LRx1fOJz+YnSMw==}
|
||||||
|
|
||||||
|
'@iconify-json/ph@1.2.2':
|
||||||
|
resolution: {integrity: sha512-PgkEZNtqa8hBGjHXQa4pMwZa93hmfu8FUSjs/nv4oUU6yLsgv+gh9nu28Kqi8Fz9CCVu4hj1MZs9/60J57IzFw==}
|
||||||
|
|
||||||
|
'@iconify-json/vscode-icons@1.2.11':
|
||||||
|
resolution: {integrity: sha512-V0ldtWPUKe7ZB3CV/TjgDW1Gbz74AxjGPS2NBWDTSn/y25gTwFycI1YcrluDhuVSoQpDEIYmm3JQJkhtSefh7A==}
|
||||||
|
|
||||||
'@iconify/collections@1.0.511':
|
'@iconify/collections@1.0.511':
|
||||||
resolution: {integrity: sha512-Ilp9gg6HYu9oGZUCNGCEsblATFagC7AmvsUMi4mxfPbh48ygKQ4vIfzJetE9AAu2qwqaYt/dRQjTXvt5Ex8HwQ==}
|
resolution: {integrity: sha512-Ilp9gg6HYu9oGZUCNGCEsblATFagC7AmvsUMi4mxfPbh48ygKQ4vIfzJetE9AAu2qwqaYt/dRQjTXvt5Ex8HwQ==}
|
||||||
|
|
||||||
@@ -7521,6 +7539,18 @@ snapshots:
|
|||||||
|
|
||||||
'@humanwhocodes/retry@0.4.1': {}
|
'@humanwhocodes/retry@0.4.1': {}
|
||||||
|
|
||||||
|
'@iconify-json/logos@1.2.4':
|
||||||
|
dependencies:
|
||||||
|
'@iconify/types': 2.0.0
|
||||||
|
|
||||||
|
'@iconify-json/ph@1.2.2':
|
||||||
|
dependencies:
|
||||||
|
'@iconify/types': 2.0.0
|
||||||
|
|
||||||
|
'@iconify-json/vscode-icons@1.2.11':
|
||||||
|
dependencies:
|
||||||
|
'@iconify/types': 2.0.0
|
||||||
|
|
||||||
'@iconify/collections@1.0.511':
|
'@iconify/collections@1.0.511':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@iconify/types': 2.0.0
|
'@iconify/types': 2.0.0
|
||||||
@@ -11839,13 +11869,13 @@ snapshots:
|
|||||||
|
|
||||||
mdast-util-gfm@3.0.0:
|
mdast-util-gfm@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
mdast-util-from-markdown: 2.0.1
|
mdast-util-from-markdown: 2.0.2
|
||||||
mdast-util-gfm-autolink-literal: 2.0.1
|
mdast-util-gfm-autolink-literal: 2.0.1
|
||||||
mdast-util-gfm-footnote: 2.0.0
|
mdast-util-gfm-footnote: 2.0.0
|
||||||
mdast-util-gfm-strikethrough: 2.0.0
|
mdast-util-gfm-strikethrough: 2.0.0
|
||||||
mdast-util-gfm-table: 2.0.0
|
mdast-util-gfm-table: 2.0.0
|
||||||
mdast-util-gfm-task-list-item: 2.0.0
|
mdast-util-gfm-task-list-item: 2.0.0
|
||||||
mdast-util-to-markdown: 2.1.0
|
mdast-util-to-markdown: 2.1.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -12006,7 +12036,7 @@ snapshots:
|
|||||||
micromark-extension-gfm-tagfilter: 2.0.0
|
micromark-extension-gfm-tagfilter: 2.0.0
|
||||||
micromark-extension-gfm-task-list-item: 2.1.0
|
micromark-extension-gfm-task-list-item: 2.1.0
|
||||||
micromark-util-combine-extensions: 2.0.0
|
micromark-util-combine-extensions: 2.0.0
|
||||||
micromark-util-types: 2.0.0
|
micromark-util-types: 2.0.1
|
||||||
|
|
||||||
micromark-extension-math@3.1.0:
|
micromark-extension-math@3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|||||||
Reference in New Issue
Block a user