Markdown has recently become popular among academics as a way to produce scientific documents. When paired with document conversion engines such as pandoc, it provides an easy and powerful way to write. Being a simple plain-text markup language, Markdown is easy to learn, and can be handled by version control systems. We decided to build Markx as to make markdown writing a collaborative effort that could be hosted as web service. For additional discussion, see these blog posts:
- Markdown and the future of collaborative academic writing
- Thoughts on a preprint server
- How to ditch Word
-
Free as in free speech - promotes open science, pre-publication review, collaboration.
-
Free as in free beer - uses open-source, free software and released under CC-NC-BY 3.0.
-
Easy to learn - Markdown is not LaTex, for better and worse.
-
Integration with GitHub - free hosted version control, ideal for backup, versioning and collaboration.
-
Pandoc integration - multiple Markdown extensions, multiple output formats.
-
Display math with LaTeX formatting -
$x^2+y^2=r^2$ . -
Citations - BibTeX: [@Drake1991]
-
Code highlighting:
if __name__ == '__main__': # Bind to PORT if defined, otherwise default to 5000. port = int(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port, debug=app.debug)
-
Local host option with a limited number of dependencies - for offline editing on the train and in the airplane
-
Remote host option at http://markx.herokuapp.com/ - no installation required
-
By scientists, for scientists
Markx is currently in development but can be used locally (see Installation instructions below) or remotely at http://markx.herokuapp.com.
It is still experimental, so take care of your data!
We would love to get feedback from anyone using it - Please open an issue with any bug or suggestion.
If you can't open an issue please contact Yoav on twitter (you can use the #markx
hashtag).
- Server side (this is what you need to install if you run it on localhost):
- Client side (no installation required):
- PageDown - Stack Overflow's Markdown editor
- Google Code Prettifier - Code highlighting
-
MathJax - Rendering of
$LaTeX$ equations - BibTeX-js - Processing BibTeX citations
- Twitter Bootstrap with [Glyphicons Free]
- Github.js - integration with GitHub
- 3rd Party services:
- GitHub - version control hosting
- Docverter - online conversion of Markdown to multiple formats (currently, citations are not supported)
- LaTeX-Online - online compilation of LaTeX to PDF
- Clone this repository
- Install Python - developed with version 2.7
- Install Flask and requests:
pip install Flask requests
- Optional: Add an environment variable named
BIB_FILE
with the path to your BibTeX.bib
file, or createconfig.py
file with the key-valueBIB_FILE = "/path/to/bib/file"
or replace the filelibrary.bib
with your own.bib
file. Note that the path should be absolute and should not start with a~
. - Run Markx by calling
python server.py
and pointing your browser at http://localhost:5000.
More help can be found in the help file.