Magnolia 5.6 reached end of life on June 25, 2020. This branch is no longer supported, see End-of-life policy.
Light modules can be built with a simple text editor, with no special tools (such as Maven) required. A light module cannot incorporate java classes.
Example of light module structure:
magnolia.resources.dir/ └── <module-name>/ ├── apps/ ├── dialogs/ │ └── myDialog.yaml ├── module.yaml ├── webresources/ └── templates/ ├── components/ │ ├── myComponent.ftl │ └── myComponent.yaml └── pages/ ├── myPage.ftl ├── myPage.js └── myPage.yaml
Light modules can contain more or less folders compared to this example.
magnolia.resources.dir
- the light modules folderPlease note that a Magnolia Light module must reside within the so called "magnolia resources directory", the directory is also often referred to as the Magnolia light modules folder. The name and the location of this directory are arbitrary - but you have to provide the path to the folder via configuration.
magnolia.resources.dir
is a property defining the directory from which resources are loaded in a Magnolia instance. This directory is used for file-based resources such as light modules and for overriding classpath resources. The property is configured in WEB-INF/config/default/magnolia.properties
and has the default value $magnolia.home/modules
. To see the current value of the property, go to the Config Info tab in the About Magnolia app. The following items all can be defined within a light module with YAML. Items defined by YAML can be decorated, or they can be reused with YAML inherit and include.
Other non YAML based items which can be in a light module:
With Magnolia CLI you can create the complete light module structure with a single command. (If you want to install CLI, see Magnolia CLI - Installation.)
Open a shell, change to you the light modules folder and run the following command:
mgnl create-light-module my-module
Instead of my-module
use an appropriate name (no special characters such as space or german umlaut).