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-html
Get html with inlined CSSgjs-open-import-template
Opens a modal for the importgjs-toggle-images
Enable/Disable images
- Blocks
sect100
A section with 1 100% cell insidesect50
A section with 2 50% cells insidesect30
A section with 3 33.3333% cells insidesect37
A section with 2 cells inside: 30% and 70%button
Simple buttondivider
Divider blocktext
Simple text componenttext-sect
A block with 2 text components, respectively for the heading and paragraphimage
Simple image componentquote
Text component for quotesgrid-items
Block of 2 components in rowlist-items
List of 2 components
- Plugin
- Name:
gjs-preset-newsletter
- Options:
modalTitleImport
Title for the import modal, default: 'Import template'modalLabelImport
Label for the import modal, default: ''modalLabelExport
Label for the export modal, default: ''modalBtnImport
Label for the import button, default: 'Import'importPlaceholder
Template as a placeholder inside import modal, default: ''inlineCss
Iftrue
, inlines CSS on export, default:true
cellStyle
Default style used inside blockstd
s, default:{ padding: 0, margin: 0, 'vertical-align': 'top' }
tableStyle
Default 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-newsletter
oryarn 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