grapesjs-baml-core
v0.5.7
Published
baml Components integration in GrapesJS
Maintainers
Readme
GrapesJS baml
Requires GrapesJS v0.15.9 or higher
This plugin enables the usage of baml components inside the GrapesJS environment. baml components are rendered in real-time using the official v4 compiler (+ some mocks to make it run in the browser), therefore the result is, almost, the same as using the baml Live Editor.
Supported components:
ba-wrapper
ba-group
ba-section
ba-column
ba-text
ba-image
ba-button
ba-social
ba-divider
ba-spacer
ba-style
ba-font
ba-hero
Options
|Option|Description|Default|
|-|-|-
|fonts|Custom fonts on exported HTML header more info|{}|
|importPlaceholder|Import placeholder baml|''|
|imagePlaceholderSrc|Image placeholder source|'https://via.placeholder.com/350x250/78c5d6/fff'|
|i18n|I18n object containing language more info|{}|
|overwriteExport|Overwrite default export command|true|
|preMjml|String before the baml in export code|''|
|postMjml|String after the baml in export code|''|
|resetBlocks|Clean all previous blocks if true|true|
|resetDevices|Clean all previous devices and set a new one for mobile|true|,
|resetStyleManager|Reset the Style Manager and add new properties for baml|true|,
Download
npm i grapesjs-baml
Usage
<link href="path/to/grapes.min.css" rel="stylesheet"/>
<script src="path/to/grapes.min.js"></script>
<script src="path/to/grapesjs-baml.min.js"></script>
<div id="gjs">
<baml>
<ba-body>
<!-- Your baml body here -->
<ba-section>
<ba-column>
<ba-text>My Company</ba-text>
</ba-column>
</ba-section>
</ba-body>
</baml>
</div>
<script type="text/javascript">
var editor = grapesjs.init({
fromElement: 1,
container : '#gjs',
plugins: ['grapesjs-baml'],
pluginsOpts: {
'grapesjs-baml': {/* ...options */}
}
});
</script>Or using ESM imports:
import 'grapesjs/dist/css/grapes.min.css'
import grapesJS from 'grapesjs'
import grapesJSMJML from 'grapesjs-baml'
grapesJS.init({
fromElement: 1,
container : '#gjs',
avoidInlineStyle : false,
plugins: [grapesJSMJML],
pluginsOpts: {
[grapesJSMJML]: {/* ...options */}
},
});i18n usage:
import 'grapesjs/dist/css/grapes.min.css'
import grapesJS from 'grapesjs'
import nl from 'grapesjs/locale/nl'
import grapesJSMJML from 'grapesjs-baml'
import bamlNL from 'grapesjs-baml/locale/nl'
grapesJS.init({
fromElement: 1,
container : '#gjs',
avoidInlineStyle : false,
i18n: {
// locale: 'en', // default locale
// detectLocale: true, // by default, the editor will detect the language
// localeFallback: 'en', // default fallback
messages: { nl: nl },
},
plugins: [grapesJSMJML],
pluginsOpts: {
[grapesJSMJML]: {
// Optional options
i18n: { nl: bamlNL }
}
},
});fonts usage:
import 'grapesjs/dist/css/grapes.min.css'
import grapesJS from 'grapesjs'
import grapesJSMJML from 'grapesjs-baml'
let editor = grapesJS.init({
fromElement: 1,
container : '#gjs',
avoidInlineStyle : false,
plugins: [grapesJSMJML],
pluginsOpts: {
[grapesJSMJML]: {
// The font imports are included on HTML <head/> when fonts are used on the template
fonts: {
Montserrat: 'https://fonts.googleapis.com/css?family=Montserrat',
'Open Sans': 'https://fonts.googleapis.com/css?family=Open+Sans'
}
}
},
});
// add custom fonts options on editor's font list
editor.on('load', () => {
let styleManager = editor.StyleManager;
let fontProperty = styleManager.getProperty('typography', 'font-family');
let list = [];
// empty list
fontProperty.set('list', list);
// custom list
list.push(fontProperty.addOption({value: 'Montserrat, sans-serif', name: 'Montserrat'}));
list.push(fontProperty.addOption({value: 'Open Sans, sans-serif', name: 'Open Sans'}));
fontProperty.set('list', list);
styleManager.render();
});Development
Clone the repository
$ git clone https://github.com/artf/grapesjs-baml.git
$ cd grapesjs-bamlInstall it
$ npm iStart the dev server
$ npm startReleasing
- Run
npm run v:patchto bump the version in package.json and create a git tag - Push the commit + new tag
- Go to github and draft a new release
- Select the new tag and add some release notes
- Hit publish, the release will automatically publish to npm
License
BSD 3-Clause
