Pelican plugin that allows to load data from files like JSON or TOML.
This plugin loads all the data files found in the project's data/
directory, and makes them accessible in jinja templates by injecting them into the context (with the prefix DATA_
followed by the name of the file).
This is roughly the default behavior of the well known Jekyll static site generator.
For example, the data of a profile.json
file will be accessible from any template via DATA_PROFILE
.
You can use it directly in a personnal project, or to build a Pelican theme.
This plugin is avaiable as a python package hosted on PyPI.
All you have to do is install the latest version of the package with pip:
pip install pelican-data-files
By default, Pelican will automatically discover and register the plugin. (see more here)
To be sure, run this command which displays all the registered plugins, pelican-data-files should be printed:
pelican-plugins
Place some JSON valid files into data/
folder. Then you can acces your data by querying DATA_<FILE_NAME>["<VAR_NAME>"]
For example, consider a simple file named profile.json
with the followed content:
{
"firstname": "John",
"lastname": "Doe",
"age": 25,
"contact": {
"phone": "+1 302-516-3307",
"mail": "[email protected]"
}
}
Then, see what following queries return:
DATA_PROFILE["firstname"] => "John"
DATA_PROFILE["age"] => 25
DATA_PROFILE["contact"]["mail"] => "[email protected]"
So, you can access all the data in data/
folder in jinja templates from pelican context.
It is of course possible to create a theme that uses this plugin, it will not necessarily be dependent on it but must in all cases be designed for. (Usage of DATA_
prefix in theme templates and provide sample data files)
First set the plugin as an install requirement, for example with a package managed with setuptools (setup.py
):
...
install_requires=[
"pelican",
"pelican-data-files"
],
...
Next, you have to provide sample data files for your theme.
Users can easily fetch the files in their pelican project by running the following command:
pelican-data-files --fetch <THEME_NAME>
This will copy the data/
folder of the theme, into the data/
folder of their Pelican project.
They will only have to modify the files and generate their site.
orbelican is a theme which use pelican-data-files plugin to build an online resume from orbit-theme.