Add initial project structure for Small, a clean frontend for reading Medium articles. This setup includes: - Basic Flask app configuration with necessary dependencies. - RESTful endpoint to fetch and serve Medium articles. - Templates and static assets for the user interface. - Utility functions for parsing Medium article IDs. - Custom error pages (404 and 500) for nicer error handling. - Project metadata files such as .gitignore, README, LICENSE, and pyproject.toml for project setup and documentation. This structure sets the foundation for further development and feature additions.
2 KiB
Small
Small is an alternative frontend for Medium articles, built with Flask. It allows users to read Medium articles without the clutter and distractions of the original Medium interface.
Features
- Clean, minimalist interface for reading Medium articles
- Fetches article content directly from Medium's GraphQL API
- Parses and displays article content, including text and basic formatting
- Responsive design for comfortable reading on various devices
Installation
-
Clone the repository:
git clone https://git.private.coffee/PrivateCoffee/small.git cd small
-
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate
-
Install the package:
pip install .
Usage
-
Start the Flask development server:
small
-
Open your web browser and navigate to
http://localhost:5000
-
To read a Medium article, replace
https://medium.com
in the article's URL withhttp://localhost:5000
For example:
- Original URL:
https://medium.com/@username/article-title-123abc
- Small URL:
http://localhost:5000/@username/article-title-123abc
- Original URL:
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Inspired by the Scribe project built with Crystal and Lucky
- Thanks to Medium for providing the content through their API
Disclaimer
This project is not affiliated with, endorsed, or sponsored by Medium. It's an independent project created to provide an alternative reading experience for Medium content.