https://github.com/roadsideseb/lektor-envvars
A Lektor plugin making environment variables available in templates.
https://github.com/roadsideseb/lektor-envvars
Last synced: 9 months ago
JSON representation
A Lektor plugin making environment variables available in templates.
- Host: GitHub
- URL: https://github.com/roadsideseb/lektor-envvars
- Owner: roadsideseb
- License: mit
- Created: 2018-06-02T17:17:52.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-13T05:31:34.000Z (about 8 years ago)
- Last Synced: 2025-09-28T10:26:27.918Z (9 months ago)
- Language: Python
- Size: 12.7 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
lektor-envvars
##############
.. image:: https://circleci.com/gh/elbaschid/lektor-envvars.svg?style=svg
:target: https://circleci.com/gh/elbaschid/lektor-envvars
Why this project?
-----------------
**TL;DR** You can use environment variables in your Lektor templates.
I've been working with `Lektor `_ as as
static site generator in quite a few projects and really enjoy it. Most recently
I work on a project that used an environment variable to create slightly
different version of the site for ``development``, ``staging`` and ``production``.
Lektor doesn't have a way to add *environment variables* into the templates, so
I started building my own little plugin.
How to install it in Lektor
---------------------------
You can easily install this plugin following the `Lektor docs
`_. All you need to do is run::
$ lektor plugin add lektor-envvars
This will automatically install the plugin and add it to your project
configuration.
Using environment variables
---------------------------
You are able to access environment variables using the ``envvars`` function
inside your Jinja2 template. This function is added whenever lektor is running
a new build.
All environment variables are prefixed with ``LEKTOR_`` by default. Let's look
at a simple example with an environment varialbe ``LEKTOR_DEBUG=true``::
$ export LEKTOR_DEBUG=true
You can access this variable inside any Jinja2 template::
{{ envvars('DEBUG') }}
which will display ``true`` instead.
Converting values
-----------------
That's a great start but what if you want this to be a boolean value instead of
the string ``true``? You simply convert the value::
{{ envvars('DEBUG', bool) }}
or you can now even do::
{% if envvars('DEBUG', bool) %}
...
{% endif %}
Custom prefixes (or no prefix)
------------------------------
If you don't like the ``LEKTOR_`` prefix, you can either use your own prefix by
setting the prefix in the ``configs/lektor-envvars.ini`` file::
[envvars]
prefix = MY_OWN_
You can now use ``MY_OWN_DEBUG`` instead of ``LEKTOR_DEBUG``. This means that
all environment variables need to be prefixed with ``MY_OWN_`` now instead.
You can also ignore the prefix all together::
{{ envvars('DEBUG', no_prefix=True) }}
which will give you access to the environment variable ``DEBUG``.
License
-------
This code is licensed under the `MIT License`_.
.. _`MIT License`: https://github.com/elbaschid/lektor-envvars/blob/master/LICENSE