Software Developer + Open Source Contributor
A Docusaurus-powered notes site with:
- 25+ documentation topics — DSA, CP, JavaScript, React, System Design, and more
- 56 blog posts auto-generated from Jupyter notebooks and Medium articles
- Recursive Table of Contents mirroring the GitHub repo folder structure
| Source | Type | Count |
|---|---|---|
| jugshaurya/Machine-Learning | Jupyter Notebooks | 36 posts |
| jugshaurya/Learn-Python | Jupyter Notebooks | 17 posts |
| Medium @shauryasinghal84 | Articles | 3 posts |
# Install dependencies
npm install
# Generate blog posts from repos + Medium
npm run generate-blogs
# Start dev server
npm start
# Build for production (auto-runs generate-blogs)
npm run build- Open
scripts/blog-sources.json - Add a new entry to the
notebooksarray:
{
"repo": "jugshaurya/new-repo-name",
"branch": "main",
"label": "Topic Label",
"tags": ["tag1", "tag2"],
"author": "shaurya"
}- Run
npm run generate-blogsto regenerate all blog posts - The notebooks will appear in the Blog page and the Table of Contents page
- Open
scripts/blog-sources.json - Update the
medium.feedUrlfield:
{
"medium": {
"feedUrl": "https://medium.com/feed/@your-username",
"author": "shaurya"
}
}- Run
npm run generate-blogs
Note: Medium RSS feeds return up to the 10 most recent posts. This is a Medium limitation.
- Open
scripts/blog-sources.json - Add to the
authorsobject:
{
"authors": {
"newauthor": {
"name": "Full Name",
"title": "Job Title",
"url": "https://portfolio.com",
"image_url": "https://github.com/username.png"
}
}
}- Use
"author": "newauthor"in notebook or medium config
The script scripts/generate-blogs.js runs automatically before every build (prebuild):
- Clones each configured GitHub repo (shallow clone, temp directory)
- Finds all
.ipynbfiles recursively - Converts each notebook to Markdown:
- Markdown cells → preserved as-is (HTML escaped for MDX)
- Code cells → fenced code blocks with syntax highlighting
- Outputs → collapsible text blocks
- Images → inline base64 or GitHub raw URLs
- Fetches Medium RSS feed and converts HTML to Markdown
- Generates
blog/*.mdfiles with proper frontmatter (title, tags, date, author) - Generates
src/data/toc.jsonfor the recursive Table of Contents page - Cleans up temp repos
Generated posts are marked with <!-- generated-blog-post --> so they can be safely re-generated without affecting manually written blog posts.
- STL
- CPP
- Algorithms
- Advance DS for CP
- Graph Theory
- Game Theory
- Dynamic Programming
- Interview Question List
- Gatsby
- PostgreSQL
- Fork and clone the repo
npm installnpm start- Make changes, commit, and open a PR
- Correct @github