Web editor as express middleware
JavaScript CSS HTML
Latest commit b546436 May 31, 2017 coderaiser feature(travis) node_js: 8
Permalink
Failed to load latest commit information.
assets
bin feature(package) add eslint May 23, 2017
client
css
img
json
modules feature(edward) add execon from npm May 25, 2017
server
vendor feature(emmet) mv to vendor May 25, 2017
.babelrc refactor(server) Object.assign May 23, 2017
.bowerrc
.editorconfig
.eslintrc feature(package) add eslint May 23, 2017
.gitignore
.jshintrc feature(edward) es2015-ify Oct 24, 2016
.npmignore
.travis.yml feature(travis) node_js: 8 May 31, 2017
ChangeLog
LICENSE docs(license) 2017 May 25, 2017
README.md
bower.json
package.json chore(package) v4.5.2 May 25, 2017
webpack.config.js chore(edward) es2015-ify May 25, 2017

README.md

Edward License NPM version Dependency Status

Web editor used in Cloud Commander based on Ace.

Edward

Features

  • Syntax highlighting based on extension of file for over 110 languages.
  • Built-in emmet (for html files)
  • Drag n drop (drag file from desktop to editor).
  • Built-in jshint (with options in .jshintrc file, could be overriden by ~/.jshintrc)
  • Built-in beautifier (with options in json/beautify.json, could be overriden by ~/.beautify.json)
  • Configurable options (json/edit.json could be overriden by ~/.edward.json)

Install

npm i edward -g

NPM_INFO

Command line parameters

Usage: edward [filename]

Parameter Operation
-h, --help display help and exit
-v, --version output version information and exit

Hot keys

Key Operation
Ctrl + s save
Ctrl + f find
Ctrl + h replace
Ctrl + g go to line
Ctrl + b beautify js, css or html
Ctrl + m minify js, css or html
Ctrl + e evaluate (JavaScript only supported)

For more details see Ace keyboard shortcuts.

API

Edward could be used as middleware for express. For this purpuse API could be used.

Server

edward(options)

Middleware of edward. Options could be omitted.

const edward = require('edward');
const express = require('express');
const app = express();

app.use(edward({
    minify  : true,  /* default */
    online  : true,  /* default */
    diff    : true,  /* default */
    zip     : true,  /* default */
    authCheck: function(socket, success) { /* optional */
    }
}));

app.listen(31337);

edward.listen(socket)

Could be used with socket.io to handle editor events with.

const io = require('socket.io'),
const socket = io.listen(server);

edward.listen(socket);

Client

Edward uses ace on client side, so API is similar. All you need is put minimal html, css, and js into your page.

Minimal html:

<div class="edit" data-name="js-edit"></div>
<script src="/edward/edward.js"></script>

Minimal css:

html, body, .edit {
    height: 100%;
    margin: 0;
}

Minimal js:

edward('[data-name="js-edit"]', function(editor) {
    editor.setValue('Hello edward!');
});

For more information you could always look around into assets and bin directory.

Environments

In old node.js environments that supports es5 only, dword could be used with:

var edward = require('dword/legacy');

Related

License

MIT