update speed
@@ -8,6 +8,7 @@
|
|||||||
"name": "fiveq-website",
|
"name": "fiveq-website",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@fontsource/manrope": "^5.2.8",
|
||||||
"@iconify-json/lucide": "^1.2.32",
|
"@iconify-json/lucide": "^1.2.32",
|
||||||
"astro": "^5.7.10",
|
"astro": "^5.7.10",
|
||||||
"astro-icon": "^1.1.5"
|
"astro-icon": "^1.1.5"
|
||||||
@@ -590,6 +591,15 @@
|
|||||||
"node": ">=18"
|
"node": ">=18"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@fontsource/manrope": {
|
||||||
|
"version": "5.2.8",
|
||||||
|
"resolved": "https://registry.npmmirror.com/@fontsource/manrope/-/manrope-5.2.8.tgz",
|
||||||
|
"integrity": "sha512-gJHJmcuUk7qWcNCfcAri/DJQtXtBYqi9yKratr4jXhSo0I3xUtNNKI+igQIcw5c+m95g0vounk8ZnX/kb8o0TA==",
|
||||||
|
"license": "OFL-1.1",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ayuhito"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@iconify-json/lucide": {
|
"node_modules/@iconify-json/lucide": {
|
||||||
"version": "1.2.101",
|
"version": "1.2.101",
|
||||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@iconify-json/lucide/-/lucide-1.2.101.tgz",
|
"resolved": "https://mirrors.cloud.tencent.com/npm/@iconify-json/lucide/-/lucide-1.2.101.tgz",
|
||||||
|
|||||||
@@ -8,8 +8,9 @@
|
|||||||
"preview": "astro preview"
|
"preview": "astro preview"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@fontsource/manrope": "^5.2.8",
|
||||||
|
"@iconify-json/lucide": "^1.2.32",
|
||||||
"astro": "^5.7.10",
|
"astro": "^5.7.10",
|
||||||
"astro-icon": "^1.1.5",
|
"astro-icon": "^1.1.5"
|
||||||
"@iconify-json/lucide": "^1.2.32"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# Cache static assets for 1 year (content hashed filenames ensure cache busting)
|
||||||
|
/_astro/*
|
||||||
|
Cache-Control: public, max-age=31536000, immutable
|
||||||
|
|
||||||
|
# Fonts — cache for 1 year
|
||||||
|
/fonts/*
|
||||||
|
Cache-Control: public, max-age=31536000, immutable
|
||||||
|
|
||||||
|
# Images — cache for 1 year
|
||||||
|
/images/*
|
||||||
|
Cache-Control: public, max-age=31536000, immutable
|
||||||
|
|
||||||
|
# HTML pages — no cache (always fetch latest)
|
||||||
|
/index.html
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/about/*
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/curriculum/*
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/faculty/*
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/teaching-philosophy/*
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/en/*
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/ja/*
|
||||||
|
Cache-Control: no-cache
|
||||||
|
|
||||||
|
/fr/*
|
||||||
|
Cache-Control: no-cache
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
/* Self-hosted Manrope font — eliminates slow Google Fonts CDN dependency */
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-400-normal.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-ext-400-normal.woff2') format('woff2');
|
||||||
|
font-weight: 400;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-600-normal.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-ext-600-normal.woff2') format('woff2');
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-700-normal.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-ext-700-normal.woff2') format('woff2');
|
||||||
|
font-weight: 700;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-800-normal.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Manrope';
|
||||||
|
src: url('/fonts/manrope-latin-ext-800-normal.woff2') format('woff2');
|
||||||
|
font-weight: 800;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: swap;
|
||||||
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 219 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 954 B |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 8.4 KiB |
@@ -28,12 +28,7 @@ const htmlLangAttr = htmlLang[lang];
|
|||||||
<link rel="alternate" hreflang={htmlLang[l]} href={hrefFor(l, currentSegment)} />
|
<link rel="alternate" hreflang={htmlLang[l]} href={hrefFor(l, currentSegment)} />
|
||||||
))}
|
))}
|
||||||
<link rel="alternate" hreflang="x-default" href={hrefFor(DEFAULT_LANG, currentSegment)} />
|
<link rel="alternate" hreflang="x-default" href={hrefFor(DEFAULT_LANG, currentSegment)} />
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
<link rel="stylesheet" href="/fonts/manrope.css" />
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
||||||
<link
|
|
||||||
href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&display=swap"
|
|
||||||
rel="stylesheet"
|
|
||||||
/>
|
|
||||||
<script is:inline>
|
<script is:inline>
|
||||||
(function () {
|
(function () {
|
||||||
try {
|
try {
|
||||||
|
|||||||