chore: integrate old MemoryPalace files and configure auto-commit
This commit is contained in:
74
code/utils/git/updateReadme.js
Normal file
74
code/utils/git/updateReadme.js
Normal file
@@ -0,0 +1,74 @@
|
||||
/**
|
||||
* This file is responsible for updating the README file with file links and descriptions.
|
||||
* It reads the files in the specified directory, extracts their descriptions, and generates
|
||||
* markdown links for each file. Then, it updates the README file with the generated links
|
||||
* and descriptions.
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const resolvedPath = path.resolve();
|
||||
console.log(resolvedPath);
|
||||
|
||||
const utilsDir = path.join(resolvedPath, 'src/utils');
|
||||
const bookmarkletsDir = path.join(resolvedPath, 'src/bookmarklets');
|
||||
const readmePath = path.join(resolvedPath, 'README.md');
|
||||
|
||||
fs.readdir(utilsDir, (err, files) => {
|
||||
function readDirectory(dir) {
|
||||
const files = fs.readdirSync(dir);
|
||||
const fileLinks = [];
|
||||
|
||||
files.forEach(file => {
|
||||
const filePath = path.join(dir, file);
|
||||
const stats = fs.statSync(filePath);
|
||||
|
||||
if (stats.isFile()) {
|
||||
const fileContent = fs.readFileSync(filePath, 'utf8');
|
||||
const description = getFileDescription(fileContent);
|
||||
fileLinks.push(
|
||||
`## [${file}](${path.relative(resolvedPath, filePath)})\n${description}`
|
||||
);
|
||||
} else if (stats.isDirectory()) {
|
||||
fileLinks.push(...readDirectory(filePath));
|
||||
}
|
||||
});
|
||||
|
||||
return fileLinks;
|
||||
}
|
||||
|
||||
const directories = [utilsDir, bookmarkletsDir]; // Add more directories as needed
|
||||
let fileLinks = [];
|
||||
|
||||
directories.forEach(dir => {
|
||||
fileLinks.push(...readDirectory(dir));
|
||||
});
|
||||
|
||||
const readmeContent = fs.readFileSync(readmePath, 'utf8');
|
||||
let updatedReadmeContent = updateReadmeContent(readmeContent, fileLinks);
|
||||
fs.writeFileSync(readmePath, updatedReadmeContent, 'utf8');
|
||||
|
||||
console.log('README updated successfully!');
|
||||
});
|
||||
|
||||
function getFileDescription(fileContent) {
|
||||
// Extract the description from the function comment in the file
|
||||
// You can use regular expressions or any other method to extract the description
|
||||
// Replace the following line with your implementation
|
||||
const descriptionRegex = /\/\*(.*?)\*\//s;
|
||||
const match = fileContent.match(descriptionRegex);
|
||||
const description = match
|
||||
? match[1].trim().replace(/^\s*\* ?/gm, '')
|
||||
: 'No Description Provided'; // const description = match ? match[1].trim().replace(/^\*/gm, '') : 'No Description Provided';
|
||||
return description;
|
||||
}
|
||||
|
||||
function updateReadmeContent(readmeContent, fileLinks) {
|
||||
const readmeSummaryIndex = readmeContent.indexOf('# File Summary');
|
||||
if (readmeSummaryIndex !== -1) {
|
||||
// If '# File Summary' is found, keep everything before it
|
||||
readmeContent = readmeContent.slice(0, readmeSummaryIndex);
|
||||
} // Append the new '# File Summary' section
|
||||
readmeContent += '# File Summary\n\n' + fileLinks.join('\n\n');
|
||||
return readmeContent;
|
||||
}
|
||||
Reference in New Issue
Block a user