Giter Club home page Giter Club logo

etherpad-lite's Introduction

Etherpad on Sandstorm

This branch ports Etherpad to Sandstorm. To use it:

  1. Run bin/installDeps.sh once after cloning the repo. Note that in the main branch, this is done automatically by run.sh, but in the Sandstorm branch that line has been removed because it doesn't make sense inside the sandbox.
  2. Run bin/run.sh once, let Etherpad start, and then ctrl+C it. This does some first-time setup, creating some necessary files. If you do not do this, you'll get EROFS errors when Etherpad tries to create these files inside the sandbox.
  3. You may now run spk dev as described in the Sandstorm porting guide.
  4. If you plan to run spk pack to build a final package, FIRST run bin/run.sh again. This time, actually open up the local Etherpad instance, click on things, and especially open the timeslider. During this time, Etherpad is populating the minified code cache, which will be shipped with the package. This improves Etherpad startup time. HOWEVER, if you plan to do any further Etherpad development touching client-side code, you must first delete the cache. Otherwise, spk dev will happily serve the cached files and you won't see your changes.
  5. Also, before spk pack, optionally run minify-cache.sh to minify all assets. This requires uglify and cleancss commands are on your PATH.

Original Etherpad README follows


A really-real time collaborative word processor for the web

alt text

About

Etherpad is a really-real time collaborative editor maintained by the Etherpad Community.

Etherpad is written in JavaScript (99.9%) on both the server and client so it's easy for developers to maintain and add new features. Because of this Etherpad has tons of customizations that you can leverage.

Etherpad is designed to be easily embeddable and provides a HTTP API that allows your web application to manage pads, users and groups. It is recommended to use the available client implementations in order to interact with this API.

There is also a jQuery plugin that helps you to embed Pads into your website.

There's also a full-featured plugin framework, allowing you to easily add your own features. By default your Etherpad is rather sparse and because Etherpad takes a lot of it's inspiration from Wordpress plugins are really easy to install and update. Once you have Etherpad installed you should visit the plugin page and take control.

Finally, Etherpad comes with translations into most languages! Users are automatically delivered the correct language for their local settings.

Visit beta.etherpad.org to test it live.

Also, check out the FAQ, really!

Installation

Etherpad works with node v0.10+ (except 6.0 and 6.1).

Windows

Prebuilt windows package

This package works out of the box on any windows machine, but it's not very useful for developing purposes...

  1. Download the latest windows package
  2. Extract the folder

Now, run start.bat and open http://localhost:9001 in your browser. You like it? Next steps.

Fancy install

You'll need node.js and (optionally, though recommended) git.

  1. Grab the source, either
  1. start bin\installOnWindows.bat

Now, run start.bat and open http://localhost:9001 in your browser.

Update to the latest version with git pull origin, then run bin\installOnWindows.bat, again.

If cloning to a subdirectory within another project, you may need to do the following:

  1. Start the server manually (e.g. node/node_modules/ep_etherpad-lite/node/server.js])
  2. Edit the db filename in settings.json to the relative directory with the file (e.g. application/lib/etherpad-lite/var/dirty.db)
  3. Add auto-generated files to the main project .gitignore

Next steps.

GNU/Linux and other UNIX-like systems

You'll need gzip, git, curl, libssl develop libraries, python and gcc.

  • For Debian/Ubuntu: apt-get install gzip git curl python libssl-dev pkg-config build-essential
  • For Fedora/CentOS: yum install gzip git curl python openssl-devel && yum groupinstall "Development Tools"
  • For FreeBSD: portinstall node, npm, git (optional)

Additionally, you'll need node.js installed, Ideally the latest stable version, we recommend installing/compiling nodejs from source (avoiding apt).

As any user (we recommend creating a separate user called etherpad):

  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

Now, run bin/run.sh and open http://127.0.0.1:9001 in your browser.

Update to the latest version with git pull origin. The next start with bin/run.sh will update the dependencies.

You like it? Next steps.

Next Steps

Tweak the settings

You can initially modify the settings in settings.json. (If you need to handle multiple settings files, you can pass the path to a settings file to bin/run.sh using the -s|--settings option. This allows you to run multiple Etherpad instances from the same installation.) Once you have access to your /admin section settings can be modified through the web browser.

You should use a dedicated database such as "mysql", if you are planning on using etherpad-in a production environment, since the "dirtyDB" database driver is only for testing and/or development purposes.

Plugins and themes

Etherpad is very customizable through plugins. Instructions for installing themes and plugins can be found in the plugin wiki article.

Helpful resources

The wiki is your one-stop resource for Tutorials and How-to's, really check it out! Also, feel free to improve these wiki pages.

Documentation can be found in docs/.

Development

Things you should know

Understand git and watch this video on getting started with Etherpad Development.

If you're new to node.js, start with Ryan Dahl's Introduction to Node.js.

You can debug Etherpad using bin/debugRun.sh.

If you want to find out how Etherpad's Easysync works (the library that makes it really realtime), start with this PDF (complex, but worth reading).

Getting started

You know all this and just want to know how you can help?

Look at the TODO list and our Issue tracker. (Please consider using jshint, if you plan to contribute code.)

Also, and most importantly, read our Developer Guidelines, really!

Get in touch

Join the mailinglist and make some noise on our busy freenode irc channel #etherpad-lite-dev!

Modules created for this project

  • ueberDB "transforms every database into a object key value store" - manages all database access
  • channels "Event channels in node.js" - ensures that ueberDB operations are atomic and in series for each key
  • async-stacktrace "Improves node.js stacktraces and makes it easier to handle errors"

Donate!

License

Apache License v2

etherpad-lite's People

Contributors

booo avatar clkao avatar cristo-rabani avatar cweider avatar devoidfury avatar disy-mk avatar fourplusone avatar gared avatar gedion avatar hanspinckaers avatar jhollinger avatar johnmclear avatar joker-x avatar kentonv avatar ldidry avatar lpagliari avatar luto avatar marcelklehr avatar marktraceur avatar nikerabbit avatar pita avatar prtksxna avatar s1341 avatar siebrand avatar simong avatar stephan48 avatar tjwelde avatar webzwo0i avatar wikinaut avatar xavidotron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

etherpad-lite's Issues

Can the font size be a little bigger?

Hi!

One of the issues we have been dealing with etherpad in sandstorm is that the font size cannot be made bigger with the usual ctrl + because everything grows and not just the pad buttons. Currently there is no plugin to configure the font size, and i just use to edit manually the etherpad css to fix this (there is one to configure text family, font size, etc but if you write something new it's back to the old size).

ether#2671

If it's not possible, what would be the options to get this done? there are a couple of coworkers complaining they will get blind ;)

Word count plugin

Hi,

It would be very helpful to have the option to count words in the document.

The plugin ep_countable appears to provide this functionality (I did not try it, though).

Thanks.

Printing has no text on any but the first page

When printing a Etherpad using its print button text only appears on the first page of the output (I used a PDF printer). Author colors for the lines do appear in the margins of subsequent pages so there is "something".

This bug happens in Sandstorm-hosted Etherpads. I hope this is the right repo to report bugs with that, if not, please accept my excuses.

Pad settings don't persist past a browser refresh

Steps to reproduce:

  • Create a new Sandstorm Etherpad grain

  • Change the authorship sidebar to not appear for this grain

  • Reload the page

Expected results:

  • Authorship sidebar continues to not appear for this grain

Actual results:

  • That setting is reset to its default of "Yes", show the authorship sidebar

Video of steps to reproduce:

out

Make it so that the Authorship Colors checkbox can be unchecked "globally" instead of just for my view

My assumption when I would share a document would be that people would not see the different colors / history of the document. If I were to use this in a professional capacity and share a document with a client where I had set my view to not see the colors, but they had not, and I shared a multi-colored document, it would look unprofessional. I would also not necessarily expect that a document I didn't see colors on would have highlighted text when shared with someone else.

Another fix strategy I could imagine would be to have the default collaboration uncolored and to "opt-in" or "turn on" the feature.

Restoring line numbers

Line numbers are useful to refer to a specific zone in the document while collaboratively discussing it, but the ep_author_neat plugin replaces them.

Consider adding something like clkao/ep_author_neat#18 to restore them, as well as an option for enabling/disabling them (real "Show line numbers")?

Formatting works in "Read-Only" mode, but doesn't save.

  • Make an Etherpad
  • Make sure there's some text
  • Make a read-only share link
  • Open in incognito tab
  • Select text
  • Bold the text

It will turn bold. However if you refresh the page, the formatting will reset. So, it doesn't save.

authorship misalignment

Slight vertical misalignment of authorship color (from the plugin) by approximately 1 line.

image

Font Families and Font Type are different

The list of fonts shown in the "font families" and "font type" setting (in settings) are different.
This makes it very hard to set a font consistently for the document. For example, if the font is changed using "font families", there may be no equivalent for the default font set in "font type" resulting in inconsistent fonts on further editing.

Doing Ctrl-B, then typing, doesn't result in bold text, despite ep_sticky_attributes

Steps to reproduce:

  • Create a new Etherpad grain, e.g. on demo.sandstorm.io in an incognito window.

  • Press Ctrl-B on one's keyboard (or persumably Option-B on a mac?).

  • Type some text.

Expected behavior:

  • The new text is written-out as bold.

Actual behavior:

  • The new text isn't bold, but instead is in the default style.

Implementation notes:

  • Per ether#447 , the ep_sticky_attributes plugin should enable this behavior. However, per the default grain text, that plugin is enabled in Etherpad on Sandstorm. Therefore, I'm not quite sure what to suggest here except possibly tracing how keyboard events are handled in the case of Ctrl-B.

Markdown plugin included but not working

Using version 1.5.7 from 2015 Aug 16, which is in in the app market.

When creating a new grain, the plugin ep_markdown seems to be included according to the initial pad content:

This version of Etherpad includes the following plugins: ep_align ep_author_neat ep_comments_page ep_font_color ep_font_family ep_font_size ep_headings2 ep_markdown ep_page_view ep_print ep_spellcheck ep_sticky_attributes ep_subscript_and_superscriptd

However, there seems to be no way to use it.

There should be a "view markdown" option in the settings.
screenshot 2016-04-14

There should be a "markdown export" option.
screenshot 2016-04-14

Support for Etherpad plugins?

Hi, I'm trying Etherpad on Sandstorm. It's working very nicely.

Are you planning on also supporting Etherpad plugins?

Export to Markdown isn't functioning correctly

The file exported contains an odd LaTeX-like version of the initial Etherpad text for a newly-created document:

Welcome to Etherpad!

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!

Get involved with Etherpad at \url{http://etherpad.org}

This version of Etherpad includes the following plugins: ep\_align ep\_author\_neat ep\_comments\_page ep\_font\_colo\
r ep\_font\_family ep\_font\_size ep\_headings2 ep\_markdown ep\_page\_view ep\_print ep\_spellcheck ep\_sticky\_attr\
ibutes ep\_subscript\_and\_superscript

For what it's worth, the documents which I was attempting to export all contained basic, minimal elements of Markdown syntax, e.g. using square-brackets followed by parentheses for links, and # symbols for headings.

Add a button to share the document with someone else

While I as a user already have the ability to share the link with someone else, I would like the ability to click a button to share it with another user. This button would send them an email with the link for them to view it / edit it.

Pad settings don't save

After checking the boxes for "chat always on screen" and "show chat and users" and switching between different grains, closing the etherpad grain, and opening it again, the settigns seem lost.

Twitchy comment boxes under certain layouts

When hovering over a commented-on range, Etherpad shows a popup box with the comment. Under certain circumstances, this will appear directly under the mouse, which means the mouse is no longer hovering over the commented range, so Etherpad hides the popup box. But then the mouse is hovering over a commented-on range again, so Etherpad shows the box.

This makes it very hard to actually read the comment thread. An example of a problematic layout for a comment can be found in the screenshots below. The following two frames alternate as quickly as the browser can render them:

frame1

frame2

Revisioning not working

The Timeslider button doesn't do anything, so I can't access revisions.
This is a must have functionality for collaboration...

edit: This works in alpha, not in demo / oasis.
Doesn't work on my local and I have 0.101, same as alpha, and Etherpad is the same version (v2015.06.18 (1.5.6+)).

Remove sample text

@paulproteus commented in a PR that you commented that a document probably shouldn't contain sample data, so it is ready to use at the outset. This probably holds true for Etherpad as well. :)

My first step to opening a new text file shouldn't be deleting the stuff that's in it.

User profile icon doesn't display initially

User icon didn't display at all until the grain was refreshed. I haven't been able to reproduce this issue but I'll file it here so additional details can be added if it happens again.

image

Comments at end of long document are very hard to interact with

When a comment is made on a range of text toward the end of a pad with scroll height larger than the window height, it's basically impossible to read/interact with the comment thread, because the comment box always goes below the highlighted section, so in this case it extends the length of the document offscreen. But if you scroll down to try to read the comment, you likely stop hovering over the highlighted section, and the comment thread disappears, which causes the height to return to its previous value. It becomes very hard to actually read comments.

Possible solutions, in order of most desirable to least desirable, include:

  • make clicking on a region with comments toggle showing the comment thread, so that you don't have to be very precise with a mouse ever
  • don't immediately hide the comment thread when hover ends, and keep the comment thread visible if hovering over the comment thread box
  • show the comment box somewhere else that doesn't affect scroll height (some threads may be longer than the document, though)

Comment threads don't get updated correctly

To reproduce:

  • User A opens a grain in browser tab 1.
  • User A leaves a comment.
  • User A keeps browser tab 1 open.
  • User B replies to the comment.

I would expect that when user A hovers over their comment, they should see their comment and user B's reply.

Instead, they see just their own comment.


Additionally, if user B makes a comment elsewhere in the pad, user A will see that range highlighted, but when user A hovers over that range, they see the first thread, rather than the new comment.

Text can suddenly be trapped into a not-very-wide box for no apparent reason

Steps to reproduce:

  • Create a new Etherpad grain

  • Clear all text within it

  • Copy this single line of text, with a space at the end of it, to the clipboard:

But maybe the rain isn't really to blame. So I'll remove the cause, but not the symptom.

  • Paste it a few times

Expected behavior:

  • Every line (except possibly the last line) in the paragraph takes up the full width of the page.

Actual behavior:

  • Etherpad appears to introduce some line wrapping, sometimes mid-word.

Screenshot:

screenshot from 2016-11-17 11 21 11

Crashes completely on new firefox browser

Hello,

I'm using the latest sandstorm version and since today all of my etherpad grains crash using the latest firefox(57.0) on OSX (El Capitan, 10.11.6). (But for the first days it went fine with it). Then:

An error occurred while loading the pad
ReferenceError: require is not defined in https://.................sandcats.io/p/main (line 858)

//

The first time I got another error, something like "type error: c is null..." But now I just get the above for every single existing document and for any new ones I try to create.

โ€“ In Chromium it just works fine.

Any idea?

P.S: I'm not sure, if "crash" is the right word, the App opens, but the View is completey crashed (CSS not working) and no content or way to edit...

April 7th Security Release for Etherpad

http://blog.etherpad.org/2018/04/07/important-release-1-6-4/

"""TLDR; Site admins should Update ASAP to 1.6.4 due to several security enhancements.

Today we released Etherpad 1.6.4.

This release fixes several security vulnerabilities in recent versions:

One is an arbitrary code execution vulnerability in version 1.6.3.
Another is an arbitrary code execution vulnerability which is present in all versions from 1.5.0 on, but only exploitable on sites that store pads in DirtyDB, CouchDB, MongoDB, or RethinkDB.
A third allows attackers to export any pad without knowing its name (as normally required) in all versions from 1.5.0 on."""

Comments are unusable at window widths < ~950 pixels

Comments are only displayed in the gutter if your screen is particularly wide. The form to allow you to write a reply is only visible in the gutter.

If your browser window is not fullscreened, you may never discover that you can actually reply to comments!

Missing authorship information

Reproduction:

  • User 1 creates new etherpad grain
  • User 1 creates new sharing link via share access button
  • User 2 (who is already logged in) opens that link
  • User 1 types into the window
  • User 2 sees that text attributed to "Unknown Author". I would expect it to show User 1's display name.
  • User 2 types into the window
  • User 1 sees that text attributed to "Unknown Author". I would expect it to show User 2's display name.

If User 1 refreshes the page, the apparent authorship information is corrected for both users. (I didn't test what happens if User 2 does likewise; I imagine it would probably also fix the attribution labels.)

In the screenshots below, Alice Dev Admin is User 1 and Dave Dev User is User 2.

alice

dave

confusing failure mode when user doesn't know they are read-only

Apparently hitting backspace refreshes the grain when you're a read-only viewer on an Etherpad. This was confusing when I was invited to an Etherpad document and I didn't realize that @kentonv only granted me read-only permissions. So as I was trying to edit, highlighting text and hitting backspace, I just kept refreshing the grain. Confused, I tried again, and keep refreshing it.

We should maybe (1) make typical edit action keys (like backspace) not trigger a refresh, and (2) indicate to the user what mode they're in in such a scenario.

In Safari on a Mac, using keyboard arrow keys doesn't result in scrolling

Steps to reproduce:

  • Start by using Safari on a Mac.

  • Open a new Etherpad document, e.g. using demo.sandstorm.io.

  • Make the document longer than one screen tall by e.g. copying and pasting the contents until you would need to scroll to see the entire document.

  • Click inside the text of the document.

  • Press and hold the keyboard down arrow key in an attempt to make the document scroll down.

Expected behavior:

  • The viewable area of the text moves down. (This happens on Chromium on Debian for me.)

Actual behavior:

  • No change in the viewable area of the text.

Notes:

  • This was reported by an avid Sandstorm user to support@. I verified the issue by having @jadeqwang test out the above steps-to-reproduce on her Mac.

changing colours is buggy

When one user changes colours of some text and then another user edits that text,
changing colours then fails to update the colour of the text that the second user changed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.