This project automatically generates a feed.json file that contains structured data for all portfolio entries in the README.md file.
The feed.json file is a machine-readable JSON file that contains all portfolio entries with the following structure:
[
{
"name": "Developer Name",
"url": "https://portfolio-url.com",
"tagline": "Optional tagline or expertise"
},
{
"name": "Another Developer",
"url": "https://another-portfolio.com"
}
]Each portfolio entry is an object with the following fields:
- name (string, required): The developer's name
- url (string, required): The portfolio website URL
- tagline (string, optional): The developer's title, expertise, or description
The feed.json file is automatically generated when you run:
python src/alphabetical.pyThis script:
- Processes the README.md file
- Extracts all portfolio entries (lines starting with
- [Name](url)) - Parses optional taglines (text in
[brackets]after the link) - Generates/updates the
feed.jsonfile
If you only want to update the feed.json file without running the full alphabetical sorting, you can use:
python src/generate_feed.pyThe feed.json file can be used for:
- Building web applications that display portfolio listings
- Creating search functionality
- Generating statistics about the developer community
- Building portfolio aggregators or discovery tools
- API endpoints for third-party integrations
import json
with open('feed.json', 'r') as f:
portfolios = json.load(f)
# Get all portfolios
for portfolio in portfolios:
print(f"{portfolio['name']}: {portfolio['url']}")
# Filter portfolios with taglines
portfolios_with_taglines = [p for p in portfolios if 'tagline' in p]const portfolios = require('./feed.json');
// Get all portfolios
portfolios.forEach(portfolio => {
console.log(`${portfolio.name}: ${portfolio.url}`);
});
// Filter by tagline keyword
const fullStackDevs = portfolios.filter(p =>
p.tagline && p.tagline.toLowerCase().includes('full stack')
);The feed.json file is automatically regenerated each time the alphabetical.py script runs. You don't need to manually edit this file.