GrapesJS Newsletter Preset
This preset configures GrapesJS to be used as a Newsletter Builder with some unique features and blocks composed specifically for being rendered correctly inside all major email clients.
Demo: http://grapesjs.com/demo-newsletter-editor.html
Summary
- Commands
gjs-get-inlined-htmlGet html with inlined CSSgjs-open-import-templateOpens a modal for the importgjs-toggle-imagesEnable/Disable images
- Blocks
sect100A section with 1 100% cell insidesect50A section with 2 50% cells insidesect30A section with 3 33.3333% cells insidesect37A section with 2 cells inside: 30% and 70%buttonSimple buttondividerDivider blocktextSimple text componenttext-sectA block with 2 text components, respectively for the heading and paragraphimageSimple image componentquoteText component for quotesgrid-itemsBlock of 2 components in rowlist-itemsList of 2 components
- Plugin
- Name:
gjs-preset-newsletter - Options:
modalTitleImportTitle for the import modal, default: 'Import template'modalLabelImportLabel for the import modal, default: ''modalLabelExportLabel for the export modal, default: ''modalBtnImportLabel for the import button, default: 'Import'importPlaceholderTemplate as a placeholder inside import modal, default: ''inlineCssIftrue, inlines CSS on export, default:truecellStyleDefault style used inside blockstds, default:{ padding: 0, margin: 0, 'vertical-align': 'top' }tableStyleDefault style used for blocks tables, default:{ height: '150px', margin: '0 auto 10px auto', padding: '5px 5px 5px 5px', width: '100%' }
- Name:
Download
Download using one of the options:
npm i grapesjs-preset-newsletteroryarn add grapesjs-preset-newsletter- Latest release link https://github.com/artf/grapesjs-preset-newsletter/releases/latest
- CDN
Usage
<link href="path/to/grapes.min.css" rel="stylesheet"/>
<link href="path/to/grapesjs-preset-newsletter.css" rel="stylesheet"/>
<script src="path/to/grapes.min.js"></script>
<script src="path/to/grapesjs-preset-newsletter.min.js"></script>
<div id="gjs"></div>
<script type="text/javascript">
var editor = grapesjs.init({
container : '#gjs',
plugins: ['gjs-preset-newsletter'],
pluginsOpts: {
'gjs-preset-newsletter': {
modalTitleImport: 'Import template',
// ... other options
}
}
});
</script>
Development
Clone the repository
$ git clone https://github.com/artf/grapesjs-preset-newsletter.git
$ cd grapesjs-preset-newsletter
Install dependencies
$ npm i
The plugin relies on GrapesJS via peerDependencies, so you have to install it manually (without adding it to package.json)
$ npm i grapesjs --no-save
Start the dev server
$ npm start
License
BSD 3-Clause
