- Is your bug about the Mavo website? Then you should report it here: https://github.com/mavoweb/mavo.io/issues
- Is your bug about the Plugin Directory? Then please report it here: https://github.com/mavoweb/plugins/issues
- Do you want to request a new feature? Unless you’re convinced it's essential and should be in the core, please consider posting a plugin request instead.
If you’re reporting a bug, please include a link to an HTML page (or a codepen, jsbin etc) that reproduces the issue. Try to make that as small and simple as possible. This is not strictly required, but will greatly improve the chances of us being able to reproduce and fix the bug as soon as possible.
- Currently the main need is documentation. There is literally a ton of functionality in Mavo that is not documented yet. If you want to contribute, please consider contributing documentation, tutorials and/or demos. You could do that in the mavo.io repo.
If you want to contribute to Mavo's source, read on.
- The actual files to edit are in
src
andsrc-css
. The files indist
are generated, as follows:mavo.js
is a concatenation of the files insrc
.mavo.es5.js
ismavo.js
above, but transpiled using Babelmavo.min.es5.js
is likemavo.es5.js
, but minifiedmavo.min.js
is likemavo.js
but minified.mavo.css
is generated frommavo.scss
and all its includes.
- The naming convention in
src
is:- The entry point is
mavo.js
- Main components have a simple filename, without periods, e.g.
collection.js
. - Addons that could be omitted have a period in their name and start with the name of the file they are addons for. For example:
- Files defining storage backends are named
backend.xxx.js
wherexxx
is the name of the backend. E.g.backend.dropbox.js
,backend.github.js
etc.
- Files defining storage backends are named
- The entry point is
- Install node and npm if you don't have them already
cd
to the mavo folder and runnpm install
to install the build tools (gulp & gulp plugins)- Done!
- Run
gulp watch
before making any changes, to automatically build every time you save. You might find an editor plugin for this helpful, I use gulp-control for Atom. - Run
python -m SimpleHTTPServer
to be able to usehttp://
locally, since most APIs don't like thefile://
protocol and Chrome doesn't even allow AJAX on it. - Copies of all dependencies are in
lib
. If you need to update them, clone their repos to folders adjacent to mavo, then rungulp lib
. If you're runninggulp watch
this will be done automatically once changes are detected. Note that you need to clone ALL of them to do this, gulp will overwrite any libs it can't find with empty files!.