mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-09-01 05:21:43 +02:00
Add command to collect links from roadmaps
This commit is contained in:
44
bin/roadmap-links.cjs
Normal file
44
bin/roadmap-links.cjs
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const roadmapId = process.argv[2];
|
||||||
|
if (!roadmapId) {
|
||||||
|
console.error('Error: roadmapId is required');
|
||||||
|
}
|
||||||
|
|
||||||
|
const fullPath = path.join(__dirname, `../src/roadmaps/${roadmapId}`);
|
||||||
|
if (!fs.existsSync(fullPath)) {
|
||||||
|
console.error(`Error: path not found: ${fullPath}!`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function readFiles(folderPath) {
|
||||||
|
const stats = fs.lstatSync(folderPath);
|
||||||
|
|
||||||
|
if (stats.isFile()) {
|
||||||
|
return [folderPath];
|
||||||
|
}
|
||||||
|
|
||||||
|
const folderContent = fs.readdirSync(folderPath);
|
||||||
|
let files = [];
|
||||||
|
|
||||||
|
for (const file of folderContent) {
|
||||||
|
const filePath = path.join(folderPath, file);
|
||||||
|
|
||||||
|
files = [...files, ...readFiles(filePath)];
|
||||||
|
}
|
||||||
|
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
|
||||||
|
const files = readFiles(fullPath);
|
||||||
|
let allLinks = [];
|
||||||
|
|
||||||
|
files.forEach((file) => {
|
||||||
|
const fileContent = fs.readFileSync(file, 'utf-8');
|
||||||
|
const matches = [...fileContent.matchAll(/\[[^\]]+]\((https?:\/\/[^)]+)\)/g)];
|
||||||
|
|
||||||
|
allLinks = [...allLinks, ...matches.map((match) => match[1])];
|
||||||
|
});
|
||||||
|
|
||||||
|
allLinks.map((link) => console.log(link));
|
@@ -12,7 +12,8 @@
|
|||||||
"deploy": "NODE_DEBUG=gh-pages gh-pages -d dist -t",
|
"deploy": "NODE_DEBUG=gh-pages gh-pages -d dist -t",
|
||||||
"sync-content": "sh ./bin/sync-content.sh",
|
"sync-content": "sh ./bin/sync-content.sh",
|
||||||
"compress:jsons": "node bin/compress-jsons.cjs",
|
"compress:jsons": "node bin/compress-jsons.cjs",
|
||||||
"upgrade": "ncu -u"
|
"upgrade": "ncu -u",
|
||||||
|
"roadmap-links": "node bin/roadmap-links.cjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/sitemap": "^1.0.0",
|
"@astrojs/sitemap": "^1.0.0",
|
||||||
|
Reference in New Issue
Block a user