A blazingly fast, structure-aware linter for your documentation, with built-in translation for non-native English speakers.
Project description
FDS-Dev (Flamehaven Doc Sanity for Developers)
A blazingly fast, structure-aware linter for your documentation, supercharged with AI-powered translation.
Built for the global developer community. Write documentation and code comments in your native language, and let FDS-Dev instantly translate it to production-ready English.
Features • Quick Start • Documentation • Contributing • Support
The Problem
You are a talented developer from Korea, Japan, China, Germany, or anywhere else in the world. Your code is brilliant, but writing documentation and comments in English is a chore. It slows you down and creates a barrier to sharing your work with the global open-source community.
Existing linters like markdownlint or Vale are great, but they are English-centric. They don't solve this core problem.
The Solution: FDS-Dev
FDS-Dev is two tools in one:
- A Blazing-Fast Linter: Ensures your documentation has a clean, professional structure.
- An AI-Powered Translator: Automatically translates your native-language docs and comments into fluent, natural English.
Stop worrying about English. Focus on your code.
Core Features
- Structure-Aware Linting: Go beyond simple style checks. Enforce section order, require specific headers, and validate the overall structure of your documents.
- Automated Translation: Translate Markdown files and source code comments from languages like Korean, Chinese, Japanese, and more into English.
- Simple Configuration: A single
.fdsrc.yamlfile to control everything. - Built for Speed: Core components written for maximum performance.
Quick Start
pip install --upgrade fds-dev
fds --help
1. Lint your documentation
Check for structural issues in your documentation.
fds lint README.ko.md
2. Translate to English
Translate your Korean README and its comments into a new, global-ready English file.
# Translates README.ko.md -> README.md
fds translate README.ko.md --output README.md
# Translate a source code file's comments in-place
fds translate my_app/main.py --in-place
Translation Providers
FDS-Dev supports multiple translation providers. You can configure your preferred provider in the .fdsrc.yaml file.
| Provider | Default? | API Key | Cost | Quality | Stability | Recommended Use Case |
|---|---|---|---|---|---|---|
| Google Translate (Free) | ✅ (Default) | None | Free | High | Unstable¹ | Personal projects, quick tests, general docs |
| DeepL | ❌ | Required | Limited Free Tier/Paid | Very High | Very High | Production, commercial, official docs |
| MyMemory | ❌ | None | Free | Medium | Medium | Simple scripts, temporary use |
| LibreTranslate | ❌ | None | Free (Self-hosted) | Medium² | User-managed | Private servers, offline, full control |
¹ Uses an unofficial API, which may stop working without notice. ² Quality depends on the model you host yourself.
To use a provider other than the default, configure it in your .fdsrc.yaml file. For providers requiring an API key, it is highly recommended to use environment variables.
Example for DeepL:
# .fdsrc.yaml
translator:
provider: 'deepl'
providers:
deepl:
# It's recommended to use the FDS_DEEPL_API_KEY environment variable instead.
api_key: null
Deployment & Automation
Continuous Integration
GitHub Actions automatically runs the test suite across Python 3.9–3.11 and builds release artifacts for every push and pull request targeting main. You can find the workflow definition in .github/workflows/ci.yml.
Automated PyPI Releases
Tagging a commit with the v* pattern (for example, v0.2.0) triggers .github/workflows/release.yml, which builds the project with python -m build and publishes the result to PyPI using the PYPI_API_TOKEN secret.
Official Docker Image
Ship the CLI as a container image by using the provided Dockerfile:
docker build -t fds-dev .
docker run --rm fds-dev lint README.md
The image installs the package globally and exposes the fds entrypoint, so any CLI command can be run directly.
Contributing
FDS-Dev is in early development. Contributions are welcome!
See CONTRIBUTING.md for the detailed workflow, release checklist, and ASCII compatibility notes.
We welcome contributions from the community! Here's how you can help:
How to Contribute
- Report Issues: Found a bug? Open an issue
- Suggest Features: Have an idea? Share it in Discussions
- Submit Pull Requests: Fix bugs or add features
- Improve Documentation: Help make our docs even better
Development Setup
# Clone repository
git clone https://github.com/flamehaven01/FDS-Dev.git
cd FDS-Dev
# Install in development mode
pip install -e .
# Run tests
pytest tests/ -v
# Run linter
flake8 fds_dev/
Code Quality Standards
- Test coverage ≥ 90%
- All tests passing (100/105 expected)
- Follow PEP 8 style guide
- Add docstrings for public APIs
- Update documentation for new features
Support
Documentation
- Translation Algorithm - Complete pipeline explanation
- Architecture Guide - System design documentation
- Troubleshooting - Common issues and solutions
Get Help
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions and share ideas
- Email: info@flamehaven.space
Community
- Website: flamehaven.space
- Repository: github.com/flamehaven01/FDS-Dev
License
MIT License - see LICENSE file for details.
Acknowledgments
FDS-Dev is built with:
- py-googletrans - Free Google Translate API
- DeepL API - High-quality translation backend
- click - Beautiful CLI framework
- pytest - Testing framework
Special thanks to all contributors and the open-source community!
Made with ❤️ by Flamehaven
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fds_dev-0.0.1.tar.gz.
File metadata
- Download URL: fds_dev-0.0.1.tar.gz
- Upload date:
- Size: 31.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eace07f447ea3b5f06b64424d9e17922479d7c5fbc400386477bbbd71403388
|
|
| MD5 |
0cfd6513274d2181f7e7c666dde70e98
|
|
| BLAKE2b-256 |
a8e9939562ffbaa64e260351e3be753940ae15e3eeb84dace8b8e9bc873cab59
|
Provenance
The following attestation bundles were made for fds_dev-0.0.1.tar.gz:
Publisher:
release.yml on flamehaven01/FDS-Dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fds_dev-0.0.1.tar.gz -
Subject digest:
7eace07f447ea3b5f06b64424d9e17922479d7c5fbc400386477bbbd71403388 - Sigstore transparency entry: 708630756
- Sigstore integration time:
-
Permalink:
flamehaven01/FDS-Dev@c1acad8b492f336349550fd025d7ec409a0855a8 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/flamehaven01
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1acad8b492f336349550fd025d7ec409a0855a8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fds_dev-0.0.1-py3-none-any.whl.
File metadata
- Download URL: fds_dev-0.0.1-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c709250b227c5b26783750047f59dc897a91a8001e5ac9686247f8a08f079707
|
|
| MD5 |
b8ca181b62dbbda98991c896125dcf0d
|
|
| BLAKE2b-256 |
6b9282a211f49538f97b5cdc06254346978ef675d6ea885868e88c8410e8ce07
|
Provenance
The following attestation bundles were made for fds_dev-0.0.1-py3-none-any.whl:
Publisher:
release.yml on flamehaven01/FDS-Dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fds_dev-0.0.1-py3-none-any.whl -
Subject digest:
c709250b227c5b26783750047f59dc897a91a8001e5ac9686247f8a08f079707 - Sigstore transparency entry: 708630757
- Sigstore integration time:
-
Permalink:
flamehaven01/FDS-Dev@c1acad8b492f336349550fd025d7ec409a0855a8 -
Branch / Tag:
refs/tags/v0.0.1 - Owner: https://github.com/flamehaven01
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1acad8b492f336349550fd025d7ec409a0855a8 -
Trigger Event:
push
-
Statement type: