mirror of
https://github.com/CyberAlbSecOP/Awesome_GPT_Super_Prompting.git
synced 2026-02-12 17:02:44 +00:00
82 lines
3.0 KiB
JavaScript
82 lines
3.0 KiB
JavaScript
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
function getAllMarkdownFiles(dirPath, arrayOfFiles = []) {
|
|
try {
|
|
const files = fs.readdirSync(dirPath);
|
|
|
|
files.forEach(file => {
|
|
const fullPath = path.join(dirPath, file);
|
|
|
|
try {
|
|
const stat = fs.statSync(fullPath);
|
|
|
|
if (stat.isDirectory()) {
|
|
// Skip hidden directories and node_modules
|
|
if (!file.startsWith('.') && file !== 'node_modules') {
|
|
getAllMarkdownFiles(fullPath, arrayOfFiles);
|
|
}
|
|
} else if (file.endsWith('.md')) {
|
|
const relativePath = path.relative('.', fullPath).replace(/\\/g, '/');
|
|
let folderName = path.dirname(relativePath);
|
|
|
|
// Clean up folder name
|
|
if (folderName === '.') {
|
|
folderName = 'Root';
|
|
} else {
|
|
folderName = folderName.replace(/\\/g, '/');
|
|
}
|
|
|
|
arrayOfFiles.push({
|
|
name: file,
|
|
path: fullPath,
|
|
relativePath: relativePath,
|
|
folder: folderName,
|
|
size: stat.size,
|
|
type: 'md',
|
|
lastModified: stat.mtime.toISOString()
|
|
});
|
|
}
|
|
} catch (error) {
|
|
console.error(`Error processing ${fullPath}:`, error.message);
|
|
}
|
|
});
|
|
} catch (error) {
|
|
console.error(`Error reading directory ${dirPath}:`, error.message);
|
|
}
|
|
|
|
return arrayOfFiles;
|
|
}
|
|
|
|
// Generate files.json
|
|
const markdownFiles = getAllMarkdownFiles('.');
|
|
fs.writeFileSync('files.json', JSON.stringify(markdownFiles, null, 2));
|
|
|
|
// Generate content files
|
|
const contentDir = 'content';
|
|
if (!fs.existsSync(contentDir)) {
|
|
fs.mkdirSync(contentDir, { recursive: true });
|
|
}
|
|
|
|
markdownFiles.forEach(file => {
|
|
try {
|
|
const content = fs.readFileSync(file.path, 'utf8');
|
|
// Replace more characters that might cause issues in filenames
|
|
const safePath = file.relativePath
|
|
.replace(/[\/\\]/g, '__')
|
|
.replace(/[\[\]()]/g, '_') // Replace brackets and parentheses
|
|
.replace(/[<>:"|?*]/g, '_') // Replace other problematic characters
|
|
.replace(/\s+/g, '_') // Replace spaces with underscores
|
|
.replace(/_+/g, '_') // Replace multiple underscores with single
|
|
.replace('.md', '.txt');
|
|
|
|
console.log(`Converting: ${file.relativePath} -> ${safePath}`);
|
|
fs.writeFileSync(path.join(contentDir, safePath), content);
|
|
} catch (error) {
|
|
console.error(`Error reading ${file.path}:`, error.message);
|
|
}
|
|
});
|
|
|
|
console.log(`Generated static data for ${markdownFiles.length} files`);
|