/ui-for-pl

User Interfaces for Programming Languages: The Compendium

Primary LanguageTeX

User Interfaces for Programming Languages: The Compendium

This compendium covers research and practice in the field of user interfaces for programming languages. It has not yet been published online (see below).

Build Instructions

The compendium is built using the Sphinx document generation system.

The required libraries are listed in requirements.txt and can be installed using pip as follows:

$ pip3 install -r requirements.txt

Then you can build the HTML output by typing make at the shell. The result is the html directory. The make clean command will delete the build artifacts.

Contributing

The first round of contributions will be made by students in EECS 598 at Michigan during Fall 2019. After that, the compendium will be published online and contributions from the rest of the community will be welcome.

Contributions are made through GitHub's pull request mechanism. To quickly propose edits to a single file, you can find it on Github (e.g. by clicking on the Edit on Github link at the top of the corresponding page) and click the pencil icon. For more sophisticated changes, fork the repository and make a pull request.

Compendium content is written in reStructuredText, with the extensions supported by Sphinx. This format is similar to Markdown, but offers some more advanced features.

The compendium is structured as one file per topic area in the src directory, with index.rst as the top-level organizational hub.

We use BibTeX for citations, via the sphinxcontrib-bibtex extension. See src/notation.rst for examples of how to include bibliography entries in your article. This extension is somewhat limited, so we need to use the following workarounds:

  1. Each .bib file can have no more than 9 entries, so just make new files, e.g. notation.bib, notation2.bib and so on, as needed.
  2. Sphinx will generate warnings if you have not explicitly cited a bibliography entry in the text. To get around this, you can include a hidden area at the bottom of each file to cite items that you have not otherwise cited. See the bottom of notation.rst for an example.
  3. There are certain lexical limitations on the cite keys, e.g. they cannot have capital letters. I recommend using cite keys of the form lastnameYY where YY is the two digit year, e.g. hughes95.

You can find BibTeX entries using Google Scholar or DBLP. Please remove extraneous details, e.g. conference locations and dates, and publisher names and locations. For common publication venues, it is okay to use abbreviations, e.g. OOPSLA, rather than full conference names.

Contributors

The compendium is maintained by Cyrus Omar (comar@umich.edu).

The Sphinx setup was adapted from EECS 490 course notes prepared by Amir Kamil (akamil@umich.edu).

License

All contributions are governed by the Creative Commons Attribution-ShareAlike 4.0 International license.