You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/api/hooks_server-side.md
+33Lines changed: 33 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -247,3 +247,36 @@ Things in context:
247
247
248
248
This hook will allow a plug-in developer to re-write each line when exporting to HTML.
249
249
250
+
## exportFileName
251
+
Called from src/node/handler/ExportHandler.js
252
+
253
+
Things in context:
254
+
255
+
1. padId
256
+
257
+
This hook will allow a plug-in developer to modify the file name of an exported pad. This is useful if you want to export a pad under another name and/or hide the padId under export. Note that the doctype or file extension cannot be modified for security reasons.
Copy file name to clipboardExpand all lines: doc/easysync/easysync-full-description.tex
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -83,7 +83,7 @@ \section{Composition of Changesets}
83
83
84
84
\begin{itemize}
85
85
\item[] $A=(n_1\rightarrow n_2)[\cdots]$
86
-
\item[] $A=(n_2\rightarrow n_3)[\cdots]$
86
+
\item[] $B=(n_2\rightarrow n_3)[\cdots]$
87
87
\end{itemize}
88
88
it is clear that there is a third changeset $C=(n_1\rightarrow n_3)[\cdots]$ such that applying $C$ to a document $X$ yeilds the same resulting document as does applying $A$ and then $B$. In this case, we write $AB=C$.
89
89
@@ -97,14 +97,14 @@ \section{Changeset Merging}
97
97
98
98
This is where \emph{merging} comes in. Merging takes two changesets that apply to the same initial document (and that cannot be composed), and computes a single new changeset that presevers the intent of both changes. The merge of $A$ and $B$ is written as $m(A,B)$. For the Etherpad system to work, we require that $m(A,B)=m(B,A)$.
99
99
100
-
Aside from what we have said so far about merging, there aremany different implementations that will lead to a workable system. We have created one implementation for text that has the following constraints.
100
+
Aside from what we have said so far about merging, there are many different implementations that will lead to a workable system. We have created one implementation for text that has the following constraints.
101
101
102
102
\section{Follows} \label{follows}
103
103
104
104
When users $A$ and $B$ have the same document $X$ on their screen, and they proceed to make respective changesets $A$ and $B$, it is no use to compute $m(A,B)$, because $m(A,B)$ applies to document $X$, but the users are already looking at document $XA$ and $XB$. What we really want is to compute $B'$ and $A'$ such that
105
105
$$XAB' = XBA' = Xm(A,B)$$
106
106
107
-
``Following'' computes these $B'$ and $A'$ changesets. The definition of the ``follow'' function $f$ is such that $Af(A,B)=Bf(B,A)=m(A,B)=m(B,A)$. When we computer$f(A,B)$.
107
+
``Following'' computes these $B'$ and $A'$ changesets. The definition of the ``follow'' function $f$ is such that $Af(A,B)=Bf(B,A)=m(A,B)=m(B,A)$. When we compute$f(A,B)$
108
108
\begin{itemize}
109
109
\item Insertions in $A$ become retained characters in $f(A,B)$
110
110
\item Insertions in $B$ become insertions in $f(A,B)$
0 commit comments