Simplification and extension of module support
"LyX can hardly support all LaTeX packages". For example, users want to use the following LaTeX packages but they have no native support in LyX at the moment: "mdframe" (Create new paragraph style in LyX), "parallel" (Cornell Notes - A lyx or latex solution needed), "glossaries", "chapterbib", ...
Therefore, LyX can be extended by modules. A user can write such a module and publish it to the benefit of others. This should be more encouraged and modules should be made more powerful.
- Make modules more powerful by introducing configuration options for modules in the GUI.
- Extending (certain) "Style" constructs (defined by modules) such that they can be configured during use by a GUI dialog.
- Simplify the selection and installation of modules such that they can be more easily distributed to the benefit of other users.
Overall, this project would integrate LaTeX better into LyX and would allow for easier community contributions.
1. Configuration options of module in GUI
It should be possible that a module can register an own configuration page under "Documents Settings". Such a "configuration page" should be separated from the native "configuration pages". Certain configuration settings in the module file (to be introduced) should be displayed by LyX on such a configuration page. Graphical elements like check boxes or items of a drop down list should be mapped automatically to LaTeX code blocks. Furthermore, there should be beginning (pre-) code blocks and ending (post-) code blocks. Here is how the configuration of "theorem" might look like in future using this project. This would replace the bunch of existing "theorem" modules by only one:
A good candidate to look at might be the "PDF Properties" page that translates to the settings of the "hyperref" package. This package is important but not always used. Hence, if this project were realized one could decide whether "PDF Properties" / "hyperref" package should be provided as module - instead of selecting "Use Hyperref Support" one would activate it as module.
2. Extending "Style" constructs with GUI dialog
With similar techniques as for the configuration page of modules, it should be possible that "Style" constructs (especially, when "LatexType" is set to "Command" or "Environment") have configuration options (via context menu).
At the moment, LaTeX commands or environments with several arguments are not supported (see also Parameterised Enviroments in Lyx). An example that might be helpful to study is the "minipage" environment. It is supported natively by LyX but cannot be supported by a module at the moment. Furthermore, it should be possible in some way for a "Style" of a module to hook into menus (again, for an example see "Insert > Box > ....").
3. Selection and installation of modules
Improve the "Modules" page of "Document Settings". Basically make a list with following columns (some fields needed to be introduced in the module files): "Used (Position)" shows whether module is active (if so then the position among the active modules); "Module-Name"; "Category": "all" or a combination of "LaTeX", "HTML", ... (i.e., supported output formats of LyX); "Version/Release Date". For a selected module, the description, the required module(s), the excluded module(s), and the location (file name) should be displayed similar as in the following picture...
One should think about the possibility of automatic download of new modules from a site like http://wiki.lyx.org/Layouts/Modules (going a little bit into the direction of CTAN or CRAN or ...; see also this question). Furthermore, one should state clearly the license of a module, and consider introducing some status about modules on the website (quality/rating of module, most downloaded). Finally, a little module documentation should become mandatory as it is for LaTeX packages!