The CodeChat system for software documentation
CodeChat transforms source code into a web page, allowing developers to view their program as a beautiful and descriptive document by adding headings, formatting, hyperlinks, diagrams, images, and other forms of rich content to capture the ideas and insights that naturally flow from the process of writing a program. It also provides a blank slate in which to plan ahead, by sketching out an algorithm before committing it to code or laying out a design document which can evolve as the code does. This literate programming paradigm changes the way developers think by intermingling ideas with their implementation as code, dramatically improving a programmer’s abilities.
Put simply, literate programming (LP) is the realization that a program is a document written to and for fellow programmers, not simply a list of instructions for a computer. LP tools therefore produce a nicely-formatted document which contains the code intermixed with explanatory prose. Donald Knuth introduced literate programming using his WEB tool in his seminal paper. Per Figure 1 of this paper, the WEB system takes a .w document as input then produces either a “tangled” source file for compilation or a “woven” document as a .tex file. The document is beautiful; the WEB source is difficult to digest (see Figure 2a-c); the source code is completely unreadable (see Figure 3). While a plethora of tools developed over the years attempt to address these problems, only one LP-inspired variant has gained widespread acceptance: documentation generators, such as Doxygen and JavaDoc, which extract documentation directly from source code, rather than extracting source code from the documentation, as WEB and most LP tools do. CodeChat addresses these LP weaknesses by producing a document directly from the code; employing human-readable markup (reStructuredText); and by supporting a GUI to make editing an LP document-program faster and easier.
Some examples of literate programming using CodeChat:
- Use of a toctree directive to categorize all source files in CodeChat itself
- Use of tables to help design a simple parser.
- Use of a numbered list to explain a simple state machine.
- Use of hyperlinks to provide reference information for all Sphinx configuration values.
- Use of fonts to show what setup.py commands to run
- Documentation for integrating a PyInstaller hook into a distribution.
- Code examples in a course on microprocessors
Refer to the CodeChat docuumentation for more information.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size CodeChat-1.8.3-py3-none-any.whl (55.1 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size CodeChat-1.8.3.tar.gz (47.5 kB)||File type Source||Python version None||Upload date||Hashes View|