summaryrefslogtreecommitdiff
path: root/sandbox/package-doc/soc-application.txt
blob: d7ffce69467bac40b2433fd1093895d859ece6df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
===========================================
 Documenting Python Packages with Docutils
===========================================

:Author: Lea Wiemann <LeWiemann@gmail.com>
:Date: $Date$
:Revision: $Revision$
:Copyright: This document has been placed in the public domain.

.. note:: This is the Summer of Code '07 application as I originally
   submitted it to Google, modulo some minor editing.  For the current
   (up-to-date) time line, see `<soc-timeline.html>`_.

Currently, the standard way to document Python Packages is using
Python-specific LaTeX markup.  Many people either do not know LaTeX or
do not want to use it for documentation.  As a result, many Python
packages are not documented using LaTeX.

It would be desirable to have an easy-to-use format to document
packages that is more universally accepted than LaTeX.
``reStructuredText`` seems like the ideal format for documentation,
and it is already widely known and accepted in the Python community.

I propose to make Docutils ready for documenting Python packages.
This requires implementing the following features:

1. Support for multiple input documents.
2. Add framework support for multiple output documents.
3. Add markup (reStructuredText roles and perhaps directives) that
   allows documents to be marked up in a similar fashion as the
   current Python-specific LaTeX markup.
4. Add Python-specific LaTeX output.
5. Add HTML support for multiple output documents; add styling for the
   HTML output that resembles the look of current Python module
   documentation generated by the current system as closely as
   possible.


Time Line
=========

present - May 27
    Have some preliminary discussion on the Docutils mailing list
    about how each step should be implemented.  I expect that much
    design discussion will still take place during the implementation
    phase as issues arise.

May 28 - June 10
    Add support for multiple input documents.  This may involve adding
    a new format for a top-level "master" document which references
    all files in the documentation.

June 11 - June 17
    Design and implement framework support for multiple output
    documents.

June 18 - June 24
    Implement Python-specific LaTeX output.

June 25 - July 1
    Add reStructuredText markup such as roles and possibly directives
    similar to the current Python-specific LaTeX markup.

July 2 - July 13
    Implement support for multiple output documents in the HTML
    writer.  Add styling for the resulting HTML to make it resemble
    the current output of the LaTeX to HTML tool chain.

August 5 - August 12
     Create user documentation.  This is crucial for the success and
     adoption of reStructuredText-based package documentation.

August 13 - August 20
     Buffer time.


Personal Background
===================

I have been working on the Docutils project since April 2004, so I
know its internals very well.  I definitely plan to continue working
on it after this summer.  I have given talks and attended sprints
about Docutils at PyCon '06, EuroPython '06, and PyCon '07.

David Goodger, the Docutils maintainer, is willing to be my mentor for
this project.  Thanks David!


Conclusion
==========

I would be excited to receive funding for this project over the
summer!  I will be happy to answer any questions; you can reach me via
email at LeWiemann@gmail.com.