diff --git a/.htmlvalidate.json b/.htmlvalidate.json
new file mode 100644
index 0000000..0abd136
--- /dev/null
+++ b/.htmlvalidate.json
@@ -0,0 +1,8 @@
+{
+ "extends": ["html-validate:recommended"],
+ "rules": {
+ "require-sri": "off",
+ "no-inline-style": "off",
+ "void-style": "off"
+ }
+}
diff --git a/astro.config.mjs b/astro.config.mjs
index 778e2c2..e1dbf77 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -4,9 +4,11 @@ import tailwind from '@astrojs/tailwind';
export default defineConfig({
site: 'https://www.cameleer.io',
output: 'static',
- trailingSlash: 'never',
+ trailingSlash: 'ignore',
build: {
- format: 'file',
+ // 'directory' outputs /index.html so extensionless URLs like /pricing
+ // resolve natively under Apache without MultiViews or rewrite rules.
+ format: 'directory',
assets: 'assets',
inlineStylesheets: 'auto',
},
diff --git a/linkinator.config.json b/linkinator.config.json
new file mode 100644
index 0000000..639a3df
--- /dev/null
+++ b/linkinator.config.json
@@ -0,0 +1,13 @@
+{
+ "recurse": true,
+ "silent": true,
+ "skip": [
+ "^https://auth\\.cameleer\\.io",
+ "^https://platform\\.cameleer\\.io",
+ "^https://www\\.cameleer\\.io",
+ "^mailto:",
+ "^https://ec\\.europa\\.eu"
+ ],
+ "retry": true,
+ "concurrency": 10
+}
diff --git a/package.json b/package.json
index 16968a2..1841b82 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"astro": "astro",
"test": "vitest run",
"test:watch": "vitest",
- "lint:html": "html-validate 'dist/**/*.html'",
+ "lint:html": "html-validate \"dist/**/*.html\"",
"lint:links": "linkinator dist --recurse --silent",
"lh": "lhci autorun"
},
diff --git a/src/components/SiteFooter.astro b/src/components/SiteFooter.astro
index 78fd19e..1b56b0d 100644
--- a/src/components/SiteFooter.astro
+++ b/src/components/SiteFooter.astro
@@ -14,7 +14,7 @@ const year = new Date().getFullYear();
© {year} Cameleer
-