feat(app): add prerender, self-hosted fonts and privacy page

Fonts come from npm, not Google, so no third-party font requests.
Pages are prerendered at build time; browser-only code is guarded.
nginx serves per-route HTML, a real 404 and gzip.
This commit is contained in:
lobo committed 2026-10-20 15:43:31 +02:00
1 parent 57f861510e
commit 54b93055ba
42 files changed
+544 -88

No files matched your search

+6 -2
View File
@@ -1,4 +1,5 @@
import { Component, computed, inject, CUSTOM_ELEMENTS_SCHEMA, OnDestroy, OnInit } from '@angular/core';
import { Component, computed, inject, CUSTOM_ELEMENTS_SCHEMA, OnDestroy, OnInit, PLATFORM_ID } from '@angular/core';
import { isPlatformBrowser } from '@angular/common';
import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from "rxjs";
import { MatCardModule } from "@angular/material/card";
@@ -49,6 +50,7 @@ export interface Projects {
export class ProjectsComponent implements OnInit, OnDestroy {
private readonly route = inject(ActivatedRoute);
private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
private readonly dialog = inject(MatDialog);
private readonly router = inject(Router);
private queryParamSub: Subscription | undefined;
@@ -283,7 +285,9 @@ export class ProjectsComponent implements OnInit, OnDestroy {
}
ngOnInit(): void {
window.scrollTo({ top: 0, behavior: 'smooth' });
if (this.isBrowser) {
window.scrollTo({ top: 0, behavior: 'smooth' });
}
setTimeout(() => { this.dialogOpenFunction(); }, 10);
}