# eLyXer

elixir, n: a substance believed to cure all ills.
eLyXer (pronounced elixir) is a LyX to HTML converter. While there are a ton of such projects all over the web, eLyXer has a clear focus on flexibility and elegant output.
LyX is a wonderful text editor which produces beautiful PDF files. Internally it exports documents to LaTeX, and from there to PDF. Sadly there is not an equivalent “export to HTML” option… Until now! With eLyXer you can convert your master’s thesis, learned article, fascinating novel or love letter to a web page that you can then share, publish on the web or import into other text editors.
The user guide can be accessed online. The developer guide is recommended reading for people that want to contribute to the development, especially section 3. For the mathematically inclined: be sure to visit the Math Showcase.

## Requirements

eLyXer is a standalone tool: it does not require that LyX is installed to run. It can convert documents generated with versions of LyX from 1.5.5 through 2.0 (and probably earlier versions). It requires Python 2.3.4, and should work with versions up to 2.6.1. It has been tested to run on Linux, Mac OS X and Windows.
Resource usage is minimum. Converting UserGuide.lyx (154 pages, about 40000 words) takes less than 15 seconds on my Asus EeePC 1000H, which sports an Intel Atom processor at 1.60 GHz. Memory usage is also quite frugal, remaining at about 35 MB even with in-memory processing.
The output requires XHTML, CSS2 and Unicode; any CSS2-compatible browser should do. Minimum browser versions for some popular programs are: Microsoft Internet Explorer 7, Mozilla Firefox 3, Safari 3 and Chrome 1.

## Usage

eLyXer is a command line tool written in Python. Installation is done using the included installer; just type at the prompt as root:
# python install.py

or, on Windows:
> Python.exe install.py

Basic usage is as simple as writing at the command line prompt:
$elyxer.py document.lyx page.html  or, on Windows: > elyxer.py document.lyx page.html  where document.lyx is your LyX document, and page.html is the resulting HTML page. Write $ elyxer.py --help

or see the user guide for details.

eLyXer (including this page and all accompanying materials) is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the LICENSE file for details.
math2html (and math.css) is released without warranties or conditions of any kind under the terms of the Apache License, version 2.0.

## Contact

You can contact the main developer at elyxer@gmail.com; he really likes getting challenging documents and making eLyXer work with them. Any document sample you send will be treated with the utmost confidentiality.
The author lingers around official LyX mailing lists and monitors for mentions of eLyXer. You can also join the low-volume mailing list, where announcements of new versions are always posted. Bugs can be reported at the Savannah page; features can be requested too. Feature requests that fit in will be added to the wish list.

## Acknowledgments

This little project is my little contribution back to the wonderful LyX community, for all these years of fruitful use.
Thanks to Stevan White for encouraging me to publish the tool. Thanks also to John D. Cook, rikal, Bradley M. Bell, Markus Kuhn, Jens Nöckel, Günter Milde and LyX developers Georg Baum, Uwe Stöhr and Jürgen Spitzmüller for their wonderful lists of TeX commands and Unicode equivalents; to FileFormat.info for their complete tables of Unicode characters. More thanks go to Christian Ridderström for helping me out right at the start; to Ignacio García for relentless encouragement; to Abdelrazak Younes, Pavel Sanda, Günter Milde, Olivier Ripoll, José Matos, Iain Mac Donald, Uwe Stöhr for their interesting suggestions. Thanks to Uwe Stöhr, Hans Bezemer, Sara Teinturier, Vladimir Ermakov for their translations. Packagers Sven Hoexter (Debian), Uwe Stöhr (Windows), Ray Rashif (ArchLinux) and Liviu Andronic (Ubuntu) have helped with their work to make it easy to try it out. Olivier Ripoll, Geremy Condra, Simon South, Jack Desert, John Boik, Yan Wong, Jose Ramón Álvarez Sánchez, Günter Milde, Pascal Francq, Marco R. Gazzetta have provided quite interesting patches. Davide P. Cervone has been extremely helpful and responsive about jsMath and MathJax integration, while Paul Hunter has also gone beyond the call of duty with his help integrating MathToWeb (which unfortunately has not been fruitful yet, due to my lack of skill and certainly not to his lack of interest).
Thanks to Nikos Alexandris, Joachim Kreimer-de Fries (Osnabryg), Richard Talley, Wolfgang Keller, Murray Eisenberg, Robert Orr, a Linux guy in Singapore, Anders Ekberg, Pavel Sanda, Steve Hastings, Sven Hoexter, Xie Chao, Uwe Stöhr, Jürgen Spitzmüller, Olivier Ripoll, Konrad Hofbauer, Eduardo Grosclaude, Ken, Jens Nöckel, Dr Eberhard W Lisse, William Crocker, Sara Teinturier, Hans Bezemer, Jack Desert, Hartmut Haase, Rainer Dorsch, Wolfgang Engelmann, Rodrigo Benenson, Stefano Franchi, Steve Litt, Paul Johnson, Yan Wong, Yaron Goland, Francis Girard, Rene de Zwart, Jose Ramón Álvarez Sánchez, Günter Milde, Axel Jacobs, Tiago Pedro Alves-Ferreira, Hoy Loper, Bob Alvarez, Tommaso Cucinotta and countless others for their testing and bug reporting.
A silent “thank you” goes to all those who downloaded the tool and silently tested it to their satisfaction (or were not bugged enough to write about it). Thanks to those who have criticized the tool for making eLyXer improve every day, if only to prove you wrong. And finally thanks to all those who have helped and yet I am now forgetting about them, for not hating me for it.