ed-news Documentation#
Welcome to the ed-news documentation! This directory contains comprehensive guides for users, developers, and contributors.
Documentation Overview#
For Users#
- README - Quick start guide and CLI reference
- Configuration Guide - How to configure feeds and news sources
For Developers#
- Development Guide - Setting up your development environment and contributing
- Architecture - System design and component overview
- API Reference - Complete Python API documentation
- Processors Guide - Creating custom preprocessors and postprocessors
Reference#
- Database Schema - SQLite schema, tables, views, and queries
Quick Navigation#
Getting Started#
- Start with the main README for installation and quick start
- Read DEVELOPMENT.md to set up your development environment
- Explore CONFIGURATION.md to understand feed configuration
Understanding the System#
- Read ARCHITECTURE.md for system design and data flow
- Check DATABASE.md for schema and data models
- Review PROCESSORS.md to understand the processor architecture
Working with the API#
- Browse API.md for Python API reference
- Check PROCESSORS.md for processor development
- See DEVELOPMENT.md for testing and debugging
Key Concepts#
Preprocessors and Postprocessors#
ed-news uses a two-phase processing pipeline:
- Preprocessors fetch and parse raw feeds/sites
- Postprocessors enrich articles with additional metadata
Learn more in PROCESSORS.md.
Feed Configuration#
Feeds are configured in JSON files (research.json, news.json) with flexible processor options. Learn more in CONFIGURATION.md.
Database#
SQLite stores all articles, headlines, and metadata with support for:
- Deduplication via URL hashing
- Optional vector embeddings for similarity search
- Maintenance operations via CLI
Learn more in DATABASE.md.
Static Site Generation#
The build process reads from SQLite and generates:
index.htmlwith articles and headlines- Multiple RSS feeds (combined, articles-only, headlines-only)
- Static assets (CSS, JS)
Learn more in ARCHITECTURE.md.
Common Tasks#
Adding a New Feed#
- Edit
research.jsonornews.json - Add feed configuration with appropriate processor
- Run
uv run python main.py fetch - Verify with
uv run python main.py build
See CONFIGURATION.md for details.
Creating a Custom Processor#
- Create processor module in
ednews/processors/ - Export from
ednews/processors/__init__.py - Add tests in
tests/test_processors_*.py - Use in feed configuration
See PROCESSORS.md for details.
Debugging Issues#
- Enable verbose logging:
uv run python main.py fetch -v - Check database:
sqlite3 ednews.db - Review logs for errors
- Test processors individually
See DEVELOPMENT.md for debugging tips.
Contributing#
We welcome contributions! Please:
- Read DEVELOPMENT.md for setup
- Follow the coding conventions
- Add tests for new features
- Update documentation as needed
- Submit a pull request
Getting Help#
- Issues: Open an issue on GitHub
- Documentation: Check the relevant guide in this directory
- Examples: Review test files in
tests/ - Code: Browse source in
ednews/
Documentation Maintenance#
When updating code, please also update:
- API signatures → API.md
- Database schema → DATABASE.md
- Configuration format → CONFIGURATION.md
- Architecture diagrams → ARCHITECTURE.md
- Processor examples → PROCESSORS.md
License#
See the main repository for license information.