β¨ Supercharge your template development workflow β¨
A comprehensive VS Code snippet collection for Jinja2 and Django template engines.
Writing template code can be tedious with all those brackets, tags, and syntax. This extension eliminates the repetitive typing by providing smart, tab-completion snippets for common Jinja2 and Django template patterns.
Stop typing this:
{% for item in items %}
<!-- your code -->
{% endfor %}Start typing this:
ptfor β Tab β Fill in the blanks!
- π― 20+ carefully crafted snippets for Jinja2 and Django
- β‘ Lightning-fast - Type
ptprefix and let IntelliSense do the rest - π¨ Smart cursor positioning - Jump to exactly where you need to type
- π Multi-cursor support - Tab between placeholders seamlessly
- π οΈ Framework-agnostic - Works with Flask, Django, FastAPI, and any Python web framework
- π¦ Zero configuration - Works out of the box
- Open VS Code
- Press
Ctrl+P/Cmd+P - Type
ext install RickyWhite.python-template-snippets - Press Enter and reload VS Code
- Download the latest
.vsixfrom Releases - Open VS Code
- Go to Extensions (
Ctrl+Shift+X/Cmd+Shift+X) - Click the
...menu βInstall from VSIX - Select the downloaded file
- Open any HTML file in VS Code
- Type
ptto see available snippets - Select a snippet from the IntelliSense menu (or type the full prefix)
- Press
Tabto trigger the snippet - Fill in the placeholders and press
Tabto jump between them
Enable tab completion in your VS Code settings for the best experience:
{
"editor.tabCompletion": "on"
}All snippets use the pt prefix (short for "Python Template"). Here's the complete reference:
Works with both Jinja2 and Django
| Prefix | Description | Output |
|---|---|---|
ptnew |
New HTML template file | Complete template with extends and blocks |
ptvar |
Template variable | {{ variable }} |
ptfilt |
Variable with filter | {{ variable | filter }} |
ptcode |
Code block tag | {% code %} |
ptblock |
Block tag | {% block name %}...{% endblock %} |
ptext |
Extends tag | {% extends 'base.html' %} |
ptsup |
Super function | {{ super() }} |
ptfor |
For loop | {% for item in items %}...{% endfor %} |
ptif |
If statement | {% if condition %}...{% endif %} |
ptifel |
If/else statement | {% if %}...{% else %}...{% endif %} |
ptelif |
If/elif/else statement | {% if %}...{% elif %}...{% else %}...{% endif %} |
ptwith |
With statement | {% with variable %}...{% endwith %} |
For Flask, FastAPI, and other Jinja2 projects
| Prefix | Description | Output |
|---|---|---|
ptj-url |
Static file URL | {{ url_for('static', filename='file.css') }} |
ptj-mac |
Macro definition | {% macro name %}...{% endmacro %} |
ptj-com |
Comment | {# comment #} |
ptj-set |
Set variable | {% set var = value %} |
For Django projects
| Prefix | Description | Output |
|---|---|---|
ptd-url |
URL tag | {% url 'view-name' args %} |
ptd-load |
Load tag library | {% load static %} |
ptd-stat |
Static file | {% static 'path/to/file' %} |
ptd-inc |
Include template | {% include 'template.html' %} |
ptd-firstof |
First of variables | {% firstof var1 var2 %} |
Type ptnew and press Tab:
{% extends 'base.html' %}
{% block content %}
<!-- Your cursor starts here -->
{% endblock content %}
{% block scripts %}
{% endblock scripts %}Type ptfor and press Tab:
{% for item in items %}
<!-- Your cursor starts here -->
{% endfor %}Then tab through: item β items β loop body
Type ptd-stat and press Tab:
{% static 'css/style.css' %}Found a bug? Want a new snippet? Contributions are welcome!
- Report Issues: Open an issue
- Request Features: Have an idea? Share it!
- Submit PRs: Fork, code, and submit a pull request
When requesting a new snippet, please include:
- The template syntax you want added
- Which framework it's for (Jinja2/Django/both)
- A brief description of what it does
See GitHub Releases for the detailed version history and changelog.
This extension is free and open source. If you find it helpful, consider:
- β Starring the repo
- π° Sponsoring on GitHub
- π¦ Sharing on social media
- π Writing a review
MIT Β© Ricky White
Created and maintained by Ricky White
Special thanks to all contributors who have helped improve this extension!
Happy Coding! π
Made with β€οΈ for the Python community