mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-05-10 17:22:00 -04:00
remove trailing whitespace
This commit is contained in:
parent
e1edc8079f
commit
0b6709392b
104 changed files with 1479 additions and 1479 deletions
|
@ -70,11 +70,11 @@ This creates an empty apool. A apool saves which attributes were used during the
|
|||
```
|
||||
> apool.fromJsonable({"numToAttrib":{"0":["author","a.kVnWeomPADAT2pn9"],"1":["bold","true"],"2":["italic","true"]},"nextNum":3});
|
||||
> console.log(apool)
|
||||
{ numToAttrib:
|
||||
{ numToAttrib:
|
||||
{ '0': [ 'author', 'a.kVnWeomPADAT2pn9' ],
|
||||
'1': [ 'bold', 'true' ],
|
||||
'2': [ 'italic', 'true' ] },
|
||||
attribToNum:
|
||||
attribToNum:
|
||||
{ 'author,a.kVnWeomPADAT2pn9': 0,
|
||||
'bold,true': 1,
|
||||
'italic,true': 2 },
|
||||
|
|
|
@ -175,7 +175,7 @@ This hook gets called every time the client receives a message of type `name`. T
|
|||
|
||||
`collab_client.js` has a pretty extensive list of message types, if you want to take a look.
|
||||
|
||||
##aceStartLineAndCharForPoint-aceEndLineAndCharForPoint
|
||||
##aceStartLineAndCharForPoint-aceEndLineAndCharForPoint
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
@ -190,7 +190,7 @@ Things in context:
|
|||
This hook is provided to allow a plugin to turn DOM node selection into [line,char] selection.
|
||||
The return value should be an array of [line,char]
|
||||
|
||||
##aceKeyEvent
|
||||
##aceKeyEvent
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context:
|
||||
|
@ -204,7 +204,7 @@ Things in context:
|
|||
This hook is provided to allow a plugin to handle key events.
|
||||
The return value should be true if you have handled the event.
|
||||
|
||||
##collectContentLineText
|
||||
##collectContentLineText
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
Things in context:
|
||||
|
@ -217,7 +217,7 @@ Things in context:
|
|||
This hook allows you to validate/manipulate the text before it's sent to the server side.
|
||||
The return value should be the validated/manipulated text.
|
||||
|
||||
##collectContentLineBreak
|
||||
##collectContentLineBreak
|
||||
Called from: src/static/js/contentcollector.js
|
||||
|
||||
Things in context:
|
||||
|
@ -229,7 +229,7 @@ Things in context:
|
|||
This hook is provided to allow whether the br tag should induce a new magic domline or not.
|
||||
The return value should be either true(break the line) or false.
|
||||
|
||||
##disableAuthorColorsForThisLine
|
||||
##disableAuthorColorsForThisLine
|
||||
Called from: src/static/js/linestylefilter.js
|
||||
|
||||
Things in context:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
## What can I do with this API?
|
||||
The API gives another web application control of the pads. The basic functions are
|
||||
|
||||
* create/delete pads
|
||||
* create/delete pads
|
||||
* grant/forbid access to pads
|
||||
* get/set pad content
|
||||
|
||||
|
@ -15,30 +15,30 @@ Take a look at [HTTP API client libraries](https://github.com/Pita/etherpad-lite
|
|||
|
||||
### Example 1
|
||||
|
||||
A portal (such as WordPress) wants to give a user access to a new pad. Let's assume the user have the internal id 7 and his name is michael.
|
||||
A portal (such as WordPress) wants to give a user access to a new pad. Let's assume the user have the internal id 7 and his name is michael.
|
||||
|
||||
Portal maps the internal userid to an etherpad author.
|
||||
Portal maps the internal userid to an etherpad author.
|
||||
|
||||
> Request: `http://pad.domain/api/1/createAuthorIfNotExistsFor?apikey=secret&name=Michael&authorMapper=7`
|
||||
>
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
Portal maps the internal userid to an etherpad group:
|
||||
|
||||
> Request: `http://pad.domain/api/1/createGroupIfNotExistsFor?apikey=secret&groupMapper=7`
|
||||
>
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: {groupID: "g.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
Portal creates a pad in the userGroup
|
||||
|
||||
> Request: `http://pad.domain/api/1/createGroupPad?apikey=secret&groupID=g.s8oes9dhwrvt0zif&padName=samplePad&text=This is the first sentence in the pad`
|
||||
>
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: null}`
|
||||
|
||||
Portal starts the session for the user on the group:
|
||||
|
||||
> Request: `http://pad.domain/api/1/createSession?apikey=secret&groupID=g.s8oes9dhwrvt0zif&authorID=a.s8oes9dhwrvt0zif&validUntil=1312201246`
|
||||
>
|
||||
>
|
||||
> Response: `{"data":{"sessionID": "s.s8oes9dhwrvt0zif"}}`
|
||||
|
||||
Portal places the cookie "sessionID" with the given value on the client and creates an iframe including the pad.
|
||||
|
@ -50,7 +50,7 @@ A portal (such as WordPress) wants to transform the contents of a pad that multi
|
|||
Portal retrieves the contents of the pad for entry into the db as a blog post:
|
||||
|
||||
> Request: `http://pad.domain/api/1/getText?apikey=secret&padID=g.s8oes9dhwrvt0zif$123`
|
||||
>
|
||||
>
|
||||
> Response: `{code: 0, message:"ok", data: {text:"Welcome Text"}}`
|
||||
|
||||
Portal submits content into new blog post
|
||||
|
@ -98,7 +98,7 @@ Responses are valid JSON in the following format:
|
|||
|
||||
### 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-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.
|
||||
|
||||
### Node Interoperability
|
||||
|
||||
|
@ -118,7 +118,7 @@ Pads can belong to a group. The padID of grouppads is starting with a groupID li
|
|||
|
||||
#### createGroup()
|
||||
* API >= 1
|
||||
|
||||
|
||||
creates a new group
|
||||
|
||||
*Example returns:*
|
||||
|
@ -127,7 +127,7 @@ creates a new group
|
|||
#### createGroupIfNotExistsFor(groupMapper)
|
||||
* 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 lite group ids
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {groupID: g.s8oes9dhwrvt0zif}}`
|
||||
|
@ -170,7 +170,7 @@ lists all existing groups
|
|||
* `{code: 0, message:"ok", data: {groupIDs: []}}`
|
||||
|
||||
### Author
|
||||
These authors are bound to the attributes the users choose (color and name).
|
||||
These authors are bound to the attributes the users choose (color and name).
|
||||
|
||||
#### createAuthor([name])
|
||||
* API >= 1
|
||||
|
@ -183,7 +183,7 @@ creates a new author
|
|||
#### createAuthorIfNotExistsFor(authorMapper [, name])
|
||||
* 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 lite author ids
|
||||
|
||||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
|
||||
|
@ -290,7 +290,7 @@ returns the text of a pad formatted as HTML
|
|||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
### Pad
|
||||
Group pads are normal pads, but with the name schema GROUPID$PADNAME. A security manager controls access of them and its forbidden for normal pads to include a $ in the name.
|
||||
Group pads are normal pads, but with the name schema GROUPID$PADNAME. A security manager controls access of them and its forbidden for normal pads to include a $ in the name.
|
||||
|
||||
#### createPad(padID [, text])
|
||||
* API >= 1
|
||||
|
@ -398,7 +398,7 @@ returns the timestamp of the last revision of the pad
|
|||
*Example returns:*
|
||||
* `{code: 0, message:"ok", data: {lastEdited: 1340815946602}}`
|
||||
* `{code: 1, message:"padID does not exist", data: null}`
|
||||
|
||||
|
||||
#### sendClientsMessage(padID, msg)
|
||||
* API >= 1.1
|
||||
|
||||
|
|
|
@ -43,9 +43,9 @@ Information about an author
|
|||
* **colorID** - the colorID of this author as shown in the pad
|
||||
|
||||
### mapper2group:$MAPPER
|
||||
Maps an external application identifier to an internal group
|
||||
Maps an external application identifier to an internal group
|
||||
### mapper2author:$MAPPER
|
||||
Maps an external application identifier to an internal author
|
||||
Maps an external application identifier to an internal author
|
||||
### group:$GROUPID
|
||||
a group of pads
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
\documentclass{article}
|
||||
\documentclass{article}
|
||||
\usepackage{hyperref}
|
||||
|
||||
\begin{document}
|
||||
|
@ -258,7 +258,7 @@ in Section \ref{follows}.
|
|||
\paragraph{Proof that $\mathbf{AXY=V \Rightarrow A'X'Y'=VD}$.}
|
||||
Substituting $A'X'Y'=(AB)(f(B,X))(f(f(X,B),Y))$, we
|
||||
recall that merges are commutative. So for any two
|
||||
changesets $P$ and $Q$,
|
||||
changesets $P$ and $Q$,
|
||||
$$m(P,Q)=m(Q,P)=Qf(Q,P)=Pf(P,Q)$$
|
||||
|
||||
Applying this to the relation above, we see
|
||||
|
@ -267,7 +267,7 @@ A'X'Y'&=& AB f(B,X) f(f(X,B),Y) \\
|
|||
&=&AX f(X,B) f(f(X,B),Y) \\
|
||||
&=&A X Y f(Y, f(X,B)) \\
|
||||
&=&A X Y D \\
|
||||
&=&V D
|
||||
&=&V D
|
||||
\end{eqnarray*}
|
||||
As claimed.
|
||||
|
||||
|
@ -348,7 +348,7 @@ the client's changeset $C$, it does five things:
|
|||
server's most recent revision number, which we call
|
||||
$r_H$ ($H$ for HEAD). $C'$ can be computed using
|
||||
follows (Section \ref{follows}). Remember that the server has a series of
|
||||
changesets,
|
||||
changesets,
|
||||
$$S_0\rightarrow S_1\rightarrow \ldots S_{r_c}\rightarrow S_{r_c+1} \rightarrow \ldots \rightarrow S_{r_H} $$
|
||||
$C$ is relative to $S_{r_c}$, but we need to compute $C'$ relative to $S_{r_H}$.
|
||||
We can compute a new $C$ relative to $S_{r_c+1}$ by computing $f(S_{r_c+1},C)$. Similarly we can repeat for
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
\documentclass[12pt]{article}
|
||||
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[USenglish]{babel}
|
||||
\usepackage[USenglish]{babel}
|
||||
|
||||
|
||||
\begin{document}
|
||||
|
@ -68,7 +68,7 @@ Here are descriptions of the operations, where capital
|
|||
letters are variables:
|
||||
|
||||
\begin{description}
|
||||
\item{{\bf :N}} \quad \\
|
||||
\item{{\bf :N}} \quad \\
|
||||
Source text has length $N$ (must be first op)
|
||||
\item{{\bf >N}} \quad \\
|
||||
Final text is $N$ (positive) characters longer than source
|
||||
|
|
|
@ -72,7 +72,7 @@ Here are descriptions of the operations, where capital letters are variables:
|
|||
"-N" : Skip over (delete) N characters from the source text, none of them newlines
|
||||
"=N" : Keep N characters from the source text, none of them newlines
|
||||
"|L+N" : Insert N characters from the source text, containing L newlines. The last
|
||||
character inserted MUST be a newline, but not the (new) document's final newline.
|
||||
character inserted MUST be a newline, but not the (new) document's final newline.
|
||||
"|L-N" : Delete N characters from the source text, containing L newlines. The last
|
||||
character inserted MUST be a newline, but not the (old) document's final newline.
|
||||
"|L=N" : Keep N characters from the source text, containing L newlines. The last character
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue