lego/packages/envvars/README.rst
Peter Haight 4903d4baa8 Move donate lektor packages to be local
Adding the packages the new donate stuff is using to the repository so
that they do not need to be downloaded to run lektor. I had to make some
modifications to the setup.py files for these modules in order to get
them to work. Otherwise I was getting errors about invalid syntax in the
requires.txt files and also one of the modules was requiring lektor
which was pulling in a bunch of stuff that's not needed because we are
running inside lektor. I put all these changes in patch files in a new
patches subdirectory.
2020-10-13 11:22:38 -07:00

93 lines
2.5 KiB
ReStructuredText

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 <https://www.getlektor.com/docs/plugins/>`_ 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
<https://www.getlektor.com/docs/plugins/>`_. 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