The original Python Inline Source by Sam Willis is no longer maintained. Please raise your issues and questions in this repo.
The PyPI package and VSCode extension have also been migrated:
- PyPI: sourcetypes -> sourcetypes2
- VSCode: samwillis.python-inline-source -> jurooravec.python-inline-source-2
This fork is based on v0.0.4.
This project enables inline syntax highligting of strings in python source files for multiple languages using type annotations.
Supports html
, css
, javascript
, typescript
, sql
, graphql
,
multiple css extension languages, template languages and many more,
see below for a full list.
Uses typing.Annotated
to annotate the str
type with the language used. You can use
typing.get_type_hints
at runtime to determine the language that a string has been annotated with.
- sourcetypes Python Types Package.
- vscode-python-inline-source VS Code Plugin.
pip install sourcetypes2
Install python-inline-source-2
from extensions (ctrl + shift + x
or cmd + shift + x
on mac).
Also available on marketplace.visualstudio.com
Use a type decoration named for language that you are using:
import sourcetypes
my_html_string: sourcetypes.html = """
<h1>Some HTML</h1>
"""
or:
from sourcetypes import html
my_html_string: html = """
<h1>Some HTML</h1>
"""
markdown
(aliased asmd
)html
django_html
(aliased asdjango
)django_txt
jinja
jinja_html
css
(aliased asstyle
, andstyles
)scss
less
sass
stylus
javascript
(aliased asjs
)jsx
(aliased asjavascriptreact
, andreact
)typescript
(aliased asts
)tsx
(aliased astypescriptreact
)coffeescript
(aliased ascoffee
)sql
json
yaml
graphql
xml
python