‘Etherpad Lite’ -> ‘Etherpad’
parent
6e4d94069f
commit
b34224559d
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
**Our goal is to iterate in small steps. Release often, release early. Evolution instead of a revolution**
|
**Our goal is to iterate in small steps. Release often, release early. Evolution instead of a revolution**
|
||||||
|
|
||||||
## General goals of Etherpad Lite
|
## General goals of Etherpad
|
||||||
To make sure everybody is going in the same direction:
|
To make sure everybody is going in the same direction:
|
||||||
* easy to install for admins and easy to use for people
|
* easy to install for admins and easy to use for people
|
||||||
* easy to integrate into other apps, but also usable as standalone
|
* easy to integrate into other apps, but also usable as standalone
|
||||||
|
|
|
@ -53,9 +53,9 @@ You'll need gzip, git, curl, libssl develop libraries, python and gcc.
|
||||||
|
|
||||||
Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt.
|
Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt.
|
||||||
|
|
||||||
**As any user (we recommend creating a separate user called etherpad-lite):**
|
**As any user (we recommend creating a separate user called etherpad):**
|
||||||
|
|
||||||
1. Move to a folder where you want to install Etherpad Lite. Clone the git repository `git clone git://github.com/ether/etherpad-lite.git`
|
1. Move to a folder where you want to install Etherpad. Clone the git repository `git clone git://github.com/ether/etherpad-lite.git`
|
||||||
2. Change into the new directory containing the cloned source code `cd etherpad-lite`
|
2. Change into the new directory containing the cloned source code `cd etherpad-lite`
|
||||||
|
|
||||||
Now, run `bin/run.sh` and open <http://127.0.0.1:9001> in your browser.
|
Now, run `bin/run.sh` and open <http://127.0.0.1:9001> in your browser.
|
||||||
|
|
|
@ -67,4 +67,4 @@ mv etherpad-lite-win.zip $START_FOLDER
|
||||||
echo "clean up..."
|
echo "clean up..."
|
||||||
rm -rf /tmp/etherpad-lite-win
|
rm -rf /tmp/etherpad-lite-win
|
||||||
|
|
||||||
echo "Finished. You can find the zip in the Etherpad Lite root folder, it's called etherpad-lite-win.zip"
|
echo "Finished. You can find the zip in the Etherpad root folder, it's called etherpad-lite-win.zip"
|
||||||
|
|
|
@ -337,7 +337,7 @@ function convertPad(padId, callback)
|
||||||
var oldName2newName = {};
|
var oldName2newName = {};
|
||||||
|
|
||||||
//replace the authors with generated authors
|
//replace the authors with generated authors
|
||||||
// we need to do that cause etherpad saves pad local authors, etherpad lite uses them global
|
// we need to do that cause where the original etherpad saves pad local authors, the new (lite) etherpad uses them global
|
||||||
for(var i in apool.numToAttrib)
|
for(var i in apool.numToAttrib)
|
||||||
{
|
{
|
||||||
var key = apool.numToAttrib[i][0];
|
var key = apool.numToAttrib[i][0];
|
||||||
|
|
|
@ -8,7 +8,7 @@ cmd /C node -e "" || ( echo "Please install node.js ( http://nodejs.org )" && ex
|
||||||
|
|
||||||
echo _
|
echo _
|
||||||
echo Checking node version...
|
echo Checking node version...
|
||||||
set check_version="if(['8','10'].indexOf(process.version.split('.')[1].toString()) === -1) { console.log('You are running a wrong version of Node. Etherpad Lite requires v0.8.x or v0.10.x'); process.exit(1) }"
|
set check_version="if(['8','10'].indexOf(process.version.split('.')[1].toString()) === -1) { console.log('You are running a wrong version of Node. Etherpad requires v0.8.x or v0.10.x'); process.exit(1) }"
|
||||||
cmd /C node -e %check_version% || exit /B 1
|
cmd /C node -e %check_version% || exit /B 1
|
||||||
|
|
||||||
echo _
|
echo _
|
||||||
|
|
|
@ -2,7 +2,7 @@ This is the new load testing file: https://bitbucket.org/rbraakman/etherpad-stre
|
||||||
|
|
||||||
BELOW is the original load testing file.
|
BELOW is the original load testing file.
|
||||||
|
|
||||||
This load tester is extremely useful for testing how many dormant clients can connect to etherpad lite.
|
This load tester is extremely useful for testing how many dormant clients can connect to etherpad.
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
Emulate characters being typed into a pad
|
Emulate characters being typed into a pad
|
||||||
|
@ -10,7 +10,7 @@ Emulate characters being typed into a pad
|
||||||
HOW TO USE (from @mjd75) proper formatting at: https://github.com/ether/etherpad-lite/issues/360
|
HOW TO USE (from @mjd75) proper formatting at: https://github.com/ether/etherpad-lite/issues/360
|
||||||
|
|
||||||
Server 1:
|
Server 1:
|
||||||
Installed Node.js (etc), EtherPad Lite and MySQL
|
Installed Node.js (etc), EtherPad and MySQL
|
||||||
|
|
||||||
Server 2:
|
Server 2:
|
||||||
Installed Xvfb and PhantomJS
|
Installed Xvfb and PhantomJS
|
||||||
|
|
|
@ -18,10 +18,10 @@ done
|
||||||
|
|
||||||
#Stop the script if its started as root
|
#Stop the script if its started as root
|
||||||
if [ "$(id -u)" -eq 0 ] && [ $ignoreRoot -eq 0 ]; then
|
if [ "$(id -u)" -eq 0 ] && [ $ignoreRoot -eq 0 ]; then
|
||||||
echo "You shouldn't start Etherpad-Lite as root!"
|
echo "You shouldn't start Etherpad as root!"
|
||||||
echo "Please type 'Etherpad Lite rocks my socks' or supply the '--root' argument if you still want to start it as root"
|
echo "Please type 'Etherpad rocks my socks' or supply the '--root' argument if you still want to start it as root"
|
||||||
read rocks
|
read rocks
|
||||||
if [ ! $rocks = "Etherpad Lite rocks my socks" ]
|
if [ ! $rocks = "Etherpad rocks my socks" ]
|
||||||
then
|
then
|
||||||
echo "Your input was incorrect"
|
echo "Your input was incorrect"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -7,7 +7,7 @@ The API gives another web application control of the pads. The basic functions a
|
||||||
* grant/forbid access to pads
|
* grant/forbid access to pads
|
||||||
* get/set pad content
|
* get/set pad content
|
||||||
|
|
||||||
The API is designed in a way, so you can reuse your existing user system with their permissions, and map it to etherpad lite. Means: Your web application still has to do authentication, but you can tell etherpad lite via the api, which visitors should get which permissions. This allows etherpad lite to fit into any web application and extend it with real-time functionality. You can embed the pads via an iframe into your website.
|
The API is designed in a way, so you can reuse your existing user system with their permissions, and map it to Etherpad. Means: Your web application still has to do authentication, but you can tell Etherpad via the api, which visitors should get which permissions. This allows Etherpad to fit into any web application and extend it with real-time functionality. You can embed the pads via an iframe into your website.
|
||||||
|
|
||||||
Take a look at [HTTP API client libraries](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries) to see if a library in your favorite language.
|
Take a look at [HTTP API client libraries](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries) to see if a library in your favorite language.
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ Responses are valid JSON in the following format:
|
||||||
|
|
||||||
### Authentication
|
### Authentication
|
||||||
|
|
||||||
Authentication works via a token that is sent with each request as a post parameter. There is a single token per Etherpad-Lite deployment. This token will be random string, generated by Etherpad-Lite at the first start. It will be saved in APIKEY.txt in the root folder of Etherpad Lite. Only Etherpad Lite and the requesting application knows this key. Token management will not be exposed through this API.
|
Authentication works via a token that is sent with each request as a post parameter. There is a single token per Etherpad deployment. This token will be random string, generated by Etherpad at the first start. It will be saved in APIKEY.txt in the root folder of Etherpad. Only Etherpad and the requesting application knows this key. Token management will not be exposed through this API.
|
||||||
|
|
||||||
### Node Interoperability
|
### Node Interoperability
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ creates a new group
|
||||||
#### createGroupIfNotExistsFor(groupMapper)
|
#### createGroupIfNotExistsFor(groupMapper)
|
||||||
* API >= 1
|
* API >= 1
|
||||||
|
|
||||||
this functions helps you to map your application group ids to etherpad lite group ids
|
this functions helps you to map your application group ids to Etherpad group ids
|
||||||
|
|
||||||
*Example returns:*
|
*Example returns:*
|
||||||
* `{code: 0, message:"ok", data: {groupID: g.s8oes9dhwrvt0zif}}`
|
* `{code: 0, message:"ok", data: {groupID: g.s8oes9dhwrvt0zif}}`
|
||||||
|
@ -188,7 +188,7 @@ creates a new author
|
||||||
#### createAuthorIfNotExistsFor(authorMapper [, name])
|
#### createAuthorIfNotExistsFor(authorMapper [, name])
|
||||||
* API >= 1
|
* API >= 1
|
||||||
|
|
||||||
this functions helps you to map your application author ids to etherpad lite author ids
|
this functions helps you to map your application author ids to Etherpad author ids
|
||||||
|
|
||||||
*Example returns:*
|
*Example returns:*
|
||||||
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Custom static files
|
# Custom static files
|
||||||
Etherpad Lite allows you to include your own static files in the browser, by modifying the files in `static/custom`.
|
Etherpad allows you to include your own static files in the browser, by modifying the files in `static/custom`.
|
||||||
|
|
||||||
* `index.js` Javascript that'll be run in `/`
|
* `index.js` Javascript that'll be run in `/`
|
||||||
* `index.css` Stylesheet affecting `/`
|
* `index.css` Stylesheet affecting `/`
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<!-- type=misc -->
|
<!-- type=misc -->
|
||||||
|
|
||||||
The goal of this documentation is to comprehensively explain Etherpad-Lite,
|
The goal of this documentation is to comprehensively explain Etherpad,
|
||||||
both from a reference as well as a conceptual point of view.
|
both from a reference as well as a conceptual point of view.
|
||||||
|
|
||||||
Where appropriate, property types, method arguments, and the arguments
|
Where appropriate, property types, method arguments, and the arguments
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
# About this folder
|
# About this folder
|
||||||
We put all documentations we found about the old Etherpad together in this folder. Most of this is still valid for Etherpad Lite
|
We put all documentations we found about the original Etherpad together in this folder. Most of this is still valid for the current (node.js based) Etherpad.
|
|
@ -1,5 +1,5 @@
|
||||||
# Localization
|
# Localization
|
||||||
Etherpad lite provides a multi-language user interface, that's apart from your users' content, so users from different countries can collaborate on a single document, while still having the user interface displayed in their mother tongue.
|
Etherpad provides a multi-language user interface, that's apart from your users' content, so users from different countries can collaborate on a single document, while still having the user interface displayed in their mother tongue.
|
||||||
|
|
||||||
|
|
||||||
## Translating
|
## Translating
|
||||||
|
@ -83,7 +83,7 @@ Everytime the http server is started, it will auto-detect your messages and merg
|
||||||
|
|
||||||
### Overwrite core messages
|
### Overwrite core messages
|
||||||
|
|
||||||
You can overwrite Etherpad Lite's core messages in your plugin's locale files.
|
You can overwrite Etherpad's core messages in your plugin's locale files.
|
||||||
For example, if you want to replace `Chat` with `Notes`, simply add...
|
For example, if you want to replace `Chat` with `Notes`, simply add...
|
||||||
|
|
||||||
*ep_your-plugin/locales/en.json*
|
*ep_your-plugin/locales/en.json*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Plugins
|
# Plugins
|
||||||
Etherpad-Lite allows you to extend its functionality with plugins. A plugin registers hooks (functions) for certain events (thus certain features) in Etherpad-lite to execute its own functionality based on these events.
|
Etherpad allows you to extend its functionality with plugins. A plugin registers hooks (functions) for certain events (thus certain features) in Etherpad-lite to execute its own functionality based on these events.
|
||||||
|
|
||||||
Publicly available plugins can be found in the npm registry (see <http://npmjs.org>). Etherpad-lite's naming convention for plugins is to prefix your plugins with `ep_`. So, e.g. it's `ep_flubberworms`. Thus you can install plugins from npm, using `npm install ep_flubberworm` in etherpad-lite's root directory.
|
Publicly available plugins can be found in the npm registry (see <http://npmjs.org>). Etherpad-lite's naming convention for plugins is to prefix your plugins with `ep_`. So, e.g. it's `ep_flubberworms`. Thus you can install plugins from npm, using `npm install ep_flubberworm` in etherpad-lite's root directory.
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ Your plugin must also contain a [package definition file](http://npmjs.org/doc/j
|
||||||
```
|
```
|
||||||
|
|
||||||
## Templates
|
## Templates
|
||||||
If your plugin adds or modifies the front end HTML (e.g. adding buttons or changing their functions), you should put the necessary HTML code for such operations in `templates/`, in files of type ".ejs", since Etherpad-Lite uses EJS for HTML templating. See the following link for more information about EJS: <https://github.com/visionmedia/ejs>.
|
If your plugin adds or modifies the front end HTML (e.g. adding buttons or changing their functions), you should put the necessary HTML code for such operations in `templates/`, in files of type ".ejs", since Etherpad uses EJS for HTML templating. See the following link for more information about EJS: <https://github.com/visionmedia/ejs>.
|
||||||
|
|
||||||
## Writing and running front-end tests for your plugin
|
## Writing and running front-end tests for your plugin
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>__SECTION__ - Etherpad Lite v__VERSION__ Manual & Documentation</title>
|
<title>__SECTION__ - Etherpad v__VERSION__ Manual & Documentation</title>
|
||||||
<link rel="stylesheet" href="assets/style.css">
|
<link rel="stylesheet" href="assets/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body class="apidoc" id="api-section-__FILENAME__">
|
<body class="apidoc" id="api-section-__FILENAME__">
|
||||||
<header id="header">
|
<header id="header">
|
||||||
<h1>Etherpad-Lite v__VERSION__ Manual & Documentation</h1>
|
<h1>Etherpad v__VERSION__ Manual & Documentation</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div id="toc">
|
<div id="toc">
|
||||||
|
|
|
@ -778,7 +778,7 @@ createDiffHTML(padID, startRev, endRev) returns an object of diffs from 2 points
|
||||||
|
|
||||||
Example returns:
|
Example returns:
|
||||||
|
|
||||||
{"code":0,"message":"ok","data":{"html":"<style>\n.authora_HKIv23mEbachFYfH {background-color: #a979d9}\n.authora_n4gEeMLsv1GivNeh {background-color: #a9b5d9}\n.removed {text-decoration: line-through; -ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)'; filter: alpha(opacity=80); opacity: 0.8; }\n</style>Welcome to Etherpad Lite!<br><br>This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!<br><br>Get involved with Etherpad at <a href=\"http://etherpad.org\">http://etherpad.org</a><br><span class=\"authora_HKIv23mEbachFYfH\">aw</span><br><br>","authors":["a.HKIv23mEbachFYfH",""]}}
|
{"code":0,"message":"ok","data":{"html":"<style>\n.authora_HKIv23mEbachFYfH {background-color: #a979d9}\n.authora_n4gEeMLsv1GivNeh {background-color: #a9b5d9}\n.removed {text-decoration: line-through; -ms-filter:'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)'; filter: alpha(opacity=80); opacity: 0.8; }\n</style>Welcome to Etherpad!<br><br>This pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!<br><br>Get involved with Etherpad at <a href=\"http://etherpad.org\">http://etherpad.org</a><br><span class=\"authora_HKIv23mEbachFYfH\">aw</span><br><br>","authors":["a.HKIv23mEbachFYfH",""]}}
|
||||||
{"code":4,"message":"no or wrong API Key","data":null}
|
{"code":4,"message":"no or wrong API Key","data":null}
|
||||||
*/
|
*/
|
||||||
exports.createDiffHTML = function(padID, startRev, endRev, callback){
|
exports.createDiffHTML = function(padID, startRev, endRev, callback){
|
||||||
|
|
|
@ -19,7 +19,7 @@ exports.createServer = function () {
|
||||||
var refPath = rootPath + "/.git/" + ref.substring(5, ref.indexOf("\n"));
|
var refPath = rootPath + "/.git/" + ref.substring(5, ref.indexOf("\n"));
|
||||||
version = fs.readFileSync(refPath, "utf-8");
|
version = fs.readFileSync(refPath, "utf-8");
|
||||||
version = version.substring(0, 7);
|
version = version.substring(0, 7);
|
||||||
console.log("Your Etherpad Lite git version is " + version);
|
console.log("Your Etherpad git version is " + version);
|
||||||
}
|
}
|
||||||
catch(e)
|
catch(e)
|
||||||
{
|
{
|
||||||
|
@ -27,11 +27,11 @@ exports.createServer = function () {
|
||||||
}
|
}
|
||||||
console.log("Report bugs at https://github.com/ether/etherpad-lite/issues")
|
console.log("Report bugs at https://github.com/ether/etherpad-lite/issues")
|
||||||
|
|
||||||
serverName = "Etherpad-Lite " + version + " (http://etherpad.org)";
|
serverName = "Etherpad " + version + " (http://etherpad.org)";
|
||||||
|
|
||||||
exports.restartServer();
|
exports.restartServer();
|
||||||
|
|
||||||
console.log("You can access your Etherpad-Lite instance at http://" + settings.ip + ":" + settings.port + "/");
|
console.log("You can access your Etherpad instance at http://" + settings.ip + ":" + settings.port + "/");
|
||||||
if(!_.isEmpty(settings.users)){
|
if(!_.isEmpty(settings.users)){
|
||||||
console.log("The plugin admin page is at http://" + settings.ip + ":" + settings.port + "/admin/plugins");
|
console.log("The plugin admin page is at http://" + settings.ip + ":" + settings.port + "/admin/plugins");
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ exports.expressCreateServer = function (hook_name, args, cb) {
|
||||||
//if abiword is disabled, and this is a format we only support with abiword, output a message
|
//if abiword is disabled, and this is a format we only support with abiword, output a message
|
||||||
if (settings.abiword == null &&
|
if (settings.abiword == null &&
|
||||||
["odt", "pdf", "doc"].indexOf(req.params.type) !== -1) {
|
["odt", "pdf", "doc"].indexOf(req.params.type) !== -1) {
|
||||||
res.send("Abiword is not enabled at this Etherpad Lite instance. Set the path to Abiword in settings.json to enable this feature");
|
res.send("Abiword is not enabled at this Etherpad instance. Set the path to Abiword in settings.json to enable this feature");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ var API = {
|
||||||
},
|
},
|
||||||
"createIfNotExistsFor" : {
|
"createIfNotExistsFor" : {
|
||||||
"func": "createGroupIfNotExistsFor",
|
"func": "createGroupIfNotExistsFor",
|
||||||
"description": "this functions helps you to map your application group ids to etherpad lite group ids",
|
"description": "this functions helps you to map your application group ids to Etherpad group ids",
|
||||||
"response": {"groupID":{"type":"string"}}
|
"response": {"groupID":{"type":"string"}}
|
||||||
},
|
},
|
||||||
"delete" : {
|
"delete" : {
|
||||||
|
@ -124,7 +124,7 @@ var API = {
|
||||||
},
|
},
|
||||||
"createIfNotExistsFor": {
|
"createIfNotExistsFor": {
|
||||||
"func": "createAuthorIfNotExistsFor",
|
"func": "createAuthorIfNotExistsFor",
|
||||||
"description": "this functions helps you to map your application author ids to etherpad lite author ids",
|
"description": "this functions helps you to map your application author ids to Etherpad author ids",
|
||||||
"response": {"authorID":{"type":"string"}}
|
"response": {"authorID":{"type":"string"}}
|
||||||
},
|
},
|
||||||
"listPads": {
|
"listPads": {
|
||||||
|
|
|
@ -35,7 +35,7 @@ exports.root = path.normalize(path.join(npm.dir, ".."));
|
||||||
/**
|
/**
|
||||||
* The app title, visible e.g. in the browser window
|
* The app title, visible e.g. in the browser window
|
||||||
*/
|
*/
|
||||||
exports.title = "Etherpad Lite";
|
exports.title = "Etherpad";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The app favicon fully specified url, visible e.g. in the browser window
|
* The app favicon fully specified url, visible e.g. in the browser window
|
||||||
|
@ -77,7 +77,7 @@ exports.dbSettings = { "filename" : path.join(exports.root, "dirty.db") };
|
||||||
/**
|
/**
|
||||||
* The default Text of a new pad
|
* The default Text of a new pad
|
||||||
*/
|
*/
|
||||||
exports.defaultPadText = "Welcome to Etherpad Lite!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nEtherpad Lite on Github: http:\/\/j.mp/ep-lite\n";
|
exports.defaultPadText = "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nEtherpad on Github: http:\/\/j.mp/ep-lite\n";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A flag that requires any user to have a valid session (via the api) before accessing a pad
|
* A flag that requires any user to have a valid session (via the api) before accessing a pad
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#Move to the base folder
|
#Move to the base folder
|
||||||
cd `dirname $0`
|
cd `dirname $0`
|
||||||
|
|
||||||
#start etherpad lite
|
#start Etherpad
|
||||||
../../../bin/run.sh > /dev/null &
|
../../../bin/run.sh > /dev/null &
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue