Skip to content
This repository has been archived by the owner on May 28, 2019. It is now read-only.

Real-time collaborative editor for AsciiDoc file (based on Asciidoctor.js, AsciidoctorJ and Java EE 7 WebSocket)

License

Notifications You must be signed in to change notification settings

mgreau/when-websocket-met-asciidoctor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-time collaborative editor for AsciiDoc

This project gives you the possibility to work on the same AsciiDoc file with a team and see the rendering in realtime.

It’s based on the Asciidoctor project thanks to :

How to test it ?

  1. Install it quickly (0.1.0-alpha3)

    curl https://raw.github.com/mgreau/when-websocket-met-asciidoctor/master/install.sh | bash
  2. or try it online at http://wildfly-mgreau.rhcloud.com/ad-editor (running on OpenShift).

  3. or clone the project and follow the instructions below

Collaborative-editor
Figure 1. Demo Collaborative Editor

If you have an existing asciidoc file, you can drag and drop this file to the editor :

Drag and drop feature
Figure 2. Drag and drop feature

You can also work on an offline mode with just your browser :

Offline mode feature
Figure 3. Offline mode feature

0.1.0-alpha4-SNAPSHOT (dev in progress)

  • dzSlides backend : you can work on your slides for a presentation !

0.1.0-alpha3 - new features

  • *Full offline mode* : if you are not connected to the server by WebScoket protocol, then the rendering view is still working in real-time with the Javascript project asciidoctor.js

  • *Drag and Drop* : you can drag a AsciiDoc file from your laptop and drop it into the editor and the content of the file will be loaded into the editor

0.1.0-alpha2 new features

  • Create a new space OR join others author with a spaceID

  • Browser storage with HTML5 IndexedDB for backup (save and load AsciiDoc source)

  • Fullscreen mode for HTML5 preview

  • Improved UI Design

  • HTML5 preview in realtime :

    • each time the AsciiDoc source is changed if you have clicked on Render On Change

    • each time you press "Alt+R" if you have clicked on Render On Alt+R button

  • Patch feature :

    • if an other author send a version, you can click on Compute Diff button to see differences between your adoc file and the last adoc file

    • if the patch seems ok, click on Apply Patch and you adoc source will be up to date

  • Load the last AsciiDoc source send by an other author

Diff feature example
Figure 4. Compute diff feature
Patch feature example
Figure 5. patch feature

Changelog

You can read all changes between each release in the changelog file.

Roadmap

A lot of cool features are planned :) You can read all open and closed issues and milestones

[DEV MODE] Install on your laptop

Important
Prerequisites
  • JDK 7

  • Apache Maven 3.1

  1. Clone or download this github project ($APP_HOME)

  2. Installing the Java EE 7 Compliance App server

    1. Download WildFly 8.0.0-Final ($JBOSS_HOME)

    2. Then you need to deploy the Asciidoctor module into your WildFly app server

    3. For the slides features, you have to install asciidoctor-backends into $JBOSS_HOME/standalone/datas

  3. Installing Bower

    1. Bower depends on Node and npm. It’s installed globally using npm:

      npm install -g bower
    2. Installing the bower dependencies needed by this app (into $APP_HOME/src/main/webapp/libs)

      cd $APP_HOME
      bower install
  4. Build the WAR and test it into WildFly AS with maven/arquillian :

    1. if the environement variable $JBOSS_HOME is set :

      mvn clean package -Pwildfly-managed-arquillian
    2. if you haven’t set the $JBOSS_HOME env variable :

      mvn clean package -Pwildfly-managed-arquillian -DserverRoot=<path_to_the_server>
  5. Deploy the app automatically with maven :

    1. if the app server is started

      mvn wildfly:deploy -Dmaven.test.skip=true
    2. if the app server isn’t started

      mvn wildfly:run -Dmaven.test.skip=true -Djboss-as.home=<path_to_the_server>
  6. Launch your browser and enjoy :)

Technology used

  • Asciidoctor project

    • AsciidoctorJ 0.1.4

    • asciidocor.js

  • Java EE 7

    • CDI 1.1

    • WebSocket 1.0

    • JSON-P 1.0

    • EJB 3.2

  • Web Client

    • AngularJS 1.2.11

    • Ace Editor

    • Bootstrap 3.0

  • Tests

    • JUnit 4.8

    • Arquillian 1.1.2

  • Java EE 7 Compliance App server

About

Real-time collaborative editor for AsciiDoc file (based on Asciidoctor.js, AsciidoctorJ and Java EE 7 WebSocket)

Resources

License

Stars

Watchers

Forks

Packages

No packages published