Initial commit
This commit is contained in:
commit
820907c3c2
9 changed files with 13506 additions and 0 deletions
13
.editorconfig
Normal file
13
.editorconfig
Normal file
|
@ -0,0 +1,13 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Build
|
||||
.nuxt
|
||||
.output
|
||||
dist
|
||||
|
||||
# Cache
|
||||
.cache
|
||||
|
||||
# Dependencies
|
||||
node_modules
|
||||
|
||||
# Editor settings
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
.vscode
|
||||
.idea
|
||||
|
||||
# Logs
|
||||
*.log*
|
||||
|
||||
# Nitro
|
||||
.nitro
|
||||
|
||||
# System
|
||||
Icon
|
||||
.DS_Store
|
||||
|
||||
# Environment variables
|
||||
.env
|
204
app.vue
Normal file
204
app.vue
Normal file
|
@ -0,0 +1,204 @@
|
|||
<template>
|
||||
|
||||
<div>
|
||||
<NuxtPage />
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// HEAD
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
const route = useRoute();
|
||||
const pageTitle = route.meta.pageTitleChunk ? `Paul Nicoué | ${route.meta.pageTitleChunk}` : 'Paul Nicoué';
|
||||
const pageUrl = `https://paulnicoue.com${route.path}`;
|
||||
|
||||
useHead({
|
||||
title: pageTitle,
|
||||
meta: [
|
||||
/* Basic metadata */
|
||||
{charset: 'utf-8'},
|
||||
{name: 'viewport', content: 'width=device-width'},
|
||||
/* Name */
|
||||
{id: 'schema_name', itemprop: 'name', content: 'Paul Nicoué'},
|
||||
/* Description */
|
||||
{name: 'description', content: 'Intégrateur et développeur web.'},
|
||||
{id: 'schema_description', itemprop: 'description', content: 'Intégrateur et développeur web.'},
|
||||
/* Author */
|
||||
{name: 'author', content: 'Paul Nicoué'},
|
||||
/* Image */
|
||||
{id: 'schema_image', itemprop: 'image', content: '#'},
|
||||
/* Open Graph */
|
||||
{property: 'og:title', content: pageTitle},
|
||||
{property: 'og:description', content: 'Intégrateur et développeur web.'},
|
||||
{property: 'og:image', content: '#'},
|
||||
{property: 'og:image:width', content: '1200'},
|
||||
{property: 'og:image:height', content: '675'},
|
||||
{property: 'og:url', content: pageUrl},
|
||||
{property: 'og:type', content: 'website'},
|
||||
/* Twitter Card */
|
||||
{name: 'twitter:card', content: 'summary_large_image'},
|
||||
{name: 'twitter:title', content: 'Paul Nicoué'},
|
||||
{name: 'twitter:description', content: 'Intégrateur et développeur web.'},
|
||||
{name: 'twitter:image', content: '#'}
|
||||
],
|
||||
link: [
|
||||
/* Canonical URL */
|
||||
{rel: 'canonical', href: pageUrl},
|
||||
/* Favicon */
|
||||
{rel: 'icon', sizes: 'any', href: '#'},
|
||||
{rel: 'icon', type: 'image/svg+xml', href: '#'},
|
||||
{rel: 'apple-touch-icon', href: '#'},
|
||||
{rel: 'manifest', href: '#'}
|
||||
],
|
||||
style: [
|
||||
/* Schema */
|
||||
{itemscope: true, itemtype: 'https://schema.org/WebSite', itemref: 'schema_name schema_description schema_image'}
|
||||
],
|
||||
script: [
|
||||
/* Matomo tracking code */
|
||||
{children: `
|
||||
var _paq = window._paq = window._paq || [];
|
||||
_paq.push(["disableCookies"]);
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function() {
|
||||
var u="https://matomo.paulnicoue.com/";
|
||||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||||
_paq.push(['setSiteId', '4']);
|
||||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||||
})();
|
||||
`}
|
||||
]
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// MODULES
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@use 'minireset.css';
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// VARIABLES
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
:root {
|
||||
|
||||
// Fonts
|
||||
|
||||
--text-font-family: 'Nunito', Verdana, sans-serif;
|
||||
--title-font-family: 'Gloria Hallelujah', Verdana, sans-serif;
|
||||
--regular-font-weight: 400;
|
||||
--medium-font-weight: 500;
|
||||
--semi-bold-font-weight: 600;
|
||||
--bold-font-weight: 700;
|
||||
--text-font-size: 1rem;
|
||||
--text-line-height: calc(var(--text-font-size) * 1.2);
|
||||
--caption-font-size: 0.9rem;
|
||||
--caption-line-height: calc(var(--caption-font-size) * 1.2);
|
||||
--footnote-font-size: 0.8rem;
|
||||
--footnote-line-height: calc(var(--footnote-font-size) * 1.2);
|
||||
--h1-font-size: 1.6rem;
|
||||
--h1-line-height: calc(var(--h1-font-size) * 1.2);
|
||||
--h2-font-size: 1.4rem;
|
||||
--h2-line-height: calc(var(--h2-font-size) * 1.2);
|
||||
--h3-font-size: 1.2rem;
|
||||
--h3-line-height: calc(var(--h3-font-size) * 1.2);
|
||||
|
||||
// Dimensions
|
||||
|
||||
--icon-size: 2.5rem;
|
||||
|
||||
// Colors
|
||||
|
||||
--eerie-black: #212121;
|
||||
--emerald: #72C080;
|
||||
--granny-smith-apple: #A3F3B0;
|
||||
--middle-green: #428F53;
|
||||
|
||||
}
|
||||
|
||||
// Media queries
|
||||
|
||||
$tablet-media-query: 48rem;
|
||||
$desktop-media-query: 62rem;
|
||||
|
||||
@media screen and (min-width: $tablet-media-query) {
|
||||
|
||||
:root {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// GENERALITIES
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Fonts and colors
|
||||
|
||||
body {
|
||||
font-family: var(--text-font-family);
|
||||
font-size: var(--text-font-size);
|
||||
line-height: var(--text-line-height);
|
||||
color: white;
|
||||
background-color: var(--eerie-black);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-family: var(--title-font-family);
|
||||
font-size: var(--h1-font-size);
|
||||
line-height: var(--h1-line-height);
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-family: var(--text-font-family);
|
||||
font-size: var(--h2-font-size);
|
||||
line-height: var(--h2-line-height);
|
||||
margin: 0 0 4rem 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-family: var(--text-font-family);
|
||||
font-size: var(--h3-font-size);
|
||||
line-height: var(--h3-line-height);
|
||||
margin: 2rem 0 1rem 0;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: var(--bold-font-weight);
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
// Link style
|
||||
|
||||
a {
|
||||
color: white;
|
||||
text-decoration: underline var(--emerald);
|
||||
border-radius: 2px;
|
||||
transition: color 200ms ease-in-out;
|
||||
|
||||
&:hover,
|
||||
&:focus,
|
||||
&:active {
|
||||
color: var(--emerald);
|
||||
}
|
||||
|
||||
&:focus-visible {
|
||||
outline: 1px dashed var(--emerald);
|
||||
outline-offset: 2px;
|
||||
animation: expand-outline 200ms ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
14
components/MainTitle.vue
Normal file
14
components/MainTitle.vue
Normal file
|
@ -0,0 +1,14 @@
|
|||
<template>
|
||||
|
||||
<h1>Paul Nicoué, intégrateur et développeur web</h1>
|
||||
|
||||
</template>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
h1 {
|
||||
color: var(--emerald);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
</style>
|
8
nuxt.config.ts
Normal file
8
nuxt.config.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
// https://v3.nuxtjs.org/api/configuration/nuxt.config
|
||||
export default defineNuxtConfig({
|
||||
postcss: {
|
||||
plugins: {
|
||||
'autoprefixer': {}
|
||||
}
|
||||
}
|
||||
})
|
13193
package-lock.json
generated
Normal file
13193
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
22
package.json
Normal file
22
package.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Paul Nicoué",
|
||||
"private": true,
|
||||
"browserslist": [
|
||||
"> 0.5%",
|
||||
"last 4 versions",
|
||||
"Firefox ESR",
|
||||
"not dead"
|
||||
],
|
||||
"devDependencies": {
|
||||
"minireset.css": "^0.0.7",
|
||||
"nuxt": "^3.0.0-rc.11"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "nuxt build",
|
||||
"dev": "nuxt dev",
|
||||
"generate": "nuxt generate",
|
||||
"preview": "nuxt preview",
|
||||
"postinstall": "nuxt prepare",
|
||||
"start": "nuxt start"
|
||||
}
|
||||
}
|
19
pages/index.vue
Normal file
19
pages/index.vue
Normal file
|
@ -0,0 +1,19 @@
|
|||
<template>
|
||||
|
||||
<div>
|
||||
<MainTitle></MainTitle>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// HEAD
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
definePageMeta({
|
||||
pageTitleChunk: null
|
||||
})
|
||||
|
||||
</script>
|
4
tsconfig.json
Normal file
4
tsconfig.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
// https://v3.nuxtjs.org/concepts/typescript
|
||||
"extends": "./.nuxt/tsconfig.json"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue