You can drag columns around on the header to reposition them.
GitHub | GitLab | Penflip | O’Reilly Atlas | GitBook | ShareLaTeX | WriteLaTeX | Authorea | Beegit | Draft | Inkling Habitat | Leanpub | Connexions | Wiki Books | Google Docs | Boundless | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Open source | X | (23) | X | X | X | |||||||||||
Technology stack (13) | Git, Rails, Redcarpet, Gollum | Git, Rails, Redcarpet, Gollum | GitLab, Prose | GitLab, HTMLBook, CKEditor, Docker | Node.js, Marked fork, Calibre | Node.js, Ace | CodeMirror | Git, Rails | NodeGit, Express, (15) | ? | ? | ? | Python | PHP | ? | ? |
Looks good (30) | X | l | X | X | X | X | X | l | ? | ? | ? | ? | ? | ? | ? | ? |
Full feature public (4) | X | X (11) | X | 30 day trial | X | ? | X | X | X | ? | ? | ? | ? | X | ? | |
Supports all browsers (1) | X | X | X | X | X | X | ? | X | X | X | ? | ? | ? | X | Only Chrome for editing. | |
Public access (25) | X | X | X | X | X | ? | X | X | (3) | ? | ? | ? | ? | X | ? | |
Meaningful URLs (2) | X | X | X | X | X | ? | ? | (6) | ? | ? | ? | ? | ? | |||
Project metrics (17) | X | ? | X | ? | X | ? | ? | ? | ? | ? | ? | ? | ? | |||
User metrics (18) | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||||||
Output sale | ? | X | ? | X | ? | |||||||||||
Math support | ? | ? | ? | ? | ? | ? | ? | X | ? | ? | ? | ? | ? | ? | limited | ? |
Anyone can create content (19) | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | Request needed. |
Compilation | ? | |||||||||||||||
Markdown | X | X | X | X | X | X | X | X | X | ? | ? | ? | ? | |||
LaTeX | X | X | X | ? | ? | ? | ? | |||||||||
Subdirectories (10) | X | X | ? | X | X | ? | X | X | ? | ? | ? | ? | ? | X | ? | |
Multi file input (7) | (19) | X | X | X | X | ? | X | ? | ? | ? | select on by one, no auto build | ? | ||||
PDF output | ? | X | X | X | ? | X | ? | ? | ? | ? | ? | X | ? | |||
Versioning | ? | |||||||||||||||
Issue tracker | X | X | X | ? | ? | ? | Comments, but no real tracker. | ? | ? | ? | ? | ? | ? | |||
Version diff | X | X | X | ? | ? | ? | X | only previous | ? | ? | ? | ? | ? | ? | ||
Merge request with diff | X | X | X | X | ? | ? | W | ? | ? | ? | ? | ? | inline | ? | ||
Rendered HTML diff (26) | X | X | X | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | |
Resolve merge conflicts | a | X | ? | ? | ? | ? | ? | ? | ? | ? | ? | |||||
Reset to version | X | X | ? | ? | ? | ? | X | X | X | ? | ? | ? | X | ? | ||
Commit message | X | X | ? | ? | X (but well hidden) | X | ? | ? | ? | ? | ? | |||||
Branches | X | X | (5) | l | ? | ? | ? | ? | ? | ? | ? | |||||
Web editor | (local) | ? | ||||||||||||||
No WYSIWYG (14) | X | ? | X | X | X | ? | ? | X | ? | ? | ? | ? | ? | ? | ||
Side by side editor preview | a | X | X | X | W | ? | ? | ? | ? | ? | ? | ? | ? | |||
HTML preview as you type | X | ? | ? | X | ? | ? | ? | ? | ? | ? | ||||||
Forward search | X | ? | ? | ? | X Limited accuracy | ? | ? | ? | ? | ? | ? | ? | ||||
Backwards search | X | ? | ? | ? | X Limited accuracy | ? | ? | ? | ? | ? | ? | ? | ||||
Git diff in editor | ? | X (12) | X (8) | ? | ? | ? | ? | ? | ? | ? | ? | |||||
Multi file commit (21) | ? | ? | ? | X (16) | ? | ? | ? | ? | ? | ? | ? | |||||
Drag and drop chapter order | ? | X | X | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||
Spell checking | ? | ? | ? | ? | X | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | |
Add words to dictionary | ? | ? | ? | browser | ? | X | ? | ? | ? | ? | ? | ? | ? | ? | ? | |
Syntax aware (22) | ? | ? | ? | ? | X | ? | ? | ? | ? | ? | ? | ? | ? | ? | ||
Local | ? | |||||||||||||||
No local install required (24) | X | X | X | X | X | X | X | X | X | X | X | X | X | X | ? | |
Git access | X | X | X | X | X | ? | ? | W (9) | ? | ? | ? | ? | ? | |||
Local compilation | PDF compiler closed source | X | X | ? | ? In theory yes, in practice versions not specified. | ? | ? | ? | ? | ? | ? | |||||
Meta | ? | |||||||||||||||
Developers | 230 employees | 5 | 1 | >= 3 (27) | ? | 2 | ? | 3 | 2 | 1 | 9 (multiple projects) | ? | ? | ? | ? | 3 |
Investments | 100M | ? | ? | ? | ? | ? | ? | 650k | ? | ? | ? | ? | ? | ? | 8M | |
Users signed up | 3M | ~ 1k on SaaS (9) | ? | ? | ? | >= 250 (public email) | >=80k | ? | ? | ? | ? | ? | ? | ? | ? | 1M |
Project’s issue tracker (29) | ? | GitLab Issues | Penflip Issues | Atlas Issues | ? | ? | ? | Authorea Issues | ? | ? | ? | ? | ? | ? | ? | ? |
Legend:
X
: yesl
: limited: not really no, but not really yes either?
: not yet determinedw
: WONTFIXa
: accepted by developersNotes:
(1) All major browsers: Firefox, Chrome, IE, Safari, Opera.
(2) Like on GitHub: user/project
, no random IDs.
(3) Author must explicitly share a random URL. Inconvenient.
(5) Only keeps one Git repo per project: forks are dealt into branches named with the username of their authors.
(6) Possibly unpredictable URLs of form: name_123
,
where the numeric ID is only used if its not the first time a name is used.
(7) Generate a single output file form multiple markdown LaTeX files.
(8) When pressing the save button.
(9) Possible to export the Git repository, but no clone or push.
(10) Possible to put source files in subdirectories from web interface.
(11) Paid features only affect local installations.
(12) Except for… Markdown, but it does not matter as that should be done from the viewer! http://feedback.gitlab.com/forums/176466-general/suggestions/5855625-show-both-diff-and-preview-when-editing-markdown-f
(13) Inferred if closed source.
(14) Negation because it is an anti-feature =)
(15) Can someone infer the compiler? Is it Marked, Showdown or markdown-js? Deducing from collaborator’s GitHub stars, Node.js based through NodeGit. and builtwith.com says Express which is coherent with the Node.js hypothesis.
(16) Looks possible, but I didn’t manage it, maybe due to minor bug?
(17) Like GitHub Stars.
(18) Like Stack Overflow rep.
(19) Kind of if you count GH pages.
(20) Some websites only allow certain people to contribute content, e.g., teachers of known universities, in an attempt to have only good material. This is a huge entry bottleneck, and the curation it provides can be achieved by upvote metrics instead.
(21) A commit that changes multiple files.
Having merge --squash
is almost a full workaround for this for merge request based work flows.
http://feedback.gitlab.com/forums/176466-general/suggestions/5662794-provide-squash-option-when-merging-merge-requests
(22) Spell checking that only checks in syntax blocks that need to be checked, e.g., not inside Markdown code blocks, nor LaTeX macro names. Currently not trivial. Request on ACE: https://github.com/ajaxorg/ace/issues/2107.
(23) TODO: only compiler and editor, but not web interface?
(24) You don’t need to install anything to get it working: it is all done on the browser.
(25) Signed out users can view outputs and source code.
(26) Like GitHub and Atlas
(27) Hard to estimate since they are a big organization with multiple projects.
But the following people are strongly involved in coding:
And the following are also admins on the forum:
(28) Issues only appear on the tracker after being reviewed.
(29) Many projects strategically treat issues privately to give less information to competition. Security disclosures are probably a secondary though since users capable of finding them know better than to publish those openly.
Screenshots at: https://github.com/booktree/files/tree/abffff03d19a03b6ab0101c2063415ffbf61598d/beegit
Has started hacking marked / preprocessing things with the addition of custom attributes as # header {#id .class}
.
Uses GitHub for web interface.
Provides two completely separate utilities:
Can communicate with GitHub to:
Has forked Marked into https://github.com/GitbookIO/kramed, because marked is too slow to accept MRs, and they want to be closer to Kramdown syntax.
Uses hidden internal format and converters: http://webapps.stackexchange.com/questions/45562/what-file-format-or-coding-standard-is-a-google-document-in AKA vendor lock-in.
Exports to Word, PDF and HTML.
Imports from Word, but you need a Chrome plugin to edit it.
Limited merge request functionality through editing: you make suggestions and they appear rendered with a comment. Once accepted or decline, the comment is gone.
Their editor is a highly specialized and advanced WYSIWYG front-end for HTMLBook! It implements WYSIWYG nesting, IDs and references.
Screenshots at: https://github.com/booktree/files/tree/abffff03d19a03b6ab0101c2063415ffbf61598d/atlas
Each user works on a single branch at a time: http://forum.atlas.oreilly.com/t/have-multiple-branches-per-user-before-submitting-pull-request/75
Once you submit a pull request with a branch, the branch disappears from the UI, and you can no longer edit it.
Multiple pull requests can be made like this: create branch, submit, create branch, etc.
But you can’t create branch, create branch.
Pull request revision is hardcore: you can accept each of the diff hunks individually, edit the entire file on a single UI, and jump to the next hunk with a button.
There are no merge conflicts. Add add is always proposed and the user has to deal with it by jumping through hunks.
By examining the branches on a git clone
of the repository, we see that the following branch scheme is used:
master
: the master branch
<username>-at<random-id>
: each time user creates a branch
<username>-atmr<random-id>
: after submitting the merge requests
So all users use branches in the same repository. This means that any user with write access can overwrite the branches of other users if he wants.
Impressive feature: LaTeX HTML preview on editor. But I wonder how robust that can be.
Offers a .tex
and a .git
download, but no automatic way to convert
the .git
inputs into the generated .tex
which depends on how you exported it.
So strictly speaking no local compile support, although it is easy to figure out the missing steps.
We should watch the author of this blog and his comments on Markdown editors: http://www.bitfalls.com/2014/05/the-state-of-markdown-editors-may-2014.html