https://github.com/omenapps/django-templated-email-md
An extension for django-templated-email for creating emails with Markdown
https://github.com/omenapps/django-templated-email-md
django django-packages django-templated-email email email-template
Last synced: about 2 months ago
JSON representation
An extension for django-templated-email for creating emails with Markdown
- Host: GitHub
- URL: https://github.com/omenapps/django-templated-email-md
- Owner: OmenApps
- License: mit
- Created: 2024-10-21T16:44:17.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-12-23T01:10:29.000Z (5 months ago)
- Last Synced: 2025-03-22T19:01:49.126Z (2 months ago)
- Topics: django, django-packages, django-templated-email, email, email-template
- Language: Python
- Homepage: https://django-templated-email-md.readthedocs.io/en/latest/
- Size: 424 KB
- Stars: 33
- Watchers: 0
- Forks: 1
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# django-templated-email-md
[][pypi status]
[][pypi status]
[][pypi status]
[][license][][read the docs]
[][tests]
[][codecov][][pre-commit]
[][black][pypi status]: https://pypi.org/project/django-templated-email-md/
[read the docs]: https://django-templated-email-md.readthedocs.io/
[tests]: https://github.com/OmenApps/django-templated-email-md/actions?workflow=Tests
[codecov]: https://app.codecov.io/gh/OmenApps/django-templated-email-md
[pre-commit]: https://github.com/pre-commit/pre-commit
[black]: https://github.com/psf/black## Features
- **Markdown Templates**: Write email templates using Markdown syntax for cleaner and more readable templates.
- **Automatic Conversion**: Automatically converts Markdown to HTML and generates a plain text version of emails.
- **CSS Inlining**: Inlines CSS styles for better email client compatibility using Premailer.
- **Seamless Integration**: Works as an extension of `django-templated-email`, allowing for easy integration into existing projects.
- **Template Inheritance**: Supports Django template inheritance and template tags in your Markdown templates.## Installation
You can install `django-templated-email-md` via [pip] from [PyPI]:
```bash
pip install django-templated-email-md
```### Add to `INSTALLED_APPS`
Add `templated_email_md` to your `INSTALLED_APPS` in `settings.py`:
```python
INSTALLED_APPS = [
# ...
'templated_email_md',
# ...
]
```## Configuration
Assuming you have already installed and configured [django-templated-email](https://github.com/vintasoftware/django-templated-email/), update your Django settings as follows:
```python
# settings.py# Configure the templated email backend
TEMPLATED_EMAIL_BACKEND = 'templated_email_md.backend.MarkdownTemplateBackend'# Optional: Specify the base HTML template for wrapping your content. See the Usage guide for details.
TEMPLATED_EMAIL_BASE_HTML_TEMPLATE = 'templated_email/markdown_base.html'# Set the directory where your email templates are stored
TEMPLATED_EMAIL_TEMPLATE_DIR = 'templated_email/' # Ensure there's a trailing slash# Define the file extension for your Markdown templates
TEMPLATED_EMAIL_FILE_EXTENSION = 'md'# Optional: Specify Markdown extensions if needed
TEMPLATED_EMAIL_MARKDOWN_EXTENSIONS = [
'markdown.extensions.extra',
'markdown.extensions.meta',
'markdown.extensions.tables',
]
```## Usage
### Creating Markdown Templates
Place your Markdown email templates in the `templated_email/` directory within your project's templates directory. For example, create a file `templated_email/welcome.md`:
```markdown
{% block subject %}Test Email{% endblock %}
{% block preheader %}Thanks for signing up!{% endblock %}{% block content %}
# {{ user.first_name }}, you're in!
## Welcome to The Potato Shop
### Hello {{ user.fiest_name }}! 👋
> You have been invited to set up an account at the Potato shop on behalf of **{{ inviter.name }}**.
Please click [this link]({% url 'invitations:accept-invite' key=invitation.key %}) to establish your account.
{% blocktranslate %}You will be directed to the 'set password' tool, where you can establish your account password.{% endblocktranslate %}
---
Best regards,
*Jack Linke*
Potato Shop, LLC - Managing Director*Semi-round, Starchy Veggies for All*
{% endblock %}
```### Sending Emails
Use the `send_templated_mail` function to send emails using your Markdown templates, just as you would with the base django-templated-email package:
```python
from templated_email import send_templated_mailsend_templated_mail(
template_name='welcome',
from_email='Potato Shop Support ',
recipient_list=['[email protected]'],
context={
'user': request.user,
'inviter': inviter,
},
)
```### The Result
#### Inbox Preview

#### Email Preview

More detailed information can be found in the [usage guide][usage guide].
## Documentation
For more detailed information, please refer to the [full documentation][read the docs].
## Contributing
Contributions are very welcome. To learn more, see the [Contributor Guide].
## License
Distributed under the terms of the [MIT license][license], `django-templated-email-md` is free and open source software.
## Issues
If you encounter any problems, please [file an issue] along with a detailed description.
## Credits
We are grateful to the maintainers of the following projects:
- [django-templated-email](https://github.com/vintasoftware/django-templated-email/)
- [emark](https://github.com/voiio/emark)This project was generated from [@OmenApps]'s [Cookiecutter Django Package] template.
[@omenapps]: https://github.com/OmenApps
[pypi]: https://pypi.org/
[license]: https://github.com/OmenApps/django-templated-email-md/blob/main/LICENSE
[read the docs]: https://django-templated-email-md.readthedocs.io/
[usage guide]: https://django-templated-email-md.readthedocs.io/en/latest/usage.html
[contributor guide]: https://github.com/OmenApps/django-templated-email-md/blob/main/CONTRIBUTING.md
[file an issue]: https://github.com/OmenApps/django-templated-email-md/issues
[cookiecutter django package]: https://github.com/OmenApps/cookiecutter-django-package
[pip]: https://pip.pypa.io/