.. | ||
assign-label-types.cjs | ||
best-practice-content.cjs | ||
best-practice-dirs.cjs | ||
close-issues.sh | ||
compress-images.ts | ||
compressed-images.json | ||
create-roadmap-labels.sh | ||
editor-roadmap-assets.ts | ||
editor-roadmap-content-json.ts | ||
editor-roadmap-content.ts | ||
editor-roadmap-dirs.ts | ||
generate-og-images.mjs | ||
generate-renderer.sh | ||
label-issues.sh | ||
page-data-agg.cjs | ||
readme.md | ||
roadmap-content.cjs | ||
roadmap-dirs.cjs | ||
roadmap-links.cjs | ||
update-sponsors.cjs | ||
warm-urls.sh |
CLI Tools
A bunch of CLI scripts to make the development easier
roadmap-links.cjs
Generates a list of all the resources links in any roadmap file.
compress-jsons.cjs
Compresses all the JSON files in the public/jsons
folder
update-sponsors.cjs
Updates the sponsor ads on each roadmap page with the latest sponsor information in the Excel sheet.
roadmap-content.cjs
Currently, for any new roadmaps that we add, we do create the interactive roadmap but we end up leaving the content empty in the roadmap till we get time to fill it up manually.
This script populates all the content files with some minimal content from OpenAI so that the users visiting the website have something to read in the interactive roadmap till we get time to fill it up manually.
roadmap-dirs.cjs
This command is used to create the content folders and files for the interactivity of the roadmap. You can use the below command to generate the roadmap skeletons inside a roadmap directory:
npm run roadmap-dirs [frontend|backend|devops|...]
For the content skeleton to be generated, we should have proper grouping, and the group names in the project files. You can follow the steps listed below in order to add the meta information to the roadmap.
- Remove all the groups from the roadmaps through the project editor. Select all and press
cmd+shift+g
- Identify the boxes that should be clickable and group them together with
cmd+shift+g
- Assign the name to the groups.
- Group names have the format of
[sort]-[slug]
e.g.100-internet
. Each group name should start with a number starting from 100 which helps with sorting of the directories and the files. Groups at the same level have the sequential sorting information. - Each groups children have a separate group and have the name similar to
[sort]-[parent-slug]:[child-slug]
where sort refers to the sorting of thechild-slug
and not the parent. Also parent-slug does not need to have the sorting information as a part of slug e.g. if parent was100-internet
the children would be100-internet:how-does-the-internet-work
,101-internet:what-is-http
,102-internet:browsers
.
- Group names have the format of