CLI tool for static website generation with a focus on translation to any number of languages via AI
- Free software: MIT license
- Documentation: https://werd.readthedocs.io
- Translate content, marked up in markdown, into as many languages as desired (or at least as many as OpenAI's ChatGPT can translate into)
- Render content as HTML using Jinja2 templates (partially finished)
Install this tool using pip
:
pip install werd
For help, run:
werd --help
You can also use:
python -m werd --help
To contribute to this tool, first checkout the code. Then create a new virtual environment:
cd werd
python -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest
In order of most likely to-do to least
- Commands
- translate
- sub-directories
- Blog filename parser
- Error page content
- Parallel inference requests to speed up translations
- force generate 1 language --flag
- force generate all languages --flag
- translate file names to be used for navigation.
- content using OpenAI
- render HTML using theme
- Secondary content i.e. layout elements (not rendered as pages)
- navigation
- Hierarchy, directories as sub-menus
- Non-content driven pages i.e.
- General index rendering
- Root
- directory roots
- blog index
- Site index language selection list
- site root redirect to language page
- home/landing page
- General index rendering
- Error page, list content in all languages
- Switch language
- 1-to-1 rendering of content to a page using Jinja2 theme templates
- go - translate and render in one command
- server - local web server of HTML output
- deploy
- to S3 bucket
- ftp?
-
Github pages?just a commit and push
- scaffold - setup content, templates directories and config file.
- translate
- Documentation site (using werd and translated)
- Switch to SQLite for all data tracking?
- Refactor to use click
This project was bootstrapped from the cookiecutter template https://github.com/simonw/click-app.
The name werd
was the result of the letters being close together on the keyboard and it not being taken as a package on pipy