diff --git a/app/buildPublicUrl.ts b/app/buildPublicUrl.ts
index 405d105..b6d9667 100644
--- a/app/buildPublicUrl.ts
+++ b/app/buildPublicUrl.ts
@@ -1,11 +1,8 @@
-import { config } from "@/config";
+import type { PageContext } from "vike/types";
-export function buildPublicUrl(resource: string) {
- const { BASE_URL } = config;
+export function buildPublicUrl(pageContext: PageContext, resource: string) {
+ const { baseUrl } = pageContext;
+ const url = new URL(resource, baseUrl).toString();
- if (BASE_URL) {
- return new URL(resource, BASE_URL).toString();
- }
-
- return resource;
+ return url;
}
diff --git a/app/fastify-entry.ts b/app/fastify-entry.ts
index eac6897..56a66ba 100755
--- a/app/fastify-entry.ts
+++ b/app/fastify-entry.ts
@@ -18,6 +18,7 @@ const root = __dirname;
declare global {
namespace Vike {
interface PageContext {
+ baseUrl: string;
exports: {
frontmatter?: Partial<{
title: string;
diff --git a/app/pages/+config.ts b/app/pages/+config.ts
index 2884778..18b2a09 100755
--- a/app/pages/+config.ts
+++ b/app/pages/+config.ts
@@ -1,6 +1,5 @@
import type { Config } from "vike/types";
-import { buildPublicUrl } from "@/buildPublicUrl";
import Layout from "@/layouts/LayoutDefault";
import vikeSolid from "vike-solid/config";
@@ -26,8 +25,6 @@ export default {
class: "flex min-h-full bg-white",
},
- image: buildPublicUrl("/opengraph/default.png"),
-
prerender: true,
prefetchStaticAssets: "hover",
diff --git a/app/pages/+image.ts b/app/pages/+image.ts
new file mode 100644
index 0000000..1502ea5
--- /dev/null
+++ b/app/pages/+image.ts
@@ -0,0 +1,7 @@
+import type { PageContext } from "vike/types";
+
+import { buildPublicUrl } from "@/buildPublicUrl";
+
+export const image = (pageContext: PageContext) => {
+ return buildPublicUrl(pageContext, "/opengraph/default.png");
+};
diff --git a/app/pages/docs/+Page.mdx b/app/pages/docs/+Page.mdx
new file mode 100644
index 0000000..d28a7a8
--- /dev/null
+++ b/app/pages/docs/+Page.mdx
@@ -0,0 +1,50 @@
+---
+title: Documentations du Memento
+description: Plonge toi dans une documentation synthétique et concise, conçue pour les développeurs ou passionnés de l'information en quête de savoir !
+tags: []
+---
+
+import { QuickLink, QuickLinks } from "@/components/QuickLinks";
+
+## Documentations rédigées
+
+
+
+
+
+
+
+## Documentations en cours de rédaction
+
+
+
+
+
+## Documentations à venir
+
+- HTML
+- CSS
+- JavaScript
+- PHP
+- SQL
+- Node.js
+- Express.js
+- UML
+- Maquettage
+
+Et bien d'autres encore ! 😄
diff --git a/app/server/vike-handler.ts b/app/server/vike-handler.ts
index a0ff858..f52af21 100755
--- a/app/server/vike-handler.ts
+++ b/app/server/vike-handler.ts
@@ -1,18 +1,28 @@
///
-import { renderPage } from "vike/server";
+
// TODO: stop using universal-middleware and directly integrate server middlewares instead and/or use vike-server https://vike.dev/server. (Bati generates boilerplates that use universal-middleware https://github.com/magne4000/universal-middleware to make Bati's internal logic easier. This is temporary and will be removed soon.)
import type { Get, UniversalHandler } from "@universal-middleware/core";
-export const vikeHandler: Get<[], UniversalHandler> = () => async (request, context, runtime) => {
- const pageContextInit = { ...context, ...runtime, urlOriginal: request.url, headersOriginal: request.headers };
- const pageContext = await renderPage(pageContextInit);
- const response = pageContext.httpResponse;
+import { renderPage } from "vike/server";
+import { config } from "@/config";
- const { readable, writable } = new TransformStream();
- response.pipe(writable);
+export const vikeHandler: Get<[], UniversalHandler> =
+ () => async (request, context, runtime) => {
+ const pageContextInit = {
+ ...context,
+ ...runtime,
+ urlOriginal: request.url,
+ headersOriginal: request.headers,
+ baseUrl: config.BASE_URL,
+ };
+ const pageContext = await renderPage(pageContextInit);
+ const response = pageContext.httpResponse;
- return new Response(readable, {
- status: response.statusCode,
- headers: response.headers,
- });
-};
+ const { readable, writable } = new TransformStream();
+ response.pipe(writable);
+
+ return new Response(readable, {
+ status: response.statusCode,
+ headers: response.headers,
+ });
+ };