Nyctergatis Markup Engine

Nyctergatis Markup Engine (NME) is a library for parsing text with markup and converting it to other text formats. The markup has the following goals:

The markup is based on Creole. Creole is a collaborative work in progress; only its core features are frozen. This is why the documentation of the markup used by NME is not Creole itself, but the documentation provided with the engine.

Usage

The library core is made of two source files in C:

NME.h
header file with all extern declarations and detailed usage information, compatible with C++;
NME.c
function and data definitions.

In addition, the following optional code is provided:

NMEStyle.h and NMEStyle.c
functions to collect style information separately
NMEAutolink.h and NMEAutolink.c
automatic conversion of CamelCase words and URLs to links;
NMEPluginCalendar.h and NMEPluginCalendar.c
plugin to create the calendar corresponding to a given month and year in a table.
NMEPluginRaw.h and NMEPluginRaw.c
plugin to embed raw data copied verbatim to the output stream;
NMEPluginReverse.h and NMEPluginReverse.c
plugin to reverse text;
NMEPluginRot13.h and NMEPluginRot13.c
plugin to apply ROT-13 conversion to text (letters A-M and N-Z are switched);
NMEPluginUppercase.h and NMEPluginUppercase.c
plugin to convert text to uppercase;
NMECpp.h
C++ glue.

The last files are applications:

NMEMain.c
command-line application which filters its input (stdin), which is text with markup, and writes to its output (stdout) the result of the conversion to HTML or several other formats. To build it, cd to the NME distribution directory and type make.
NMETest.cpp
simple test application for NMECpp.h. To build it, cd to the NME distribution directory and type make nmecpp.
NMEGtkTest.c
test application for NMEStyle which displays styled text in a GTK window. It requires GTK+ 2.0, available at http://www.gtk.org. To build it, cd to the NME distribution directory and type make nmegtk.

License

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Yves Piguet nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Release notes

31 March 2010

19 November 2008

25 August 2008

15 October 2007

12 October 2007

9 October 2007

4 October 2007

29 September 2007

23 August 2007

5 July 2007

4 July 2007

19 June 2007

7 June 2007

30 May 2007

24 April 2007

19 April 2007

18 April 2007

16 April 2007

30 March 2007

23 March 2007

20 March 2007


Copyright Yves Piguet, 25 March 2008. May be distributed with NME or cited with proper attribution.