feat: better favico, move some code to their own file, add repo link
Signed-off-by: Lucien Cartier-Tilet <lucien@phundrak.com>
@ -1,155 +1,25 @@
|
||||
import { defineUserConfig, defaultTheme } from 'vuepress';
|
||||
import { removeHtmlExtensionPlugin } from 'vuepress-plugin-remove-html-extension';
|
||||
import head from './head';
|
||||
import locales from './locales';
|
||||
import themeLocales from './themeLocales';
|
||||
|
||||
export default defineUserConfig({
|
||||
lang: 'fr-FR',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'Site web personnel de Lucien Cartier-Tilet',
|
||||
lastUpdated: true,
|
||||
head: [
|
||||
[
|
||||
'link',
|
||||
{
|
||||
rel: 'icon',
|
||||
href: 'https://cdn.phundrak.com/img/mahakala-128x128.png',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
name: 'author',
|
||||
content: 'Lucien Cartier-Tilet',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
property: 'og:image',
|
||||
content: 'https://cdn.phundrak.com/img/rich_preview.png',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
property: 'org:title',
|
||||
content: 'Lucien Cartier-Tilet',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
property: 'og:description',
|
||||
content: 'Site web personnel de Lucien Cartier-Tilet',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
name: 'twitter:card',
|
||||
content: 'summary',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
name: 'twitter:site',
|
||||
content: '@phundrak',
|
||||
},
|
||||
],
|
||||
[
|
||||
'meta',
|
||||
{
|
||||
name: 'twitter:creator',
|
||||
content: '@phundrak',
|
||||
},
|
||||
],
|
||||
],
|
||||
head: head,
|
||||
markdown: {
|
||||
html: true,
|
||||
linkify: true,
|
||||
typographer: true,
|
||||
},
|
||||
plugins: [removeHtmlExtensionPlugin()],
|
||||
locales: {
|
||||
'/': {
|
||||
lang: 'fr-FR',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'Site web personnel de Lucien Cartier-Tilet',
|
||||
},
|
||||
'/en/': {
|
||||
lang: 'en-US',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'Personal website of Lucien Cartier-Tilet',
|
||||
},
|
||||
'/lfn/': {
|
||||
lang: 'lfn',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'loca ueb de Lucien Cartier-Tilet',
|
||||
},
|
||||
},
|
||||
locales: locales,
|
||||
theme: defaultTheme({
|
||||
contributors: false,
|
||||
locales: {
|
||||
'/': {
|
||||
selectLanguageName: 'Français',
|
||||
tip: 'nota bene',
|
||||
warning: 'attention',
|
||||
sidebar: [
|
||||
'/README.md',
|
||||
'/about.md',
|
||||
'/resume.md',
|
||||
'/projects.md',
|
||||
'/conlanging.md',
|
||||
'/vocal-synthesis.md',
|
||||
],
|
||||
notFound: [
|
||||
'C’est bien vide ici',
|
||||
'Pourquoi sommes-nous ici?',
|
||||
'Erreur 404',
|
||||
'Le lien ne semble pas être correct',
|
||||
],
|
||||
backToHome: 'Retour accueil',
|
||||
openInNewWindow: 'Ouvrir dans une nouvelle fenêtre',
|
||||
toggleColorMode: 'Changer de thème',
|
||||
toggleSidebar: 'Barre latérale',
|
||||
lastUpdatedText: 'Dernière mise à jour',
|
||||
},
|
||||
'/lfn/': {
|
||||
selectLanguageName: 'Elefen',
|
||||
tip: 'avisa',
|
||||
warning: 'averti',
|
||||
danger: 'peril',
|
||||
sidebar: [
|
||||
'/lfn/index.md',
|
||||
'/lfn/about.md',
|
||||
'/lfn/resume.md',
|
||||
'/lfn/projects.md',
|
||||
'/lfn/conlanging.md',
|
||||
'/lfn/vocal-synthesis.md',
|
||||
],
|
||||
notFound: [
|
||||
'Ce? Se no ave no cosa asi',
|
||||
'A do vade tu?',
|
||||
'Era 404',
|
||||
'La lia no es coreta',
|
||||
],
|
||||
backToHome: 'reversa a la paja prima',
|
||||
openInNewWindow: 'abri en un nova fenetra',
|
||||
toggleColorMode: 'cambia la colores',
|
||||
toggleSidebar: 'bara ladal',
|
||||
lastUpdatedText: 'Ultima refresci',
|
||||
},
|
||||
'/en/': {
|
||||
selectLanguageName: 'English',
|
||||
sidebar: [
|
||||
'/en/index.md',
|
||||
'/en/about.md',
|
||||
'/en/resume.md',
|
||||
'/en/projects.md',
|
||||
'/en/conlanging.md',
|
||||
'/en/vocal-synthesis.md',
|
||||
],
|
||||
},
|
||||
},
|
||||
locales: themeLocales,
|
||||
repo: 'https://labs.phundrak.com/phundrak/phundrak.com',
|
||||
}),
|
||||
});
|
||||
|
128
.vuepress/head.ts
Normal file
@ -0,0 +1,128 @@
|
||||
interface SimplifiedHeader {
|
||||
tag: string;
|
||||
content: [any];
|
||||
}
|
||||
|
||||
const simplifiedHead = [
|
||||
{
|
||||
tag: 'meta',
|
||||
content: [
|
||||
{
|
||||
name: 'author',
|
||||
content: 'Lucien Cartier-Tilet',
|
||||
},
|
||||
{
|
||||
property: 'og:image',
|
||||
content: 'https://cdn.phundrak.com/img/rich_preview.png',
|
||||
},
|
||||
{
|
||||
property: 'org:title',
|
||||
content: 'Lucien Cartier-Tilet',
|
||||
},
|
||||
{
|
||||
property: 'og:description',
|
||||
content: 'Site web personnel de Lucien Cartier-Tilet',
|
||||
},
|
||||
{
|
||||
name: 'twitter:card',
|
||||
content: 'summary',
|
||||
},
|
||||
{
|
||||
name: 'twitter:site',
|
||||
content: '@phundrak',
|
||||
},
|
||||
{
|
||||
name: 'twitter:creator',
|
||||
content: '@phundrak',
|
||||
},
|
||||
{ name: 'msapplication-TileColor', content: '#3b4252' },
|
||||
{ name: 'msapplication-TileImage', content: '/ms-icon-144x144.png' },
|
||||
{ name: 'theme-color', content: '#3b4252' },
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: 'link',
|
||||
content: [
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '57x57',
|
||||
href: '/apple-icon-57x57.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '60x60',
|
||||
href: '/apple-icon-60x60.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '72x72',
|
||||
href: '/apple-icon-72x72.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '76x76',
|
||||
href: '/apple-icon-76x76.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '114x114',
|
||||
href: '/apple-icon-114x114.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '120x120',
|
||||
href: '/apple-icon-120x120.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '144x144',
|
||||
href: '/apple-icon-144x144.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '152x152',
|
||||
href: '/apple-icon-152x152.png',
|
||||
},
|
||||
{
|
||||
rel: 'apple-touch-icon',
|
||||
sizes: '180x180',
|
||||
href: '/apple-icon-180x180.png',
|
||||
},
|
||||
{
|
||||
rel: 'icon',
|
||||
type: 'image/png',
|
||||
sizes: '192x192',
|
||||
href: '/android-icon-192x192.png',
|
||||
},
|
||||
{
|
||||
rel: 'icon',
|
||||
type: 'image/png',
|
||||
sizes: '32x32',
|
||||
href: '/favicon-32x32.png',
|
||||
},
|
||||
{
|
||||
rel: 'icon',
|
||||
type: 'image/png',
|
||||
sizes: '96x96',
|
||||
href: '/favicon-96x96.png',
|
||||
},
|
||||
{
|
||||
rel: 'icon',
|
||||
type: 'image/png',
|
||||
sizes: '16x16',
|
||||
href: '/favicon-16x16.png',
|
||||
},
|
||||
{ rel: 'manifest', href: '/manifest.json' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
let head = [];
|
||||
simplifiedHead.map((tag: SimplifiedHeader) => {
|
||||
let tagName = tag.tag;
|
||||
tag.content.forEach((element) => {
|
||||
head.push([tagName, element]);
|
||||
});
|
||||
});
|
||||
|
||||
export default head;
|
19
.vuepress/locales.ts
Normal file
@ -0,0 +1,19 @@
|
||||
const locales = {
|
||||
'/': {
|
||||
lang: 'fr-FR',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'Site web personnel de Lucien Cartier-Tilet',
|
||||
},
|
||||
'/en/': {
|
||||
lang: 'en-US',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'Personal website of Lucien Cartier-Tilet',
|
||||
},
|
||||
'/lfn/': {
|
||||
lang: 'lfn',
|
||||
title: 'Lucien Cartier-Tilet',
|
||||
description: 'loca ueb de Lucien Cartier-Tilet',
|
||||
},
|
||||
};
|
||||
|
||||
export default locales;
|
BIN
.vuepress/public/android-icon-144x144.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
.vuepress/public/android-icon-192x192.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
.vuepress/public/android-icon-36x36.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
.vuepress/public/android-icon-48x48.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
.vuepress/public/android-icon-72x72.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
.vuepress/public/android-icon-96x96.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
.vuepress/public/apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
.vuepress/public/apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
.vuepress/public/apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
.vuepress/public/apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
.vuepress/public/apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
.vuepress/public/apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
.vuepress/public/apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
.vuepress/public/apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
.vuepress/public/apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
.vuepress/public/apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
.vuepress/public/apple-icon.png
Normal file
After Width: | Height: | Size: 46 KiB |
2
.vuepress/public/browserconfig.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#eceff4</TileColor></tile></msapplication></browserconfig>
|
BIN
.vuepress/public/favicon-16x16.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
.vuepress/public/favicon-32x32.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
.vuepress/public/favicon-96x96.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
.vuepress/public/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
.vuepress/public/ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
.vuepress/public/ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
.vuepress/public/ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
.vuepress/public/ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
64
.vuepress/themeLocales.ts
Normal file
@ -0,0 +1,64 @@
|
||||
const themeLocales = {
|
||||
'/': {
|
||||
selectLanguageName: 'Français',
|
||||
tip: 'nota bene',
|
||||
warning: 'attention',
|
||||
sidebar: [
|
||||
'/README.md',
|
||||
'/about.md',
|
||||
'/resume.md',
|
||||
'/projects.md',
|
||||
'/conlanging.md',
|
||||
'/vocal-synthesis.md',
|
||||
],
|
||||
notFound: [
|
||||
'C’est bien vide ici',
|
||||
'Pourquoi sommes-nous ici?',
|
||||
'Erreur 404',
|
||||
'Le lien ne semble pas être correct',
|
||||
],
|
||||
backToHome: 'Retour accueil',
|
||||
openInNewWindow: 'Ouvrir dans une nouvelle fenêtre',
|
||||
toggleColorMode: 'Changer de thème',
|
||||
toggleSidebar: 'Barre latérale',
|
||||
lastUpdatedText: 'Dernière mise à jour',
|
||||
},
|
||||
'/lfn/': {
|
||||
selectLanguageName: 'Elefen',
|
||||
tip: 'avisa',
|
||||
warning: 'averti',
|
||||
danger: 'peril',
|
||||
sidebar: [
|
||||
'/lfn/index.md',
|
||||
'/lfn/about.md',
|
||||
'/lfn/resume.md',
|
||||
'/lfn/projects.md',
|
||||
'/lfn/conlanging.md',
|
||||
'/lfn/vocal-synthesis.md',
|
||||
],
|
||||
notFound: [
|
||||
'Ce? Se no ave no cosa asi',
|
||||
'A do vade tu?',
|
||||
'Era 404',
|
||||
'La lia no es coreta',
|
||||
],
|
||||
backToHome: 'reversa a la paja prima',
|
||||
openInNewWindow: 'abri en un nova fenetra',
|
||||
toggleColorMode: 'cambia la colores',
|
||||
toggleSidebar: 'bara ladal',
|
||||
lastUpdatedText: 'Ultima refresci',
|
||||
},
|
||||
'/en/': {
|
||||
selectLanguageName: 'English',
|
||||
sidebar: [
|
||||
'/en/index.md',
|
||||
'/en/about.md',
|
||||
'/en/resume.md',
|
||||
'/en/projects.md',
|
||||
'/en/conlanging.md',
|
||||
'/en/vocal-synthesis.md',
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
export default themeLocales;
|