This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<figure>
|
||||
<img :alt="alt" :src="src" />
|
||||
<figcaption><slot></slot></figcaption>
|
||||
</figure>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const props = defineProps<{
|
||||
src: string;
|
||||
alt?: string;
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<style>
|
||||
figcaption {
|
||||
text-align: center;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,33 @@
|
||||
// -*- mode: typescript; -*-
|
||||
import { defineConfig, HeadConfig } from 'vitepress';
|
||||
import appHead from './head';
|
||||
import { sidebar } from './sidebar';
|
||||
import { nav } from './nav';
|
||||
|
||||
export default defineConfig({
|
||||
title: "Phundrak's Conlangs",
|
||||
cleanUrls: true,
|
||||
description: 'Documentation of the constructed languages made by Phundrak',
|
||||
head: appHead as HeadConfig[],
|
||||
srcDir: './docs',
|
||||
themeConfig: {
|
||||
sidebar,
|
||||
nav,
|
||||
outline: {
|
||||
level: 'deep'
|
||||
},
|
||||
search: {
|
||||
provider: 'local'
|
||||
},
|
||||
},
|
||||
markdown: {
|
||||
image: {
|
||||
lazyLoading: true
|
||||
},
|
||||
linkify: true,
|
||||
typographer: true,
|
||||
headers: {
|
||||
level: [1, 2, 3, 4, 5]
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,79 @@
|
||||
interface Head {
|
||||
type?: 'image/png';
|
||||
async?: boolean,
|
||||
src?: string,
|
||||
'data-website-id'?: string
|
||||
}
|
||||
|
||||
interface Favicon extends Head {
|
||||
rel: 'apple-touch-icon' | 'icon' | 'manifest';
|
||||
href: string;
|
||||
sizes?: string;
|
||||
}
|
||||
|
||||
interface Meta extends Head {
|
||||
property?: string,
|
||||
name?: string,
|
||||
content: string
|
||||
}
|
||||
|
||||
const favicons: Favicon[] = [
|
||||
{ rel: 'apple-touch-icon', sizes: '57x57', href: '/img/meta/apple-icon-57x57.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '60x60', href: '/img/meta/apple-icon-60x60.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '72x72', href: '/img/meta/apple-icon-72x72.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '76x76', href: '/img/meta/apple-icon-76x76.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '114x114', href: '/img/meta/apple-icon-114x114.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '120x120', href: '/img/meta/apple-icon-120x120.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '144x144', href: '/img/meta/apple-icon-144x144.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '152x152', href: '/img/meta/apple-icon-152x152.png' },
|
||||
{ rel: 'apple-touch-icon', sizes: '180x180', href: '/img/meta/apple-icon-180x180.png' },
|
||||
{ rel: 'icon', type: 'image/png', sizes: '192x192', href: '/img/meta/android-icon-192x192.png' },
|
||||
{ rel: 'icon', type: 'image/png', sizes: '32x32', href: '/img/meta/favicon-32x32.png' },
|
||||
{ rel: 'icon', type: 'image/png', sizes: '96x96', href: '/img/meta/favicon-96x96.png' },
|
||||
{ rel: 'icon', type: 'image/png', sizes: '16x16', href: '/img/meta/favicon-16x16.png' },
|
||||
{ rel: 'manifest', href: '/img/meta/manifest.json' },
|
||||
];
|
||||
|
||||
const meta: Meta[] = [
|
||||
{
|
||||
name: 'author',
|
||||
content: 'Lucien Cartier-Tilet',
|
||||
},
|
||||
{
|
||||
property: 'og:image',
|
||||
content: 'https://cdn.phundrak.com/img/rich_preview.png',
|
||||
},
|
||||
{
|
||||
property: 'og:title',
|
||||
content: 'P’undrak’s Conlangs',
|
||||
},
|
||||
{
|
||||
property: 'og:description',
|
||||
content: 'Documentation of P’undrak’s constructed languages',
|
||||
},
|
||||
{
|
||||
name: 'fediverse:creator',
|
||||
content: '@phundrak@mastodon.phundrak.com',
|
||||
},
|
||||
{
|
||||
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' },
|
||||
|
||||
]
|
||||
|
||||
const appHead: (string | Head)[][] = favicons.map((head) => ['link', head])
|
||||
meta.map((item) => appHead.push(['meta', item]))
|
||||
|
||||
export default appHead;
|
||||
@@ -0,0 +1,8 @@
|
||||
import { DefaultTheme } from "vitepress";
|
||||
|
||||
export const nav: DefaultTheme.NavItem[] = [
|
||||
{ text: 'About', link: '/about' },
|
||||
{ text: 'Eittlandic', link: '/eittlandic/', activeMatch: '/eittlandic/*' },
|
||||
{ text: 'Proto-Ñyqy', link: '/proto-nyqy/', activeMatch: '/proto-nyqy/*' },
|
||||
{ text: 'Zikãti', link: '/zikãti' },
|
||||
]
|
||||
@@ -0,0 +1,22 @@
|
||||
import { DefaultTheme } from "vitepress";
|
||||
|
||||
export const sidebar: DefaultTheme.Sidebar = {
|
||||
'/eittlandic/': [
|
||||
{ text: 'Index', link: '/eittlandic/' },
|
||||
{ text: 'The Country', link: '/eittlandic/country' },
|
||||
{ text: 'Typological Outline', link: '/eittlandic/typology' },
|
||||
{ text: 'Phonetics & Translitteration', link: '/eittlandic/phonology' },
|
||||
{ text: 'Grammar', link: '/eittlandic/grammar' },
|
||||
{ text: 'Dictionary', link: '/eittlandic/dictionary' },
|
||||
{ text: 'Names & Places', link: '/eittlandic/names-and-places' },
|
||||
],
|
||||
'/proto-nyqy/': [
|
||||
{ text: 'Index', link: '/proto-nyqy/' },
|
||||
{ text: 'Introduction', link: '/proto-nyqy/introduction' },
|
||||
{ text: 'Culture of the Proto-Ñyqy people', link: '/proto-nyqy/culture-and-people' },
|
||||
{ text: 'Typological Outline', link: '/proto-nyqy/typology' },
|
||||
{ text: 'Phonetics & Phonology', link: '/proto-nyqy/phonology' },
|
||||
{ text: 'Syntax', link: '/proto-nyqy/syntax' },
|
||||
{ text: 'Dictionary', link: '/proto-nyqy/dictionary' },
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { Theme } from "vitepress";
|
||||
import DefaultTheme from "vitepress/theme";
|
||||
import ImgFigure from "../components/ImgFigure.vue";
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
enhanceApp({ app }) {
|
||||
app.component('ImgFigure', ImgFigure);
|
||||
}
|
||||
} satisfies Theme;
|
||||
Reference in New Issue
Block a user