A plugin for Magnolia CLI to create a headless or freemarker-based page.
sh
npm run mgnl -- add-plugin @magnolia/cli-create-page-plugin
` The command will install the plugin, and automatically register the plugin in
mgnl.config.js file:
`js
import CreatePagePlugin from "@magnolia/cli-create-page-plugin"; export default {
plugins: [
new CreatePagePlugin()
]
};
`
2. To confirm that the plugin has been successfully installed, run:
`bash
npm run mgnl -- create-page --help
`$3
1. Run the following command in the project's root directory:
`bash
npm install @magnolia/cli-create-page-plugin
`
2. Manually add CreatePagePlugin to mgnl.config.js file:
`javascript
import CreatePagePlugin from "@magnolia/cli-create-page-plugin"; export default {
plugins: [
new CreatePagePlugin()
]
};
`
3. To confirm that the plugin has been successfully installed, run:
`bash
npm run mgnl -- create-page --help
`Usage
$3
| Short | Long | Description |
|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------------------------|
|
-lm [name] | --light-module [name] | set the light module for the page template; defaults to the directory specified in mgnl.config.js file |
| -p [name] | --prototype [name] | select a prototype for page creation |
| -v | --version | output the version number |
| -h | --help | display help for command |
$3
#### Global Properties
| Property | Description |
|-----------------------|-----------------------------------------------------------|
|
pageMappingFilePath | The path to the file containing the pagesMapping object |
| lightModulesPath | The directory with all light modules |
| lightModule | The selected light module |
| type | The type for the selected prototype, e.g., ts or js |#### Plugin-Specific Properties
| Property | Description |
|----------------|-------------------------------------------------------------------------------------------|
|
pagesSpaPath | The path to the folder containing the front-end pages |
| lightModule | The selected light module |
| framework | The framework prototype to use for page creation (e.g., @magnolia/cli-react-prototypes) |
| prototype | The name of the prototype to be used |
| templateData | A key-value object used by Handlebars for template rendering |
| templateArgs | A key-value object that modifies how the prototype behaves |$3
#### Create a page
`bash
npm run mgnl -- create-page "myFooPage" --framework "@magnolia/cli-react-prototypes" --prototype "basic"
`
This command creates a new page called "myFooPage" based on "basic" prototype from "@magnolia/cli-react-prototypes" framework.
If any properties (e.g., lightModulesPath, lightModule, framework, etc.) are missing from the mgnl.config.js file, the plugin will prompt you to provide them.
The entered values will be saved in the mgnl.config.js file for future use.
#### Create a page with a specific light module
`bash
npm run mgnl -- create-page "myFooPage" --lightModule "myLm"
``