Package Exports
- grapesjs
- grapesjs/dist/css/grapes.min.css
- grapesjs/package.json
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (grapesjs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
GrapesJS
GrapesJS is a free and open source Web Template Builder which helps you building HTML templates to be used inside sites, newsletters and mobile apps. Mainly GrapesJS was designed to be used inside a CMS to speed up a creation of dynamic templates. To better understand this concept check the image below
Generally any 'template system', that you'd find in various applications like CMS, is composed by the structure (HTML), style (CSS) and variables, which are then replaced with other templates and contents on server-side and rendered on client.
This demo shows an example of what is possible to achieve: http://grapesjs.com/demo.html
Features
Style Manager, for component styling
Layer Manager, that comes handy with nested elements
Code Viewer
Asset Manager, for uploading and managing images
Local and remote storage
Default built-in commands (basically for creating and managing different components)
Installation
You can get GrapesJS with bower install grapesjs
or via git clone https://github.com/artf/grapesjs.git
to directly use it. For development purpose you should follow instructions below.
Development
GrapesJS uses RequireJS to organize its files inside src
folder and Grunt for build them to dist
Clone the repository and enter inside the folder
$ npm install -g grunt-cli
$ git clone https://github.com/artf/grapesjs.git
$ cd grapesjs
Install all necessary dependencies
$ npm install
Build GrapesJS
$ npm run build
Launch server, which also gonna watch some files, and try out the demo on localhost:8000
$ npm start
Tests are already available inside browser on localhost:8000/test
If Grunt is already installed globally you could change the port by using grunt dev --port 9000
Usage
JQuery is the only hard dependency so you have to include it before using GrapesJS
<script src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
After that include scripts from GrapesJS with all your configurations
<link rel="stylesheet" href="path/to/grapes.min.css">
<script src="path/to/grapes.min.js"></script>
<div id="gjs"></div>
<script type="text/javascript">
var editor = grapesjs.init({
container : '#gjs',
components: '<div class="txt-red">Hello world!</div>',
style: '.txt-red{color: red}',
});
</script>
You could also grab the content directly from the element with fromElement
property
<div id="gjs">
<div class="txt-red">Hello world!</div>
<style>.txt-red{color: red}</style>
</div>
<script type="text/javascript">
var editor = grapesjs.init({
container : '#gjs',
fromElement: true,
});
</script>
For more practical example I suggest to look up the code inside this demo: http://grapesjs.com/demo.html
Configuration
Check the getting started guide here: wiki
API
API References (draft) could be found here: API-Reference
Testing
$ npm test
TODOs before beta release
- Stable-like, documented APIs - Probably would be better redefined during beta
Acknowledgements
GrapesJS is built on top of this amazing open source projects:
- Backbone - gives Backbone to web applications
- Backbone.Undo - a simple Backbone undo-manager
- Keymaster - keyboard shortcuts
- CodeMirror - versatile text editor
- Spectrum - no hassle colorpicker
- FontAwesome - the iconic font and CSS framework
Support
If you like the project support it with a donation of your choice.
License
BSD 3-clause