Skip to content

Commit da73f2b

Browse files
committed
fix: update project loading logic to skip zip files in projects directory, explicit generation of routes (to avoid 404 errors on build)
1 parent 25b179b commit da73f2b

3 files changed

Lines changed: 51 additions & 27 deletions

File tree

src/lib/projects.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export async function loadProjects() {
1212
const projects = [];
1313

1414
for (const folder of projectFolders) {
15-
if (folder.startsWith('.')) continue;
15+
if (folder.startsWith('.') || folder.endsWith('.zip')) continue;
1616

1717
const projectPath = join(projectsPath, folder);
1818
const indexPath = join(projectPath, 'index.md');

src/routes/+page.server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ export async function load() {
2525
const projects = [];
2626

2727
for (const folder of projectFolders) {
28-
// Skip hidden files and .DS_Store
29-
if (folder.startsWith('.')) continue;
28+
// Skip hidden files, .DS_Store, and zip files
29+
if (folder.startsWith('.') || folder.endsWith('.zip')) continue;
3030
const projectPath = join(projectsPath, folder);
3131
const indexPath = join(projectPath, 'index.md');
3232

svelte.config.js

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,53 @@
11
import adapter from '@sveltejs/adapter-static';
2+
import { readdir } from 'fs/promises';
3+
import { join } from 'path';
24

3-
/** @type {import('@sveltejs/kit').Config} */
4-
const config = {
5-
kit: {
6-
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
7-
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
8-
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
9-
adapter: adapter({
10-
pages: 'build',
11-
assets: 'build',
12-
fallback: undefined,
13-
precompress: false,
14-
strict: true
15-
}),
16-
paths: {
17-
base: process.env.CUSTOM_DOMAIN
18-
? ''
19-
: process.env.NODE_ENV === 'production'
20-
? '/microfolio'
21-
: ''
22-
},
23-
prerender: {
24-
handleHttpError: 'warn'
5+
async function createConfig() {
6+
const entries = [
7+
'/',
8+
'/projects',
9+
'/list',
10+
'/map',
11+
'/about'
12+
];
13+
14+
try {
15+
const projectsPath = join(process.cwd(), 'content/projects');
16+
const projectFolders = await readdir(projectsPath);
17+
18+
for (const folder of projectFolders) {
19+
if (folder.startsWith('.') || folder.endsWith('.zip')) continue;
20+
entries.push(`/projects/${folder}`);
2521
}
22+
23+
console.log(`Generated ${entries.length} prerender entries`);
24+
} catch (error) {
25+
console.error('Error generating entries:', error);
2626
}
27-
};
2827

29-
export default config;
28+
/** @type {import('@sveltejs/kit').Config} */
29+
return {
30+
kit: {
31+
adapter: adapter({
32+
pages: 'build',
33+
assets: 'build',
34+
fallback: undefined,
35+
precompress: false,
36+
strict: true
37+
}),
38+
paths: {
39+
base: process.env.CUSTOM_DOMAIN
40+
? ''
41+
: process.env.NODE_ENV === 'production'
42+
? '/microfolio'
43+
: ''
44+
},
45+
prerender: {
46+
handleHttpError: 'warn',
47+
entries
48+
}
49+
}
50+
};
51+
}
52+
53+
export default await createConfig();

0 commit comments

Comments
 (0)