Main | Goals | Code rules | Documentation | Tools & utilities | References | E-mail


LyX logo Developer's Home Page [under construction]

Warning: This page has not been updated since few years ago, most of its contents is outdated. Please visit our new developers site at http://www.devel.lyx.org .

This document contains useful information, links and documentation for the developers of LyX. If you just want to contribute for the documentation project, please contact John Weiss.

This page is aimed at maybe the most ambitious projects since LyX was created. Lars Bjonnes maintains a more general developers page .


Goals

The general goals of this project are:

Some of the changes we are planning to do, in order to fulfil these goals, have been organized into the following projects:

LyXFormat 3.0 This is where the project takes its name from (don't confuse with the release number, currently 0.12). The new file format will be a subset of LaTeX. Our math editor already uses a subset of LaTeX.
Style format The current layout files are used by LyX to know how to visualize the supported document classes and styles. The new style files will also tell it how to read new styles and layouts.
Redesign kernel The kernel has evolved with additions for which it was not originally designed. As a consequence it's currently plagued of dirty hacks. It's necessary to redesign and recodify the kernel in order to handle in a natural way all those interesting features.
Toolkit switch Besides the limitations of XForms as a GUI library, we have had some problems on distributing LyX as free software because we use a non-free GUI library. Initially we thought on moving to Qt, but that is not a free library either.


Code rules

We have a rather incomplete document describing the code rules for lyx. This file is a guide for the developers, to get clean and uniform code.
In general, if you want to contribute to the main source, we expect at least that you:


These guidelines should save us a lot of work while cleaning up the code and help us to have quality code. LyX has been haunted by problems coming from unfinished projects by people who have left the team. Those problems will hopefully disappear if the code is easy to hand over to somebody else.


Documentation

Links to useful documentation.

XForms manual
Qt manual
T1 Lib manual
DOC++ manual
Current Layout files format


Tools & utilities

In this section there are listed some utilities useful for the new projects. Some of the libraries are still alpha, therefore couldn't be included in the next public LyX release.

Source documentation

Doc++
Currently we are using Doc++ to document our source code. It lets you to build html pages from the header files.

Parsing tools

pccts
PCCTS is a set of public domain software tools designed to facilitate the implementation of compilers and other translation systems. It supports LL(k) grammars and have some advantages over the old yacc/bison (LALR) tools.

Font rasterizers

Alternatives to the unefficient and low quality T1 font rasterizer included in the X window system.

T1Lib
Is a library for generating character- and string-glyphs from Adobe Type 1 fonts under UNIX. t1lib uses most of the code of the X11 rasterizer donated by IBM to the 11-project. But some disadvantages of the rasterizer being included in X11 have been eliminated.
FreeType
The FreeType project aims the development of a free and portable quality TrueType (TT) renderer, available with source code. TT fonts are used by M$ Windog and have the advantage that are faster to be rendered, but with lower quality than T1.

Toolkit switch

fd2qt
We have an XForms' fd file for almost all the dialogs used by LyX. This perl script generates Qt source code from fd files produced with fdesign. It was written by Hakan Ardo and tested by me. This script would aid us with the toolkit switch, and could be an alternative to some huge Qt GUI builder.


References

Here should go some relating references and links.


Main | Goals | Code rules | Documentation | Tools & utilities | References | E-mail

Document prepared by Alejandro Aguilar Sierra
Last modified: 30 May 1997