Search:   Help

Developers' side bar

Selected categories

Edit

Shared groups

Links

SummerOfCode2011Ideas

Categories: Development, GSoC
<< | Page list | >>

2011 Summer of Code - Ideas Page

LyX 2011 Summer of Code Ideas

If you see an idea here which interests you, please consider contacting the LyX Developer's list. You can send a message to lyx-devel@lists.lyx.org. (Instructions on how to subscribe can be found at http://www.lyx.org/MailingLists#lyx_devel.) We would love to discuss any thoughts you might have, or to help you put together a student application.



1.  Project: Layout editor

Brief Explanation: Each document edited in the LyX document processor is assigned an appropriate LaTeX class which LyX uses to typeset the final document. LyX uses layout files to render on screen the LaTeX elements. The most popular LaTeX classes already have correspondent LyX layouts, however creating a new layout for an unknown or customized class can be a daunting task.

The Layout Editor (LE) should allow users with no knowledge of the LyX internals to use a GUI to create layouts for completely new document classes. The user may need to know LaTeX in order to specify the typesetting behavior for a given paragraph style, although the GUI should provide an interface to several popular LaTeX features such as colors, font sizes and font attributes.

Expected Results: A working prototype of the editor allowing the creation and customization of LyX layouts. The project's focus is on code extensibility and robustness, to ensure compatibility for future inclusion in the main LyX codebase. LE should share some of the LyX libraries, so that (incompatible) changes to the LyX layout system would not result in breaking the application and would allow for straightforward future extensions.

Knowledge Prerequisite: Knowledge of C++ is required, and while experience with Qt is nice it is by no means required, as it can be learned relatively easily.

Prospective Mentor(s): Abdel, Richard



2.  Project: LyX support for parallel text (critical) editions

Brief Explanation: Ledpar is a LaTeX package that allows typesetting parallel texts on facing pages/columns. Ledpar, in turn, uses the LaTeX package Ledmac, which also provides a rich set of tools for typesetting critical editions (multiple footnote series, line-counting in the margins, etc.). Ledmac/Ledpar can produce high quality bilingual critical editions, but are difficult to use because both text (and notes) flows are intermingled in the same text editor window. The goal of the project is to provide LyX support for both packages. The LyX editing window would be split into multiple synchronized regions, with an anchor system to jump from one paragraph in one language to the corresponding paragraph in the other language. Additional windows could be added for the critical apparatus, similarly to the interface provided by the Classical Text Editor application (http://www.oeaw.ac.at/kvk/cte/?id0=main).

Expected Results: A working prototype of LyX with Ledpar support. The application should be able to open a bilingual text and correctly display it in synchronized windows. Focus should be on extensibility and robustness, in order to allow a full implementation of the rich set of features offered by the Ledmac/Ledpar packages.

Knowledge Prerequisite: Knowledge of C++ is required, and while experience with Qt is nice it is by no means required, as it can be learned relatively easily.

Prospective Mentor(s): Pavel



3.  Project: LyX presentation mode

Brief Explanation: LyX has been designed to let users focus on the structure of the document instead of their appearance. Highly visual documents, such as presentations, can also be made using specific document classes. However, the representation to the user of the various slides that make up a presentation could be improved. The goal of this project is to enhance LyX with a feature that allows to create presentations more intuitively. Often a presentation is put together from content that has previously been written down (or the other way around). Therefore, often the same images are used, and often text, images, formulas, tables, and so forth are being copied and pasted from the document into the presentation, with numerous problems related to duplication, updating, etc.

Expected Results: A working prototype of LyX with a presentation mode. The interface of LyX's workarea would allow users to easily scroll through the slides, and let them grab the contents of a certain slide more easily. We don't expect a realistic representation of how the slides looks like, but just an easy representation of what information is on what slide.

Knowledge Prerequisite: Knowledge of C++ is required, and while experience with Qt is nice it is by no means required, as it can be learned relatively easily.

Prospective Mentor(s): Vincent, Cyrille



4.  Project: Write the LyX book

Brief Explanation: Many new users of LyX are intimidated by the different approach to text editing LyX takes: focus on the structure of the document and let the formatting engine (LaTeX) worry about the document's final appearance. LyX comes with excellent documentation, but a book is different.

It should (gently) guide the user through a few common tasks from beginning to end, rather than serve as a reference document. It is the kind of item give to a person that has just discovered his/her need to start using LyX, either personally, or within an organization. Later chapters should build upon the earlier material and help new users to master both the basic and advanced features of the program.

O'Reilly technical books provide an excellent illustration of what the LyX book may be (among many examples, see The Drupal Book). Existing LyX documentation will provide the starting point. The student will need to come up with a selection of scenarios (in cooperation with the mentor) and write the book chapters on the basis of the existing documentation and her own experiences with LyX. It is expected that the book will eventually be published via LULU or similar services.

Expected Results: A first draft of a complete LyX book.

Knowledge prerequisites: Good English writing skills. No programming skills or LaTeX knowledge required (indeed, knowledge of LaTeX may be counterproductive).

Prospective Mentor(s): Stefano, Liviu



5.  Project: Improved XHTML export and ePub support

Brief Explanation: ePub is gaining popularity as a free and open e-book standard. It is based on the idea of reflowable text, which will adapt to the type of reader that is used. This reader can either be a phone, or an iPad, or an e-book reader, or a regular pc. One can think of this as an extension of the LaTeX idiom that one should only care about the contents, not on the layout of it. ePub is an open standard used by many major companies and publishers, including Google. For that reason, the ability to create ePub files directly from LyX would provide writers and publishers a way to target both print and electronic audiences with their work.

ePub is a sub-set of XHTML and CSS (more information can be found at http://en.wikipedia.org/wiki/EPUB), which LyX is already able to export. However, improvements are needed to LyX's existing XHTML export and CSS support. Additionally, LyX is able to work a related format: DocBook, though the current implementation has been outdated. Updating

Expected Results: The goal is to be be able to export ePub files from within LyX. This would mean improving the existing XHTML support, controlling the export of images so that they are scaled and sampled for the destination format, and creating a user-interface which unifies the export options. Basic support for all of these options already exist within LyX, however, the student should be able to take those foundations and expand upon them as needed.

The final ePub should be acceptable for publishers or on-line e-Book sellers and comply with the ePub specification.

Knowledge Prerequisite: Knowledge of C++ is required. The student should also be generally familiar with the HTML markup language and CSS styling. While experience with Qt is nice it is by no means required, as it can be learned relatively easily.

Prospective Mentor(s): José, Richard



6.  Project: UI Improvements and non-linear writing enhancements.

Brief Explanation: As a first step in writing a document, one often starts with an outline or a list of thoughts that should be communicated to the reader. The goal of this project is to intuitively convert these thoughts and ideas into the structure of a document. A first option for achieving this goal can be to use a more advanced outliner tool (see http://www.lyx.org/trac/ticket/6174). A second possibility is to use a tool which makes use of yellow sticky notes indicating ideas that can be moved around (see http://blog.oak-tree.us/index.php/2010/05/24/lyx-outline02). Integration of these tools into LyX would allow LyX to be used in a more intuitive manner, and allow the draft to be more adaptable during the writing process.

Expected Results: A tool that can convert thoughts into a document in a intuitive way and allows for the structure of a document to be modified without compromising the work-flow of the writer. There is already a preliminary implementation of both a corkboard and advanced outline view. The prospective student would be expected to integrate the early implementation into the LyX 2.0 code base, and locate/resolve major bugs.

An optional component of the project would be to implement an improved full-screen user-interface that combines the corkboard/outline views and the ability to write in a distraction-free environment.

Knowledge Prerequisite: Knowledge of C++ is required, and while experience with Qt is nice it is by no means required, as it can be learned relatively easily.

Prospective Mentor(s): Rob



7.  Project: Toolbar customization dialog

Brief Explanation: Toolbars are an important component of the LyX experience and they are used for various tasks ranging from generating the PDF output to formatting and math editing. LyX provides users with a flexible mechanism for toolbar creation and customization. However, its biggest drawback is that it can be performed only by editing configuration files in a text editor. The goal of this project is to develop a dialog that would allow users to create and customize toolbars via a graphical interface. This would eliminate the burden of studying and understanding the syntax of configuration files, and of performing toolbar modifications in text mode.

Expected Results: A working prototype of a dialog in LyX that allows easy creation and customization of toolbars. There is already some work done toward a preliminary implementation and the student would be expected to complete it.

Knowledge Prerequisite: Knowledge of C++ is required, and while experience with Qt is nice it is by no means required, as it can be learned relatively easily.

Prospective Mentor(s): Abdel



Category: Development, GSoC


Edit - History - Print - Recent Changes - All Recent Changes - Search
Page last modified on 2012-02-05 20:42 UTC