Added British English translation by Jen Ockwell
[gtk-doc.git] / TODO
blob353e03999508ca7608701dcb0115c2d9fd2c996f
2 The TODO list for the gtk-doc project is at Bugzilla,
3 the bugtracking system of the GNOME project.
5 Visit
6  http://bugzilla.gnome.org/buglist.cgi?product=gtk-doc&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED
7 to see what is allready requested, or where you can help. :-)
9 To put an other request on the TODO list, visit
10  http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-doc
12 Also have a look at
13  http://live.gnome.org/DocumentationProject/GtkDocFuture
14 and join discussion about future features.
17 Developers can also add items here :)
19 = CLeanups =
20 == Tracing ==
21 * there is a bunch of #print statements for tracing
22   => add a sub Trace() to gtkdoc-common.pl
23   => use @TRACE@ "..." and depending on configure flag
24      turn that into
25        [print __FILE__ . ":" . __LINE__ . ":" . ] or [#]
26      should be a function and the function should support loglevels and an
27        envar to enable/disable conditionally;
28 == Makefiles ==
29 sgml-build.stamp -> db-build.stamp
30 sgml.stamp -> db.stamp
31        
32 = More abbreviations =
33 * expand urls (needds more work, see gtkdoc-mkdb : ExpandAbbreviations)
35 = Testing =
36 cd test/gobject
37 diff -u --exclude="Makefile*" docs docs-tmpl | diffstat
39 = Issues =
40 * gtkdoc-fixxref makefile targets use $HTML_DIR
41   * HTML_DIR: The directory where gtk-doc generated documentation is installed
42     it comes from gtk-doc.m4 (--with-html-dir) but has no default
43   * automake exports $htmldir which is by default:
44     ${prefix}/share/doc/${PACKAGE_TARNAME}
45   * the Makefile uses $(DESTDIR)$(TARGET_DIR)
46     where TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
47     http://www.gnu.org/software/libtool/manual/automake/DESTDIR.html
48     
49 * $MODULE-unused.txt is produced in gtkdoc-mktmpl only
50   * we won't find unused doc blobs in notmpl build
51   * we should add mktmpl::CheckAllDeclarationsOutput() to mkdb (call it after
52     OutputSGML), but only call it if there is no tmpl dir or
53     remove writing the unused.txt in mktmpl.txt
55 = Output =
56 * http://sagehill.net/docbookxsl/index.html
57 * multipage-html
58   * would be good to be able to have page titles as a concatenation of document
59     name and page name (gtk+:GtkWIdget)
60 * formats
61   http://bugzilla.gnome.org/show_bug.cgi?id=531572 : html-single
62   http://bugzilla.gnome.org/show_bug.cgi?id=466535 : pdf
63   http://bugzilla.gnome.org/show_bug.cgi?id=467488 : man
64   we need more configure options in gtk-doc.m4:
65   --(enable|disable)-gtk-doc-(html|pdf|man|html-single|rtf)
66   - html : enabled by default
67   - html-single : is single page html
68 * validation
69     xmllint --noout --xinclude --postvalid tester-docs.xml
70     xmllint --noout --postvalid tester-docs.fo --dtdvalid file://$HOME/download/fo.dtd
71     - fo.dtd : http://www.renderx.com/Tests/validator/fo.zip
72 * single page
73   xsltproc  --nonet --xinclude -o gtk-docs.html /home/ensonic/projects/gtk-doc/gtk-doc-single.xsl  gtk-docs.sgml
74   * need to check if we can pass the style-sheet class as a parameter (--stringparam gtkdoc.stylesheet=(chunk|docbook))
75   * we might also need to reflow some things, as gtk-doc.xsl also runs the devhelp/devhelp2 generation
76     - but then the urls in the devhelp file, refer to the chunked html anyway
77 * pdf
78   * xmlto via passivetex
79     xmlto --skip-validation pdf tester-docs.xml
80   * fop
81     ~/download/fop-0.95beta/fop -xsl /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl -xml tester-docs.xml -pdf tester-docs.pdf 
82     ~/download/fop-0.94/fop  -xsl /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl -xml tester-docs.xml -pdf tester-docs.pdf
83   * xsltproc + fop
84     xsltproc  --nonet --xinclude -o tester-docs.fo ../../../gtk-doc-fo.xsl tester-docs.xml
85     ~/download/fop-0.94/fop -fo tester-docs.fo -pdf tester-docs.pdf
86   * xsltproc + passivetex
87     pdflatex "&pdfxmltex" tester-docs.fo
88     xmltex tester-docs.fo
89   * jade
90     docbook2pdf -e no-valid tester-docs.sgml
92   * bugs/problems/howto
93     * xmlto via passivetex
94       http://bugs.gentoo.org/show_bug.cgi?id=224937
95       http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310148
96       - info
97         http://www.tug.org/texlive/devsrc/Master/texmf-dist/doc/xmltex/passivetex/
98     * fop
99       https://issues.apache.org/bugzilla/show_bug.cgi?id=46386
100       - download fop (don't use 0.95, 0.94 seems to work)
101         http://mirror.eunet.fi/apache/xmlgraphics/fop/binaries/
102         http://xmlgraphics.apache.org/fop/0.94/running.html
103         export FOP_OPTS="-Dhttp.proxyHost=xxx -Dhttp.proxyPort=8080"
104       - download offo
105         http://sourceforge.net/project/showfiles.php?group_id=116740&package_id=129569&release_id=267101
106         and copy fop-hyph.jar to fop-0.9*/lib/
107 * rtf
108  ~/download/fop-0.94/fop -fo tester-docs.fo -rtf tester-docs.rtf
109  * unrtf
110    unrtf -t ps tester-docs.rtf >tester-docs.ps
111    unrtf -t latex tester-docs.rtf >tester-docs.tex
112    - bad output
113 * man
114   we shouldn't convert the whole document to man. We should convert e.g. tool
115   sections to man pages.
117 = Indexes =
118 * http://www.w3.org/TR/2003/WD-xinclude-20031110/#syntax
119 <xi:include href="index-symbols.html">
120   <xi:fallback><index /></xi:fallback>
121 </xi:include>
122 * index terms
123   http://sourceforge.net/tracker/index.php?func=detail&aid=1986587&group_id=21935&atid=373747
125 * we could add smart navigation for index/glossary pages
126   (like the subsections on the doc-pages)
127   
128 = Cleanup =
129 * can we deprecate title in the sectionfile and request people to have this in
130   the SECTION comment?
132 = Warnings =
133 * add some -Wxxx parameters to help qa work
134   - 'deprecated' deprecating 'features'
135   - 'dummy-docs' check if symbol docs are very short and repeat mainly words
136     from the symbol.
138 = GIR =
139 == scanning ==
140 * ideas
141   * use gir files
142     1) replace gtkdoc-scan/gtkdoc-scangobject by gtkdoc-gir and output the classical files or
143        patch gtkdoc-scan/gtkdoc-scangobject to output gir files
144     2) patch gtkdoc-mkdb to read stuff from gir instead of classical files
145   * if gir-files would have the comments too (they are getting this now):
146     * we could even drop scanning the sources
147     * IDEs could use the gir-files to show doc-tooltips for symbols
148 * perl and xml
149   * http://www.xml.com/pub/a/2001/04/18/perlxmlqstart1.html
150 == binding docs ==
151 * simmillar workflow to gettext
152 * add gtkdoc-mk??? to generate binding doc templates
153   * have c-comments there as comments
154   * when updating templates, mark sections that have changed as fuzzy
155 * add options to gtkdoc-mkdb to build docbook from those templates
156 * questions
157   * could we use the tmpl file mechanism?
158   * directory structure?
159     * we need to list the languages like ALL_LINGUAS for translations
160     * we need to create subdirs for binding docs, ideally we use one for 'C' as well
161 * devhelp
162   * devhelp files need a language attribute in the book-tag
163     language={C,C++,JavaScript,Perl,Python,...}
164   * devhelp could show a selector for the language
165   * need to get existing python/~mm docs to use it, gtk-doc could output
166     language=C for own docs 
167 == installation ==
168 * need to install each book with a prefix
169 * would be good to have a language attribute in book tag to allow filter by language
170 * look at /usr/share/gtk-doc/html/pygobject/index.html
172 = linking to sources =
173 - what about a template URL containing a %s for the "path/file". 
174   http://svn.gnome.org/viewvc/gtk-doc/trunk/tests/gobject/src/gobject.c?view=markup
175   http://buzztard.svn.sourceforge.net/viewvc/buzztard/trunk/buzztard/src/lib/core/core.c?view=markup
176   - unfortunately we can't link to symbols
177   - linking to files is difficult as in gtkdoc we have modules
180 = docbook xml =
181 Its tedious to write large amounts of docbook.
183 == more macros ==
184 We need parametric, user definable macros.
185 |[ ... ]| - programlistings
186 |macro(arg1,arg2,...)[ ... ]| - call macro, pass args as parameters, content
187   of [] on stdin or as a file, get output on stdout or file and replace the macro
188   with it
189 === example macros ===
190 |highlight(c)[...]| - highlight source code
191 |dot(abc.svg)[...]| - format dot graph and include result as mediaobject
193 === where to define macros ===
194 * system wide and with the package, <prefix>/share/gtk-doc/macros, $(srcdir)
195 * prefix for custom macros?
197 == ascii doc as a frontend ==
198 Can we offer integration with asciidoc (http://www.methods.co.nz/asciidoc/)?
199 This way the master document could be written much easier. It would be cool if
200 we could use the asciidoc markup in source-comments also.
202 == extract other bits and pieces ==
203 === library api ==
204 gtkdoc-scan could be obsoleted and gtkdoc-mkdb would build docbook fragemnts for
205 api docs and their indexes
206 === DBUs Interfaces ===
207 http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html
208 http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus
209 === GConf schemas ===
211 === Wiki imports ===
215 = styling =
216 == source code examples==
217 http://bugzilla.gnome.org/show_bug.cgi?id=536928
218 We could also run a postprocessing script in gtkdoc-mkhtml/gtkdoc-fixxref
220 tools:
221   source-highlight (/usr/bin/source-highlight)
222   source-highlight -itests/gobject/examples/gobject.c -o$HOME/temp/gobject.html -n -t4 -sc
223   source-highlight -itests/gobject/examples/gobject.c -o$HOME/temp/gobject.html -n -t4 -sc -cstyle.css --no-doc
224   source-highlight -itests/gobject/examples/gobject.c -o$HOME/temp/gobject.xml -n -t4 -sc -f docbook
226   highlight -itests/gobject/examples/gobject.c -o$HOME/temp/gobject.xml -l -X -f -j2
228 some tips about styling code listings in html
229 http://www.tjkdesign.com/articles/how_to_style_a_code_listing.asp
231 === process docbook ===
232 if we highlight to docbook, we just get emphasis (bold)
233 === process html ===
234 if we hightlight to html we get colors, we need to check what tags we should process though:
235 <pre class="programlisting"> is used for all code boxes.
236 <div class="informalexample"><pre class="programlisting"> is used for examples.
237 problems:
238 * in html we don't know the language anymore
239   * add another div
240 * with source-highlight, constants and types are not markedup.
241   for types we might need to build an own lang file dynamically and include
242   /usr/share/source-highlight/c.lang
243 === |[ ... ]| does not allow setting the language ===
244 * check for vi/emacs/jedit modelines
245   jedit: http://www.jedit.org/users-guide/buffer-local.html
246   vim: http://vim.wikia.com/wiki/Modeline_magic
247   emacs: http://www.delorie.com/gnu/docs/emacs/emacs_486.html
248 * allow <!-- language="C" --> comments after |[
249 * we need to catch those when processing the docbook and expanding the |[
253 = syntax =
254 == wildcards in symbol names ==
255 Somtimes one defines a set of function and macros with very simillar purpose, e.g.
256 READ_INT8, READ_INT16, READ_INT32. It would be great to allow documenting a symbol
257 READ_INT* instead of 3 docs which are copy'n'pasted anyway. In the output we will have
258 all matching declarations in one source listing. Multiple wildcards are okay.
261 = documentation best practises #518427 =
262 * we'd like offer a more complete skelleton
263   * structure
264   * docbook markup (part/chapter structure)
265 * structure
266   Sugested structure for api-docs.
267   Idea is to have more content that api reference. It would be good to have a
268   gnome-platform document in devhelp, so that we could xref that instead of
269   explaining 100 times how to use pkg-config.
271   * examples
272     * gobject in devhelp
273       * concepts / api / tools / tutorial / related tools
274     * gtk in devhelp
275       * overview / api / migation / tools
276     * qt reference docs in qt assistant
277       * classes / overview / tutorial&examples
278   * recommendation
279     * front-page
280       * table with details (http://www.docbook.org/tdg/en/html/bookinfo.html)
281         (problem: what enclosing tag)
282         Logo, Module Version
283         Copyright and Legalnotice
284         Links
285         * homepage, mailing lists, irc channel
286         * repository, source releases, bugtracker
287       * TOC
288     * introduction - what is is about
289     * concepts - explain basic ideas and terminology
290     * development - how to build and run, env-vars, different platforms
291     * api - classic api docs
292     * tutorial & examples - integrated to keep it up-to-date and cross referenced
293     * migration - how to for api changes, deprecations
294     * (releated) tools - tools part of the package or recommended for development
295     * indexes - api-index, depretations, new api since xxx
297 proposed structure in docbook xml:
298 <book>
299   <bookinfo>
300   </bookinfo>
301   <preface><title>Introduction</title>
302     ...
303   </preface>
304   <part label="I"><title>xxx Overview</title>
305     <xi:include href="building.xml" />
306     ...
307   </part>
308   <reference label="II"><title>xxx Core Reference</title>
309     <xi:include href="xml/gtkmain.xml" />
310     ...
311   </part>
312   <reference label="III"><title>xxx Object Reference</title>
313     <chapter><title>Object Hierarchy</title>
314       <xi:include href="xml/tree_index.sgml" />
315     </chapter>
316     <chapter>...
317   </part>
318   <index>...</index>
319 </book>
321 some things to check:
322 * gtk,glib: can we make a <part> for the glosary and index's (according to docbook, yes)
323   should we use <appendix>? its like a chapter.
324 * gobject: uses a <preface> for introductions
325 * gobject: uses <reference> as a parent for the xi:includeed <refentry> docs
327 = extra link for symbols =
328 need options for configure:
329 --enable-gtk-doc-codesearch-links
330 --enable-gtk-doc-liveedit-links
331 == viewvc,cgit,... ==
332 - link to some online service for the code
333 - problem: most don't have local anchors for the symbols
334 - where to set the uri (in the document, like for online url)?
335 == codesearch ==
336 - google (code) link : http://www.google.com/codesearch?q=g_object_unref
337 == live editing ==
338 The idea is to have an 'edit' link in an online version of the docs (build from
339 head development version) per doc-entry (symbols and section).
340 The link goes to a cgi and that gets following parameters: docmodule,symbol.
341 E.g. http://library.gnome.org/devel/references/edit?docmodule=glib&symbol=g_new
342 The cgi would need a hashmap to get from docmodule to the way to check it out
343 (ideally it has a recent checkout and only updates it).
344 problems:
345 - signal that this has been edited already?
346 - support for xi:included examples
347 - updating the checkout could be slow