fmt and ci
Deploy website / deploy (push) Failing after 28s

This commit is contained in:
2026-08-25 17:59:45 -04:00
parent 7e9e744f0d
commit aacfd33c62
11 changed files with 1005 additions and 835 deletions
+44 -41
View File
@@ -1,48 +1,48 @@
import fs from 'node:fs';
import { spawn } from 'node:child_process';
import path from 'node:path';
import { defineConfig } from 'vite';
import fs from 'node:fs'
import { spawn } from 'node:child_process'
import path from 'node:path'
import { defineConfig } from 'vite'
function generatedPages(directory) {
const inputs = {};
const inputs = {}
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
const filePath = path.join(directory, entry.name);
if (entry.isDirectory()) Object.assign(inputs, generatedPages(filePath));
const filePath = path.join(directory, entry.name)
if (entry.isDirectory()) Object.assign(inputs, generatedPages(filePath))
else if (entry.name === 'index.html') {
const relativePath = path.relative('.generated', filePath);
const key = relativePath.endsWith('/index.html')
? relativePath.slice(0, -'/index.html'.length)
: relativePath;
inputs[key] = path.resolve(filePath);
const relativePath = path.relative('.generated', filePath)
const key = relativePath.endsWith('/index.html') ? relativePath.slice(0, -'/index.html'.length) : relativePath
inputs[key] = path.resolve(filePath)
} else if (entry.name === '404.html' && directory === '.generated') {
inputs['404'] = path.resolve(filePath)
}
}
return inputs;
return inputs
}
function contentGenerator() {
let timer;
let generator;
let rerun = false;
let timer
let generator
let rerun = false
const generate = (server) => {
if (generator) {
rerun = true;
return;
rerun = true
return
}
generator = spawn(process.execPath, ['generator.js'], { stdio: 'inherit' });
generator = spawn(process.execPath, ['generator.js'], { stdio: 'inherit' })
generator.on('error', (error) => {
console.error(`Content generation failed: ${error.message}`);
});
console.error(`Content generation failed: ${error.message}`)
})
generator.on('close', (code) => {
generator = undefined;
if (code === 0) server.ws.send({ type: 'full-reload' });
generator = undefined
if (code === 0) server.ws.send({ type: 'full-reload' })
if (rerun) {
rerun = false;
generate(server);
rerun = false
generate(server)
}
});
};
})
}
return {
name: 'content-generator',
@@ -55,22 +55,25 @@ function contentGenerator() {
path.resolve('external.json'),
path.resolve('generator.js'),
path.resolve('html.js'),
];
server.watcher.add(sources);
]
server.watcher.add(sources)
server.watcher.on('all', (event, file) => {
if (!['add', 'change', 'unlink'].includes(event)) return;
const isMarkdown = file.endsWith('.md') && (file.startsWith(`${path.resolve('notes')}/`) || file.startsWith(`${path.resolve('posts')}/`));
const isExternal = file === path.resolve('external.json');
const isStandaloneMarkdown = file === resolve('README.md') || file === path.resolve('THIRD_PARTY_LICENSES.md');
const isGenerator = file === path.resolve('generator.js') || file === path.resolve('html.js');
if (!isMarkdown && !isStandaloneMarkdown && !isExternal && !isGenerator) return;
clearTimeout(timer);
if (!['add', 'change', 'unlink'].includes(event)) return
const isMarkdown =
file.endsWith('.md') &&
(file.startsWith(`${path.resolve('notes')}/`) || file.startsWith(`${path.resolve('posts')}/`))
const isExternal = file === path.resolve('external.json')
const isStandaloneMarkdown =
file === path.resolve('README.md') || file === path.resolve('THIRD_PARTY_LICENSES.md')
const isGenerator = file === path.resolve('generator.js') || file === path.resolve('html.js')
if (!isMarkdown && !isStandaloneMarkdown && !isExternal && !isGenerator) return
clearTimeout(timer)
timer = setTimeout(() => {
generate(server);
}, 100);
});
generate(server)
}, 100)
})
},
};
}
}
export default defineConfig({
@@ -94,4 +97,4 @@ export default defineConfig({
input: generatedPages('.generated'),
},
},
});
})