|
|
|
|
======================
|
|
|
|
|
Docutils_ To Do List
|
|
|
|
|
======================
|
|
|
|
|
|
|
|
|
|
:Author: David Goodger (with input from many); open to all Docutils
|
|
|
|
|
developers
|
|
|
|
|
:Contact: docutils-develop@lists.sourceforge.net
|
|
|
|
|
:Date: $Date: 2017-03-22 15:29:01 +0100 (Mi, 22 Mär 2017) $
|
|
|
|
|
:Revision: $Revision: 8052 $
|
|
|
|
|
:Copyright: This document has been placed in the public domain.
|
|
|
|
|
|
|
|
|
|
.. _Docutils: http://docutils.sourceforge.net/
|
|
|
|
|
|
|
|
|
|
.. contents::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Priority items are marked with "@" symbols. The more @s, the higher
|
|
|
|
|
the priority. Items in question form (containing "?") are ideas which
|
|
|
|
|
require more thought and debate; they are potential to-do's.
|
|
|
|
|
|
|
|
|
|
Many of these items are awaiting champions. If you see something
|
|
|
|
|
you'd like to tackle, please do! If there's something you'd like to
|
|
|
|
|
see done but are unable to implement it yourself, please consider
|
|
|
|
|
donating to Docutils: |donate|
|
|
|
|
|
|
|
|
|
|
.. |donate| image:: http://images.sourceforge.net/images/project-support.jpg
|
|
|
|
|
:target: http://sourceforge.net/donate/index.php?group_id=38414
|
|
|
|
|
:align: middle
|
|
|
|
|
:width: 88
|
|
|
|
|
:height: 32
|
|
|
|
|
:alt: Support the Docutils project!
|
|
|
|
|
|
|
|
|
|
Please see also the Bugs_ document for a list of bugs in Docutils.
|
|
|
|
|
|
|
|
|
|
.. _bugs: ../../BUGS.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Minimum Requirements for Python Standard Library Candidacy
|
|
|
|
|
==========================================================
|
|
|
|
|
|
|
|
|
|
Below are action items that must be added and issues that must be
|
|
|
|
|
addressed before Docutils can be considered suitable to be proposed
|
|
|
|
|
for inclusion in the Python standard library.
|
|
|
|
|
|
|
|
|
|
Many of these are now handled by Sphinx_
|
|
|
|
|
|
|
|
|
|
* Support for `document splitting`_. May require some major code
|
|
|
|
|
rework.
|
|
|
|
|
|
|
|
|
|
* Support for subdocuments (see `large documents`_).
|
|
|
|
|
|
|
|
|
|
* `Object numbering and object references`_.
|
|
|
|
|
|
|
|
|
|
* `Nested inline markup`_.
|
|
|
|
|
|
|
|
|
|
* `Python Source Reader`_.
|
|
|
|
|
|
|
|
|
|
* The HTML writer needs to be rewritten (or a second HTML writer
|
|
|
|
|
added) to allow for custom classes, and for arbitrary splitting
|
|
|
|
|
(stack-based?).
|
|
|
|
|
|
|
|
|
|
* Documentation_ of the architecture. Other docs too.
|
|
|
|
|
|
|
|
|
|
* Plugin support.
|
|
|
|
|
|
|
|
|
|
* Suitability for `Python module documentation
|
|
|
|
|
<http://docutils.sf.net/sandbox/README.html#documenting-python>`_.
|
|
|
|
|
|
|
|
|
|
.. _Sphinx: http://sphinx.pocoo.org/
|
|
|
|
|
|
|
|
|
|
General
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
* Move to single source for Python 2 and Python 3.
|
|
|
|
|
(Cf. `Porting Python 2 Code to Python 3`_ and
|
|
|
|
|
`clean single-source support for Python 2/3`_.)
|
|
|
|
|
|
|
|
|
|
- Gradually phase out support for Python 2.4 and 2.5 first.
|
|
|
|
|
|
|
|
|
|
.. _Porting Python 2 Code to Python 3:
|
|
|
|
|
https://docs.python.org/3/howto/pyporting.html
|
|
|
|
|
.. _clean single-source support for Python 2/3:
|
|
|
|
|
http://python-future.org
|
|
|
|
|
|
|
|
|
|
* Encoding of command line arguments can only be guessed:
|
|
|
|
|
|
|
|
|
|
* try UTF-8/strict first, then try the locale's encoding with
|
|
|
|
|
strict error handling, then ASCII/replace?
|
|
|
|
|
|
|
|
|
|
UTF-8 is almost 100% safe to try first; false positives are rare,
|
|
|
|
|
The locale's encoding with strict error handling may be a
|
|
|
|
|
reasonable compromise, but any error would indicate that the
|
|
|
|
|
locale's encoding is inappropriate. The only safe fallback is
|
|
|
|
|
ASCII/replace.
|
|
|
|
|
|
|
|
|
|
* Do not decode argv before option parsing but individual string
|
|
|
|
|
values?
|
|
|
|
|
|
|
|
|
|
+1 Allows for separate command-line vs. filesystem encodings,
|
|
|
|
|
respectively to keep file names encoded.
|
|
|
|
|
+1 Allows to configure command-line encoding in a config file,
|
|
|
|
|
-1 More complicated.
|
|
|
|
|
|
|
|
|
|
Cf. <http://thread.gmane.org/gmane.text.docutils.user/2890/focus=2957>.
|
|
|
|
|
|
|
|
|
|
* Improve handling on Windows:
|
|
|
|
|
|
|
|
|
|
- Get graphical installer.
|
|
|
|
|
- Make rst2html.py an .exe file using py2exe.
|
|
|
|
|
|
|
|
|
|
* .. _GUI:
|
|
|
|
|
|
|
|
|
|
The user interface is very difficult to use for most Windows users;
|
|
|
|
|
you can't really expect them to use the command line. We need some
|
|
|
|
|
kind of GUI that can launch rst2html.py, and save the HTML output to
|
|
|
|
|
a file, and launch a browser. What's important is that we get
|
|
|
|
|
settings to work with the GUI. So we need some way to dynamically
|
|
|
|
|
generate a list of settings for the GUI. The current settings_spec
|
|
|
|
|
for OptionParser doesn't seem to be usable for this for the
|
|
|
|
|
following reasons:
|
|
|
|
|
|
|
|
|
|
- It's biased toward the command line -- there are *two* options for
|
|
|
|
|
one boolean setting.
|
|
|
|
|
|
|
|
|
|
- You cannot have both a one-line description and a longer
|
|
|
|
|
description for tooltips/help-texts.
|
|
|
|
|
|
|
|
|
|
- It doesn't provide hints for the input type. You cannot easily
|
|
|
|
|
infer the type of a setting from its validator, because any
|
|
|
|
|
component can add new validators. In fact, it may be necessary to
|
|
|
|
|
have both a hint about the input type (e.g. string) and a
|
|
|
|
|
validator (valid ID), or it may be necessary to have a different
|
|
|
|
|
set of choices for the CLI (1, INFO, 2, ...) and for the GUI
|
|
|
|
|
(INFO, WARNING, ...).
|
|
|
|
|
|
|
|
|
|
- It's coupled to the OptionParser. We want to be able to change
|
|
|
|
|
the underlying system without breaking everything.
|
|
|
|
|
|
|
|
|
|
- It's a bunch of primitive structures. We want an extensible (thus
|
|
|
|
|
object-oriented) interface.
|
|
|
|
|
|
|
|
|
|
So we probably need to create a class for storing all the settings,
|
|
|
|
|
and auto-generate the OptionParser data from that.
|
|
|
|
|
|
|
|
|
|
I talked to Stephan Deibel about getting Docutils integrated into
|
|
|
|
|
Wing IDE. He said it's possible, and he'd be willing to help.
|
|
|
|
|
There's a scripting interface to Wing, which we'd use. We can
|
|
|
|
|
dynamically generate a list of preferences and not worry too much
|
|
|
|
|
about the rendering (from what I understood); Wing's whole GUI is
|
|
|
|
|
dynamic anyway. The interface could be made usable for other GUIs.
|
|
|
|
|
For example, we could try to get option support for DocFactory. //
|
|
|
|
|
FW
|
|
|
|
|
|
|
|
|
|
* Allow different report levels for STDERR and system_messages inside
|
|
|
|
|
the document?
|
|
|
|
|
|
|
|
|
|
* Change the docutils-update script (in sandbox/infrastructure), to
|
|
|
|
|
support arbitrary branch snapshots.
|
|
|
|
|
|
|
|
|
|
* Move some general-interest sandboxes out of individuals'
|
|
|
|
|
directories, into subprojects?
|
|
|
|
|
|
|
|
|
|
* Add option for file (and URL) access restriction to make Docutils
|
|
|
|
|
usable in Wikis and similar applications.
|
|
|
|
|
|
|
|
|
|
2005-03-21: added ``file_insertion_enabled`` & ``raw_enabled``
|
|
|
|
|
settings. These partially solve the problem, allowing or disabling
|
|
|
|
|
**all** file accesses, but not limited access.
|
|
|
|
|
|
|
|
|
|
* Configuration file handling needs discussion:
|
|
|
|
|
|
|
|
|
|
- There should be some error checking on the contents of config
|
|
|
|
|
files. How much checking should be done? How loudly should
|
|
|
|
|
Docutils complain if it encounters an error/problem?
|
|
|
|
|
|
|
|
|
|
- Docutils doesn't complain when it doesn't find a configuration
|
|
|
|
|
file supplied with the ``--config`` option. Should it? (If yes,
|
|
|
|
|
error or warning?)
|
|
|
|
|
|
|
|
|
|
* Internationalization:
|
|
|
|
|
|
|
|
|
|
- I18n needs refactoring, the language dictionaries are difficult to
|
|
|
|
|
maintain. Maybe have a look at gettext or similar tools.
|
|
|
|
|
|
|
|
|
|
(This would make a nice Google Summer of Code project)
|
|
|
|
|
|
|
|
|
|
- Language modules: in accented languages it may be useful to have
|
|
|
|
|
both accented and unaccented entries in the
|
|
|
|
|
``bibliographic_fields`` mapping for versatility.
|
|
|
|
|
|
|
|
|
|
- Add a "--strict-language" option & setting: no English fallback
|
|
|
|
|
for language-dependent features.
|
|
|
|
|
|
|
|
|
|
Make this the default for output (as opposed to input)?
|
|
|
|
|
Throw an error with a helpfull message, e.g.
|
|
|
|
|
|
|
|
|
|
Default "contents" title for language %s missing, please specify
|
|
|
|
|
an explicit title.
|
|
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
|
|
|
|
"attention" title for language %s missing, please use a generic
|
|
|
|
|
admonition with explicit title.
|
|
|
|
|
|
|
|
|
|
- Add internationalization to _`footer boilerplate text` (resulting
|
|
|
|
|
from "--generator", "--source-link", and "--date" etc.), allowing
|
|
|
|
|
translations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Add validation? See http://pytrex.sourceforge.net, RELAX NG, pyRXP.
|
|
|
|
|
|
|
|
|
|
* In ``docutils.readers.get_reader_class`` (& ``parsers`` &
|
|
|
|
|
``writers`` too), should we be importing "standalone" or
|
|
|
|
|
"docutils.readers.standalone"? (This would avoid importing
|
|
|
|
|
top-level modules if the module name is not in docutils/readers.
|
|
|
|
|
Potential nastiness.)
|
|
|
|
|
|
|
|
|
|
* Perhaps store a _`name-to-id mapping file`? This could be stored
|
|
|
|
|
permanently, read by subsequent processing runs, and updated with
|
|
|
|
|
new entries. ("Persistent ID mapping"?)
|
|
|
|
|
|
|
|
|
|
* Perhaps the ``Component.supports`` method should deal with
|
|
|
|
|
individual features ("meta" etc.) instead of formats ("html" etc.)?
|
|
|
|
|
|
|
|
|
|
* Think about _`large documents` made up of multiple subdocument
|
|
|
|
|
files. Issues: continuity (`persistent sequences`_ above),
|
|
|
|
|
cross-references (`name-to-id mapping file`_ above and `targets in
|
|
|
|
|
other documents`_ below), splitting (`document splitting`_ below).
|
|
|
|
|
|
|
|
|
|
When writing a book, the author probably wants to split it up into
|
|
|
|
|
files, perhaps one per chapter (but perhaps even more detailed).
|
|
|
|
|
However, we'd like to be able to have references from one chapter to
|
|
|
|
|
another, and have continuous numbering (pages and chapters, as
|
|
|
|
|
applicable). Of course, none of this is implemented yet. There has
|
|
|
|
|
been some thought put into some aspects; see `the "include"
|
|
|
|
|
directive`__ and the `Reference Merging`_ transform below.
|
|
|
|
|
|
|
|
|
|
When I was working with SGML in Japan, we had a system where there
|
|
|
|
|
was a top-level coordinating file, book.sgml, which contained the
|
|
|
|
|
top-level structure of a book: the <book> element, containing the
|
|
|
|
|
book <title> and empty component elements (<preface>, <chapter>,
|
|
|
|
|
<appendix>, etc.), each with filename attributes pointing to the
|
|
|
|
|
actual source for the component. Something like this::
|
|
|
|
|
|
|
|
|
|
<book id="bk01">
|
|
|
|
|
<title>Title of the Book</title>
|
|
|
|
|
<preface inrefid="pr01"></preface>
|
|
|
|
|
<chapter inrefid="ch01"></chapter>
|
|
|
|
|
<chapter inrefid="ch02"></chapter>
|
|
|
|
|
<chapter inrefid="ch03"></chapter>
|
|
|
|
|
<appendix inrefid="ap01"></appendix>
|
|
|
|
|
</book>
|
|
|
|
|
|
|
|
|
|
(The "inrefid" attribute stood for "insertion reference ID".)
|
|
|
|
|
|
|
|
|
|
The processing system would process each component separately, but
|
|
|
|
|
it would recognize and use the book file to coordinate chapter and
|
|
|
|
|
page numbering, and keep a persistent ID to (title, page number)
|
|
|
|
|
mapping database for cross-references. Docutils could use a similar
|
|
|
|
|
system for large-scale, multipart documents.
|
|
|
|
|
|
|
|
|
|
__ ../ref/rst/directives.html#including-an-external-document-fragment
|
|
|
|
|
|
|
|
|
|
Aahz's idea:
|
|
|
|
|
|
|
|
|
|
First the ToC::
|
|
|
|
|
|
|
|
|
|
.. ToC-list::
|
|
|
|
|
Introduction.txt
|
|
|
|
|
Objects.txt
|
|
|
|
|
Data.txt
|
|
|
|
|
Control.txt
|
|
|
|
|
|
|
|
|
|
Then a sample use::
|
|
|
|
|
|
|
|
|
|
.. include:: ToC.txt
|
|
|
|
|
|
|
|
|
|
As I said earlier in chapter :chapter:`Objects.txt`, the
|
|
|
|
|
reference count gets increased every time a binding is made.
|
|
|
|
|
|
|
|
|
|
Which produces::
|
|
|
|
|
|
|
|
|
|
As I said earlier in chapter 2, the
|
|
|
|
|
reference count gets increased every time a binding is made.
|
|
|
|
|
|
|
|
|
|
The ToC in this form doesn't even need to be references to actual
|
|
|
|
|
reST documents; I'm simply doing it that way for a minimum of
|
|
|
|
|
future-proofing, in case I do want to add the ability to pick up
|
|
|
|
|
references within external chapters.
|
|
|
|
|
|
|
|
|
|
Perhaps, instead of ToC (which would overload the "contents"
|
|
|
|
|
directive concept already in use), we could use "manifest". A
|
|
|
|
|
"manifest" directive might associate local reference names with
|
|
|
|
|
files::
|
|
|
|
|
|
|
|
|
|
.. manifest::
|
|
|
|
|
intro: Introduction.txt
|
|
|
|
|
objects: Objects.txt
|
|
|
|
|
data: Data.txt
|
|
|
|
|
control: Control.txt
|
|
|
|
|
|
|
|
|
|
Then the sample becomes::
|
|
|
|
|
|
|
|
|
|
.. include:: manifest.txt
|
|
|
|
|
|
|
|
|
|
As I said earlier in chapter :chapter:`objects`, the
|
|
|
|
|
reference count gets increased every time a binding is made.
|
|
|
|
|
|
|
|
|
|
* Add support for _`multiple output files` and _`generic data
|
|
|
|
|
handling`:
|
|
|
|
|
|
|
|
|
|
It should be possible for a component to **emit or reference** data
|
|
|
|
|
to be either **included or referenced** in the output document.
|
|
|
|
|
Examples of such data are stylesheets or images.
|
|
|
|
|
|
|
|
|
|
For this, we need a "data" object which stores the data either
|
|
|
|
|
inline or by referring to a file. The Docutils framework is
|
|
|
|
|
responsible for either:
|
|
|
|
|
|
|
|
|
|
* storing the data in the appropriate location (e.g. in the
|
|
|
|
|
directory of the output file, or in a user-specified directory)
|
|
|
|
|
and providing the paths of the stored files to the writer, *or*
|
|
|
|
|
|
|
|
|
|
* providing the data itself to the writer so that it can be embedded
|
|
|
|
|
in the output document.
|
|
|
|
|
|
|
|
|
|
This approach decouples data handling from the data source (which
|
|
|
|
|
can either be embedded or referenced) and the destination (which can
|
|
|
|
|
either be embedded or referenced as well).
|
|
|
|
|
|
|
|
|
|
See <http://article.gmane.org/gmane.text.docutils.devel/3631>.
|
|
|
|
|
|
|
|
|
|
* Add testing for Docutils' front end tools?
|
|
|
|
|
|
|
|
|
|
* Publisher: "Ordinary setup" shouldn't requre specific ordering; at
|
|
|
|
|
the very least, there ought to be error checking higher up in the
|
|
|
|
|
call chain. [Aahz]
|
|
|
|
|
|
|
|
|
|
``Publisher.get_settings`` requires that all components be set up
|
|
|
|
|
before it's called. Perhaps the I/O *objects* shouldn't be set, but
|
|
|
|
|
I/O *classes*. Then options are set up (``.set_options``), and
|
|
|
|
|
``Publisher.set_io`` (or equivalent code) is called with source &
|
|
|
|
|
destination paths, creating the I/O objects.
|
|
|
|
|
|
|
|
|
|
Perhaps I/O objects shouldn't be instantiated until required. For
|
|
|
|
|
split output, the Writer may be called multiple times, once for each
|
|
|
|
|
doctree, and each doctree should have a separate Output object (with
|
|
|
|
|
a different path). Is the "Builder" pattern applicable here?
|
|
|
|
|
|
|
|
|
|
* Perhaps I/O objects should become full-fledged components (i.e.
|
|
|
|
|
subclasses of ``docutils.Component``, as are Readers, Parsers, and
|
|
|
|
|
Writers now), and thus have associated option/setting specs and
|
|
|
|
|
transforms.
|
|
|
|
|
|
|
|
|
|
* Multiple file I/O suggestion from Michael Hudson: use a file-like
|
|
|
|
|
object or something you can iterate over to get file-like objects.
|
|
|
|
|
|
|
|
|
|
* Add an "--input-language" option & setting? Specify a different
|
|
|
|
|
language module for input (bibliographic fields, directives) than
|
|
|
|
|
for output. The "--language" option would set both input & output
|
|
|
|
|
languages.
|
|
|
|
|
|
|
|
|
|
* Auto-generate reference tables for language-dependent features?
|
|
|
|
|
Could be generated from the source modules. A special command-line
|
|
|
|
|
option could be added to Docutils front ends to do this. (Idea from
|
|
|
|
|
Engelbert Gruber.)
|
|
|
|
|
|
|
|
|
|
* Enable feedback of some kind from internal decisions, such as
|
|
|
|
|
reporting the successful input encoding. Modify runtime settings?
|
|
|
|
|
System message? Simple stderr output?
|
|
|
|
|
|
|
|
|
|
* Rationalize Writer settings (HTML/LaTeX/PEP) -- share settings.
|
|
|
|
|
|
|
|
|
|
* Add an "--include file" command-line option (config setting too?),
|
|
|
|
|
equivalent to ".. include:: file" as the first line of the doc text?
|
|
|
|
|
Especially useful for character entity sets, text transform specs,
|
|
|
|
|
boilerplate, etc.
|
|
|
|
|
|
|
|
|
|
* Support "include" as embedded inline-compatible directive in substitution
|
|
|
|
|
definitions, e.g. ::
|
|
|
|
|
|
|
|
|
|
.. |version| include:: version.txt
|
|
|
|
|
|
|
|
|
|
This document describes version |version| of ...
|
|
|
|
|
|
|
|
|
|
(cf. Grzegorz Adam Hankiewicz's post from 2014-10-01 in docutils-devel)
|
|
|
|
|
|
|
|
|
|
* Add an ``:optional: <replacement text>`` option to the "include"
|
|
|
|
|
directive? This would not throw an error for a missing file, instead a
|
|
|
|
|
warning is given and ``<replacement text>`` is used instead. It would be
|
|
|
|
|
the responsibility of the author to ensure the missing file does not lead
|
|
|
|
|
to problems later in the document.
|
|
|
|
|
|
|
|
|
|
Use cases:
|
|
|
|
|
|
|
|
|
|
+ Standard rST syntax to replace Sphinx's "literalinclude"::
|
|
|
|
|
|
|
|
|
|
.. include:: blah.cpp
|
|
|
|
|
:literal:
|
|
|
|
|
:optional: file ``blah.cpp`` not found
|
|
|
|
|
|
|
|
|
|
+ Variable content taken from a file, e.g.
|
|
|
|
|
|
|
|
|
|
version.txt::
|
|
|
|
|
|
|
|
|
|
.. |version| replace:: 3.1
|
|
|
|
|
|
|
|
|
|
optionally used as::
|
|
|
|
|
|
|
|
|
|
.. include:: version.txt
|
|
|
|
|
:optional: .. |version| replace:: unknown
|
|
|
|
|
|
|
|
|
|
This document describes version |version| of ...
|
|
|
|
|
|
|
|
|
|
(cf. Grzegorz Adam Hankiewicz's post from 2014-10-01 in docutils-devel)
|
|
|
|
|
|
|
|
|
|
* Parameterize the Reporter object or class? See the `2004-02-18
|
|
|
|
|
"rest checking and source path"`_ thread.
|
|
|
|
|
|
|
|
|
|
.. _2004-02-18 "rest checking and source path":
|
|
|
|
|
http://thread.gmane.org/gmane.text.docutils.user/1112
|
|
|
|
|
|
|
|
|
|
* Add a "disable_transforms" setting? And a dummy Writer subclass
|
|
|
|
|
that does nothing when its .write() method is called? Would allow
|
|
|
|
|
for easy syntax checking. See the `2004-02-18 "rest checking and
|
|
|
|
|
source path"`_ thread.
|
|
|
|
|
|
|
|
|
|
* Add a generic meta-stylesheet mechanism? An external file could
|
|
|
|
|
associate style names ("class" attributes) with specific elements.
|
|
|
|
|
Could be generalized to arbitrary output attributes; useful for HTML
|
|
|
|
|
& XMLs. Aahz implemented something like this in
|
|
|
|
|
sandbox/aahz/Effective/EffMap.py.
|
|
|
|
|
|
|
|
|
|
* .. _classes for table cells:
|
|
|
|
|
|
|
|
|
|
William Dode suggested that table cells be assigned "class"
|
|
|
|
|
attributes by columns, so that stylesheets can affect text
|
|
|
|
|
alignment. Unfortunately, there doesn't seem to be a way (in HTML
|
|
|
|
|
at least) to leverage the "colspec" elements (HTML "col" tags) by
|
|
|
|
|
adding classes to them. The resulting HTML is very verbose::
|
|
|
|
|
|
|
|
|
|
<td class="col1">111</td>
|
|
|
|
|
<td class="col2">222</td>
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
At the very least, it should be an option. People who don't use it
|
|
|
|
|
shouldn't be penalized by increases in their HTML file sizes.
|
|
|
|
|
|
|
|
|
|
Table rows could also be assigned classes (like odd/even). That
|
|
|
|
|
would be easier to implement.
|
|
|
|
|
|
|
|
|
|
How should it be implemented?
|
|
|
|
|
|
|
|
|
|
* There could be writer options (column classes & row classes) with
|
|
|
|
|
standard values.
|
|
|
|
|
|
|
|
|
|
* The table directive could grow some options. Something like
|
|
|
|
|
":cell-classes: col1 col2 col3" (either must match the number of
|
|
|
|
|
columns, or repeat to fill?) and ":row-classes: odd even" (repeat
|
|
|
|
|
to fill; body rows only, or header rows too?).
|
|
|
|
|
|
|
|
|
|
Probably per-table directive options are best. The "class" values
|
|
|
|
|
could be used by any writer, and applying such classes to all tables
|
|
|
|
|
in a document with writer options is too broad.
|
|
|
|
|
|
|
|
|
|
See also the `table_styling Sphinx extension`_ which defines
|
|
|
|
|
|
|
|
|
|
:widths: also in Docutils core (but different implementation)
|
|
|
|
|
:column-alignment: Sets per-column text alignment
|
|
|
|
|
:column-wrapping: Sets per-column text wrapping
|
|
|
|
|
:column-dividers: Add dividers between columns
|
|
|
|
|
:column-classes: Add per-column css classes.
|
|
|
|
|
:header-columns: Specify number of “stub” columns
|
|
|
|
|
|
|
|
|
|
.. _table_styling Sphinx extension: https://pythonhosted.org/cloud_sptheme/
|
|
|
|
|
lib/cloud_sptheme.ext.table_styling.html
|
|
|
|
|
|
|
|
|
|
* Add file-specific settings support to config files, like::
|
|
|
|
|
|
|
|
|
|
[file index.txt]
|
|
|
|
|
compact-lists: no
|
|
|
|
|
|
|
|
|
|
Is this even possible? Should the criterion be the name of the
|
|
|
|
|
input file or the output file? Alternative (more explicit) syntax::
|
|
|
|
|
|
|
|
|
|
[source_file index.txt]
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
[dest_file index.html]
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
Or rather allow settings configuration from the rst source file
|
|
|
|
|
(see misc.settings_ directive)?
|
|
|
|
|
|
|
|
|
|
* The "validator" support added to OptionParser is very similar to
|
|
|
|
|
"traits_" in SciPy_. Perhaps something could be done with them?
|
|
|
|
|
(Had I known about traits when I was implementing docutils.frontend,
|
|
|
|
|
I may have used them instead of rolling my own.)
|
|
|
|
|
|
|
|
|
|
.. _traits: http://code.enthought.com/traits/
|
|
|
|
|
.. _SciPy: http://www.scipy.org/
|
|
|
|
|
|
|
|
|
|
* tools/buildhtml.py: Extend the --prune option ("prune" config
|
|
|
|
|
setting) to accept file names (generic path) in addition to
|
|
|
|
|
directories (e.g. --prune=docs/user/rst/cheatsheet.txt, which should
|
|
|
|
|
*not* be converted to HTML).
|
|
|
|
|
|
|
|
|
|
* Add support for _`plugins`.
|
|
|
|
|
|
|
|
|
|
* _`Config directories`: Currently, ~/.docutils, ./docutils.conf/, &
|
|
|
|
|
/etc/docutils.conf are read as configuration files. Proposal: allow
|
|
|
|
|
~/.docutils to be a a configuration *directory*, along with
|
|
|
|
|
/etc/docutils/ and ./docutils.conf/. Within these directories,
|
|
|
|
|
check for config.txt files. We can also have subdirectories here,
|
|
|
|
|
for plugins, S5 themes, components (readers/writers/parsers) etc.
|
|
|
|
|
|
|
|
|
|
Docutils will continue to support configuration files for backwards
|
|
|
|
|
compatibility.
|
|
|
|
|
|
|
|
|
|
* Add support for document decorations other than headers & footers?
|
|
|
|
|
For example, top/bottom/side navigation bars for web pages. Generic
|
|
|
|
|
decorations?
|
|
|
|
|
|
|
|
|
|
Seems like a bad idea as long as it isn't independent from the ouput
|
|
|
|
|
format (for example, navigation bars are only useful for web pages).
|
|
|
|
|
|
|
|
|
|
* docutils_update: Check for a ``Makefile`` in a directory, and run
|
|
|
|
|
``make`` if found? This would allow for variant processing on
|
|
|
|
|
specific source files, such as running rst2s5.py instead of
|
|
|
|
|
rst2html.py.
|
|
|
|
|
|
|
|
|
|
* Add a "disable table of contents" setting? The S5 writer could set
|
|
|
|
|
it as a default. Rationale:
|
|
|
|
|
|
|
|
|
|
The ``contents`` (table of contents) directive must not be used
|
|
|
|
|
[in S5/HTML documents]. It changes the CSS class of headings
|
|
|
|
|
and they won't show up correctly in the screen presentation.
|
|
|
|
|
|
|
|
|
|
-- `Easy Slide Shows With reStructuredText & S5
|
|
|
|
|
<../user/slide-shows.html>`_
|
|
|
|
|
|
|
|
|
|
Analogue to the ``sectnum_xform`` setting, it could be used by the
|
|
|
|
|
latex writer to switch to a LaTeX generated ToC (currently, the latex
|
|
|
|
|
writer calls it "use_latex_toc").
|
|
|
|
|
|
|
|
|
|
object numbering and object references
|
|
|
|
|
--------------------------------------
|
|
|
|
|
|
|
|
|
|
For equations, tables & figures.
|
|
|
|
|
|
|
|
|
|
These would be the equivalent of DocBook's "formal" elements.
|
|
|
|
|
|
|
|
|
|
In LaTeX, automatic counters are implemented for sections, equations and
|
|
|
|
|
floats (figures, tables) (configurable via stylesheets or in the
|
|
|
|
|
latex-preamble). Objects can be given `reference names`_ with the
|
|
|
|
|
``\label{<refname}`` command, ``\ref{<refname>}`` inserts the
|
|
|
|
|
corresponding number.
|
|
|
|
|
|
|
|
|
|
No such mechanism exists in HTML.
|
|
|
|
|
|
|
|
|
|
* We need _`persistent sequences`, similar to chapter and footnote
|
|
|
|
|
numbers. See `OpenOffice.org XML`_ "fields".
|
|
|
|
|
|
|
|
|
|
- Should the sequences be automatic or manual (user-specifyable)?
|
|
|
|
|
|
|
|
|
|
* It is already possible to give `reference names`_ to objects via
|
|
|
|
|
internal hyperlink targets or the "name" directive option::
|
|
|
|
|
|
|
|
|
|
.. _figure name:
|
|
|
|
|
|
|
|
|
|
.. figure:: image.png
|
|
|
|
|
|
|
|
|
|
or ::
|
|
|
|
|
|
|
|
|
|
.. figure:: image.png
|
|
|
|
|
:name: figure name
|
|
|
|
|
|
|
|
|
|
Improve the mapping of "phrase references" to IDs/labels with
|
|
|
|
|
Literal transcription (i.e. ü -> ue, ß -> ss, å -> aa) instead of just
|
|
|
|
|
stripping the accents and other non-ASCII chars.
|
|
|
|
|
Use http://pypi.python.org/pypi/Unidecode?
|
|
|
|
|
|
|
|
|
|
A "table" directive has been implemented, supporting table titles.
|
|
|
|
|
|
|
|
|
|
Perhaps the name could derive from the title/caption?
|
|
|
|
|
|
|
|
|
|
.. _reference names: ../ref/rst/restructuredtext.html#reference-names
|
|
|
|
|
|
|
|
|
|
* We need syntax for object references. Cf. `OpenOffice.org XML`_
|
|
|
|
|
"reference fields":
|
|
|
|
|
|
|
|
|
|
- Parameterized substitutions are too complicated
|
|
|
|
|
(cf. `or not to do`: `object references`_)
|
|
|
|
|
|
|
|
|
|
- An interpreted text approach is simpler and better::
|
|
|
|
|
|
|
|
|
|
See Figure :ref:`figure name` and Equation :ref:`eq:identity`.
|
|
|
|
|
|
|
|
|
|
- "equation", "figure", and "page" roles could generate appropriate
|
|
|
|
|
boilerplate text::
|
|
|
|
|
|
|
|
|
|
See :figure:`figure name` on :page:`figure name`.
|
|
|
|
|
|
|
|
|
|
See `Interpreted Text`_ below.
|
|
|
|
|
|
|
|
|
|
Reference boilerplate could be specified in the document
|
|
|
|
|
(defaulting to nothing)::
|
|
|
|
|
|
|
|
|
|
.. fignum::
|
|
|
|
|
:prefix-ref: "Figure "
|
|
|
|
|
:prefix-caption: "Fig. "
|
|
|
|
|
:suffix-caption: :
|
|
|
|
|
|
|
|
|
|
The position of the role (prefix or suffix) could also be utilized
|
|
|
|
|
|
|
|
|
|
.. _OpenOffice.org XML: http://xml.openoffice.org/
|
|
|
|
|
.. _object references: rst/alternatives.html#object-references
|
|
|
|
|
|
|
|
|
|
See also the `Modified rst2html
|
|
|
|
|
<http://www.loria.fr/~rougier/coding/article/rst2html.py>`__
|
|
|
|
|
by Nicolas Rougier for a sample implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
|
=============
|
|
|
|
|
|
|
|
|
|
User Docs
|
|
|
|
|
---------
|
|
|
|
|
|
|
|
|
|
* Add a FAQ entry about using Docutils (with reStructuredText) on a
|
|
|
|
|
server and that it's terribly slow. See the first paragraphs in
|
|
|
|
|
<http://article.gmane.org/gmane.text.docutils.user/1584>.
|
|
|
|
|
|
|
|
|
|
* Add document about what Docutils has previously been used for
|
|
|
|
|
(web/use-cases.txt?).
|
|
|
|
|
|
|
|
|
|
* Improve index in docs/user/config.txt.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Developer Docs
|
|
|
|
|
--------------
|
|
|
|
|
|
|
|
|
|
* Complete `Docutils Runtime Settings <../api/runtime-settings.html>`_.
|
|
|
|
|
|
|
|
|
|
* Improve the internal module documentation (docstrings in the code).
|
|
|
|
|
Specific deficiencies listed below.
|
|
|
|
|
|
|
|
|
|
- docutils.parsers.rst.states.State.build_table: data structure
|
|
|
|
|
required (including StringList).
|
|
|
|
|
|
|
|
|
|
- docutils.parsers.rst.states: more complete documentation of parser
|
|
|
|
|
internals.
|
|
|
|
|
|
|
|
|
|
* docs/ref/doctree.txt: DTD element structural relationships,
|
|
|
|
|
semantics, and attributes. In progress; element descriptions to be
|
|
|
|
|
completed.
|
|
|
|
|
|
|
|
|
|
* Document the ``pending`` elements, how they're generated and what
|
|
|
|
|
they do.
|
|
|
|
|
|
|
|
|
|
* Document the transforms (perhaps in docstrings?): how they're used,
|
|
|
|
|
what they do, dependencies & order considerations.
|
|
|
|
|
|
|
|
|
|
* Document the HTML classes used by html4css1.py.
|
|
|
|
|
|
|
|
|
|
* Write an overview of the Docutils architecture, as an introduction
|
|
|
|
|
for developers. What connects to what, why, and how. Either update
|
|
|
|
|
PEP 258 (see PEPs_ below) or as a separate doc.
|
|
|
|
|
|
|
|
|
|
* Give information about unit tests. Maybe as a howto?
|
|
|
|
|
|
|
|
|
|
* Document the docutils.nodes APIs.
|
|
|
|
|
|
|
|
|
|
* Complete the docs/api/publisher.txt docs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
How-Tos
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
* Creating Docutils Writers
|
|
|
|
|
|
|
|
|
|
* Creating Docutils Readers
|
|
|
|
|
|
|
|
|
|
* Creating Docutils Transforms
|
|
|
|
|
|
|
|
|
|
* Creating Docutils Parsers
|
|
|
|
|
|
|
|
|
|
* Using Docutils as a Library
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PEPs
|
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
* Complete PEP 258 Docutils Design Specification.
|
|
|
|
|
|
|
|
|
|
- Fill in the blanks in API details.
|
|
|
|
|
|
|
|
|
|
- Specify the nodes.py internal data structure implementation?
|
|
|
|
|
|
|
|
|
|
[Tibs:] Eventually we need to have direct documentation in
|
|
|
|
|
there on how it all hangs together - the DTD is not enough
|
|
|
|
|
(indeed, is it still meant to be correct? [Yes, it is.
|
|
|
|
|
--DG]).
|
|
|
|
|
|
|
|
|
|
* Rework PEP 257, separating style from spec from tools, wrt Docutils?
|
|
|
|
|
See Doc-SIG from 2001-06-19/20.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Python Source Reader
|
|
|
|
|
====================
|
|
|
|
|
|
|
|
|
|
General:
|
|
|
|
|
|
|
|
|
|
* Analyze Tony Ibbs' PySource code.
|
|
|
|
|
|
|
|
|
|
* Analyze Doug Hellmann's HappyDoc project.
|
|
|
|
|
|
|
|
|
|
* Investigate how POD handles literate programming.
|
|
|
|
|
|
|
|
|
|
* Take the best ideas and integrate them into Docutils.
|
|
|
|
|
|
|
|
|
|
Miscellaneous ideas:
|
|
|
|
|
|
|
|
|
|
* Ask Python-dev for opinions (GvR for a pronouncement) on special
|
|
|
|
|
variables (__author__, __version__, etc.): convenience vs. namespace
|
|
|
|
|
pollution. Ask opinions on whether or not Docutils should recognize
|
|
|
|
|
& use them.
|
|
|
|
|
|
|
|
|
|
* If we can detect that a comment block begins with ``##``, a la
|
|
|
|
|
JavaDoc, it might be useful to indicate interspersed section headers
|
|
|
|
|
& explanatory text in a module. For example::
|
|
|
|
|
|
|
|
|
|
"""Module docstring."""
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
# Constants
|
|
|
|
|
# =========
|
|
|
|
|
|
|
|
|
|
a = 1
|
|
|
|
|
b = 2
|
|
|
|
|
|
|
|
|
|
##
|
|
|
|
|
# Exception Classes
|
|
|
|
|
# =================
|
|
|
|
|
|
|
|
|
|
class MyException(Exception): pass
|
|
|
|
|
|
|
|
|
|
# etc.
|
|
|
|
|
|
|
|
|
|
* Should standalone strings also become (module/class) docstrings?
|
|
|
|
|
Under what conditions? We want to prevent arbitrary strings from
|
|
|
|
|
becomming docstrings of prior attribute assignments etc. Assume
|
|
|
|
|
that there must be no blank lines between attributes and attribute
|
|
|
|
|
docstrings? (Use lineno of NEWLINE token.)
|
|
|
|
|
|
|
|
|
|
Triple-quotes are sometimes used for multi-line comments (such as
|
|
|
|
|
commenting out blocks of code). How to reconcile?
|
|
|
|
|
|
|
|
|
|
* HappyDoc's idea of using comment blocks when there's no docstring
|
|
|
|
|
may be useful to get around the conflict between `additional
|
|
|
|
|
docstrings`_ and ``from __future__ import`` for module docstrings.
|
|
|
|
|
A module could begin like this::
|
|
|
|
|
|
|
|
|
|
#!/usr/bin/env python
|
|
|
|
|
# :Author: Me
|
|
|
|
|
# :Copyright: whatever
|
|
|
|
|
|
|
|
|
|
"""This is the public module docstring (``__doc__``)."""
|
|
|
|
|
|
|
|
|
|
# More docs, in comments.
|
|
|
|
|
# All comments at the beginning of a module could be
|
|
|
|
|
# accumulated as docstrings.
|
|
|
|
|
# We can't have another docstring here, because of the
|
|
|
|
|
# ``__future__`` statement.
|
|
|
|
|
|
|
|
|
|
from __future__ import division
|
|
|
|
|
|
|
|
|
|
Using the JavaDoc convention of a doc-comment block beginning with
|
|
|
|
|
``##`` is useful though. It allows doc-comments and implementation
|
|
|
|
|
comments.
|
|
|
|
|
|
|
|
|
|
.. _additional docstrings:
|
|
|
|
|
../peps/pep-0258.html#additional-docstrings
|
|
|
|
|
|
|
|
|
|
* HappyDoc uses an initial comment block to set "parser configuration
|
|
|
|
|
values". Do the same thing for Docutils, to set runtime settings on
|
|
|
|
|
a per-module basis? I.e.::
|
|
|
|
|
|
|
|
|
|
# Docutils:setting=value
|
|
|
|
|
|
|
|
|
|
Could be used to turn on/off function parameter comment recognition
|
|
|
|
|
& other marginal features. Could be used as a general mechanism to
|
|
|
|
|
augment config files and command-line options (but which takes
|
|
|
|
|
precedence?).
|
|
|
|
|
|
|
|
|
|
* Multi-file output should be divisible at arbitrary level.
|
|
|
|
|
|
|
|
|
|
* Support all forms of ``import`` statements:
|
|
|
|
|
|
|
|
|
|
- ``import module``: listed as "module"
|
|
|
|
|
- ``import module as alias``: "alias (module)"
|
|
|
|
|
- ``from module import identifier``: "identifier (from module)"
|
|
|
|
|
- ``from module import identifier as alias``: "alias (identifier
|
|
|
|
|
from module)"
|
|
|
|
|
- ``from module import *``: "all identifiers (``*``) from module"
|
|
|
|
|
|
|
|
|
|
* Have links to colorized Python source files from API docs? And
|
|
|
|
|
vice-versa: backlinks from the colorized source files to the API
|
|
|
|
|
docs!
|
|
|
|
|
|
|
|
|
|
* In summaries, use the first *sentence* of a docstring if the first
|
|
|
|
|
line is not followed by a blank line.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reStructuredText Parser
|
|
|
|
|
=======================
|
|
|
|
|
|
|
|
|
|
Also see the `... Or Not To Do?`__ list.
|
|
|
|
|
|
|
|
|
|
__ rst/alternatives.html#or-not-to-do
|
|
|
|
|
|
|
|
|
|
Misc
|
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
* Another list problem::
|
|
|
|
|
|
|
|
|
|
* foo
|
|
|
|
|
* bar
|
|
|
|
|
* baz
|
|
|
|
|
|
|
|
|
|
This ends up as a definition list. This is more of a usability
|
|
|
|
|
issue.
|
|
|
|
|
|
|
|
|
|
* This case is probably meant to be a nested list, but it ends up as a
|
|
|
|
|
list inside a block-quote without an error message::
|
|
|
|
|
|
|
|
|
|
- foo
|
|
|
|
|
|
|
|
|
|
- bar
|
|
|
|
|
|
|
|
|
|
It should probably just be an error.
|
|
|
|
|
|
|
|
|
|
The problem with this is that you don't notice easily in HTML that
|
|
|
|
|
it's not a nested list but a block-quote -- there's not much of a
|
|
|
|
|
visual difference.
|
|
|
|
|
|
|
|
|
|
* Treat enumerated lists that are not arabic and consist of only one
|
|
|
|
|
item in a single line as ordinary paragraphs. See
|
|
|
|
|
<http://article.gmane.org/gmane.text.docutils.user/2635>.
|
|
|
|
|
|
|
|
|
|
* The citation syntax could use some improvements. See
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/2499> (and the
|
|
|
|
|
sub-thread at
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/2499/focus=3028>,
|
|
|
|
|
and the follow-ups at
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3087>,
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3110>,
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3114>),
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/2443>,
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/2715>,
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3027>,
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3120>,
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3253>.
|
|
|
|
|
|
|
|
|
|
* The current list-recognition logic has too many false positives, as
|
|
|
|
|
in ::
|
|
|
|
|
|
|
|
|
|
* Aorta
|
|
|
|
|
* V. cava superior
|
|
|
|
|
* V. cava inferior
|
|
|
|
|
|
|
|
|
|
Here ``V.`` is recognized as an enumerator, which leads to
|
|
|
|
|
confusion. We need to find a solution that resolves such problems
|
|
|
|
|
without complicating the spec to much.
|
|
|
|
|
|
|
|
|
|
See <http://thread.gmane.org/gmane.text.docutils.user/2524>.
|
|
|
|
|
|
|
|
|
|
* Add indirect links via citation references & footnote references.
|
|
|
|
|
Example::
|
|
|
|
|
|
|
|
|
|
`Goodger (2005)`_ is helpful.
|
|
|
|
|
|
|
|
|
|
.. _Goodger (2005): [goodger2005]_
|
|
|
|
|
.. [goodger2005] citation text
|
|
|
|
|
|
|
|
|
|
See <http://thread.gmane.org/gmane.text.docutils.user/2499>.
|
|
|
|
|
|
|
|
|
|
* Complain about bad URI characters
|
|
|
|
|
(http://article.gmane.org/gmane.text.docutils.user/2046) and
|
|
|
|
|
disallow internal whitespace
|
|
|
|
|
(http://article.gmane.org/gmane.text.docutils.user/2214).
|
|
|
|
|
|
|
|
|
|
* Create ``info``-level system messages for unnecessarily
|
|
|
|
|
backslash-escaped characters (as in ``"\something"``, rendered as
|
|
|
|
|
"something") to allow checking for errors which silently slipped
|
|
|
|
|
through.
|
|
|
|
|
|
|
|
|
|
* Add (functional) tests for untested roles.
|
|
|
|
|
|
|
|
|
|
* Add test for ":figwidth: image" option of "figure" directive. (Test
|
|
|
|
|
code needs to check if PIL is available on the system.)
|
|
|
|
|
|
|
|
|
|
* Add support for CJK double-width whitespace (indentation) &
|
|
|
|
|
punctuation characters (markup; e.g. double-width "*", "-", "+")?
|
|
|
|
|
|
|
|
|
|
* Add motivation sections for constructs in spec.
|
|
|
|
|
|
|
|
|
|
* Support generic hyperlink references to _`targets in other
|
|
|
|
|
documents`? Not in an HTML-centric way, though (it's trivial to say
|
|
|
|
|
``http://www.example.com/doc#name``, and useless in non-HTML
|
|
|
|
|
contexts). XLink/XPointer? ``.. baseref::``? See Doc-SIG
|
|
|
|
|
2001-08-10.
|
|
|
|
|
|
|
|
|
|
* .. _adaptable file extensions:
|
|
|
|
|
|
|
|
|
|
In target URLs, it would be useful to not explicitly specify the
|
|
|
|
|
file extension. If we're generating HTML, then ".html" is
|
|
|
|
|
appropriate; if PDF, then ".pdf"; etc. How about using ".*" to
|
|
|
|
|
indicate "choose the most appropriate filename extension"? For
|
|
|
|
|
example::
|
|
|
|
|
|
|
|
|
|
.. _Another Document: another.*
|
|
|
|
|
|
|
|
|
|
What is to be done for output formats that don't *have* hyperlinks?
|
|
|
|
|
For example, LaTeX targeted at print. Hyperlinks may be "called
|
|
|
|
|
out", as footnotes with explicit URLs. (Don't convert the links.)
|
|
|
|
|
|
|
|
|
|
But then there's also LaTeX targeted at PDFs, which *can* have
|
|
|
|
|
links. Perhaps a runtime setting for "*" could explicitly provide
|
|
|
|
|
the extension, defaulting to the output file's extension.
|
|
|
|
|
|
|
|
|
|
Should the system check for existing files? No, not practical.
|
|
|
|
|
|
|
|
|
|
Handle documents only, or objects (images, etc.) also?
|
|
|
|
|
|
|
|
|
|
If this handles images also, how to differentiate between document
|
|
|
|
|
and image links? Element context (within "image")? Which image
|
|
|
|
|
extension to use for which document format? Again, a runtime
|
|
|
|
|
setting would suffice.
|
|
|
|
|
|
|
|
|
|
This may not be just a parser issue; it may need framework support.
|
|
|
|
|
|
|
|
|
|
Mailing list threads: `Images in both HTML and LaTeX`__ (especially
|
|
|
|
|
`this summary of Lea's objections`__), `more-universal links?`__,
|
|
|
|
|
`Output-format-sensitive link targets?`__
|
|
|
|
|
|
|
|
|
|
__ http://thread.gmane.org/gmane.text.docutils.user/1239
|
|
|
|
|
__ http://article.gmane.org/gmane.text.docutils.user/1278
|
|
|
|
|
__ http://thread.gmane.org/gmane.text.docutils.user/1915
|
|
|
|
|
__ http://thread.gmane.org/gmane.text.docutils.user/2438
|
|
|
|
|
|
|
|
|
|
Idea from Jim Fulton: an external lookup table of targets:
|
|
|
|
|
|
|
|
|
|
I would like to specify the extension (e.g. .txt) [in the
|
|
|
|
|
source, rather than ``filename.*``], but tell the converter to
|
|
|
|
|
change references to the files anticipating that the files will
|
|
|
|
|
be converted too.
|
|
|
|
|
|
|
|
|
|
For example::
|
|
|
|
|
|
|
|
|
|
.. _Another Document: another.txt
|
|
|
|
|
|
|
|
|
|
rst2html.py --convert-links "another.txt bar.txt" foo.txt
|
|
|
|
|
|
|
|
|
|
That is, name the files for which extensions should be converted.
|
|
|
|
|
|
|
|
|
|
Note that I want to refer to original files in the original text
|
|
|
|
|
(another.txt rather than another.txt) because I want the
|
|
|
|
|
unconverted text to stand on its own.
|
|
|
|
|
|
|
|
|
|
Note that in most cases, people will be able to use globs::
|
|
|
|
|
|
|
|
|
|
rst2html.py --convert-link-extensions-for "`echo *.txt`" foo.txt
|
|
|
|
|
|
|
|
|
|
It might be nice to be able to use multiple arguments, as in::
|
|
|
|
|
|
|
|
|
|
rst2html.py --convert-link-extensions-for *.txt -- foo.txt
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
> What is to be done for output formats
|
|
|
|
|
> that don't have hyperlinks?
|
|
|
|
|
|
|
|
|
|
Don't convert the links.
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
> Handle documents only, or objects
|
|
|
|
|
> (images, etc.) also?
|
|
|
|
|
|
|
|
|
|
No, documents only, but there really is no need for gueswork.
|
|
|
|
|
Just get the file names as command-line arguments. EIBTI
|
|
|
|
|
[explicit is better than implicit].
|
|
|
|
|
|
|
|
|
|
For images, we probably need separate solution (which is being
|
|
|
|
|
worked on), whereas for documents, the issue is basically
|
|
|
|
|
interlinking between reStructuredText documents. IMO, this cries
|
|
|
|
|
for support for multiple input and output files, i.e. support for
|
|
|
|
|
documents which comprise multiple files. Adding adaptable file
|
|
|
|
|
extensions seems like a kludge. // FW
|
|
|
|
|
|
|
|
|
|
* Implement the header row separator modification to table.el. (Wrote
|
|
|
|
|
to Takaaki Ota & the table.el mailing list on 2001-08-12, suggesting
|
|
|
|
|
support for "=====" header rows. On 2001-08-17 he replied, saying
|
|
|
|
|
he'd put it on his to-do list, but "don't hold your breath".)
|
|
|
|
|
|
|
|
|
|
* Fix the parser's indentation handling to conform with the stricter
|
|
|
|
|
definition in the spec. (Explicit markup blocks should be strict or
|
|
|
|
|
forgiving?)
|
|
|
|
|
|
|
|
|
|
.. XXX What does this mean? Can you elaborate, David?
|
|
|
|
|
|
|
|
|
|
* Make the parser modular. Allow syntax constructs to be added or
|
|
|
|
|
disabled at run-time. Subclassing is probably not enough because it
|
|
|
|
|
makes it difficult to apply multiple extensions.
|
|
|
|
|
|
|
|
|
|
* Generalize the "doctest block" construct (which is overly
|
|
|
|
|
Python-centric) to other interactive sessions? "Doctest block"
|
|
|
|
|
could be renamed to "I/O block" or "interactive block", and each of
|
|
|
|
|
these could also be recognized as such by the parser:
|
|
|
|
|
|
|
|
|
|
- Shell sessions::
|
|
|
|
|
|
|
|
|
|
$ cat example1.txt
|
|
|
|
|
A block beginning with a "$ " prompt is interpreted as a shell
|
|
|
|
|
session interactive block. As with Doctest blocks, the
|
|
|
|
|
interactive block ends with the first blank line, and wouldn't
|
|
|
|
|
have to be indented.
|
|
|
|
|
|
|
|
|
|
- Root shell sessions::
|
|
|
|
|
|
|
|
|
|
# cat example2.txt
|
|
|
|
|
A block beginning with a "# " prompt is interpreted as a root
|
|
|
|
|
shell session (the user is or has to be logged in as root)
|
|
|
|
|
interactive block. Again, the block ends with a blank line.
|
|
|
|
|
|
|
|
|
|
Other standard (and unambiguous) interactive session prompts could
|
|
|
|
|
easily be added (such as "> " for WinDOS).
|
|
|
|
|
|
|
|
|
|
Tony Ibbs spoke out against this idea (2002-06-14 Doc-SIG thread
|
|
|
|
|
"docutils feedback").
|
|
|
|
|
|
|
|
|
|
* Add support for pragma (syntax-altering) directives.
|
|
|
|
|
|
|
|
|
|
Some pragma directives could be local-scope unless explicitly
|
|
|
|
|
specified as global/pragma using ":global:" options.
|
|
|
|
|
|
|
|
|
|
* Support whitespace in angle-bracketed standalone URLs according to
|
|
|
|
|
Appendix E ("Recommendations for Delimiting URI in Context") of `RFC
|
|
|
|
|
2396`_.
|
|
|
|
|
|
|
|
|
|
.. _RFC 2396: http://www.rfc-editor.org/rfc/rfc2396.txt
|
|
|
|
|
|
|
|
|
|
* Use the vertical spacing of the source text to determine the
|
|
|
|
|
corresponding vertical spacing of the output?
|
|
|
|
|
|
|
|
|
|
* [From Mark Nodine] For cells in simple tables that comprise a
|
|
|
|
|
single line, the justification can be inferred according to the
|
|
|
|
|
following rules:
|
|
|
|
|
|
|
|
|
|
1. If the text begins at the leftmost column of the cell,
|
|
|
|
|
then left justification, ELSE
|
|
|
|
|
2. If the text begins at the rightmost column of the cell,
|
|
|
|
|
then right justification, ELSE
|
|
|
|
|
3. Center justification.
|
|
|
|
|
|
|
|
|
|
The onus is on the author to make the text unambiguous by adding
|
|
|
|
|
blank columns as necessary. There should be a parser setting to
|
|
|
|
|
turn off justification-recognition (normally on would be fine).
|
|
|
|
|
|
|
|
|
|
Decimal justification?
|
|
|
|
|
|
|
|
|
|
All this shouldn't be done automatically. Only when it's requested
|
|
|
|
|
by the user, e.g. with something like this::
|
|
|
|
|
|
|
|
|
|
.. table::
|
|
|
|
|
:auto-indent:
|
|
|
|
|
|
|
|
|
|
(Table goes here.)
|
|
|
|
|
|
|
|
|
|
Otherwise it will break existing documents.
|
|
|
|
|
|
|
|
|
|
* Generate a warning or info message for paragraphs which should have
|
|
|
|
|
been lists, like this one::
|
|
|
|
|
|
|
|
|
|
1. line one
|
|
|
|
|
3. line two
|
|
|
|
|
|
|
|
|
|
* Generalize the "target-notes" directive into a command-line option
|
|
|
|
|
somehow? See docutils-develop 2003-02-13.
|
|
|
|
|
|
|
|
|
|
* Allow a "::"-only paragraph (first line, actually) to introduce a
|
|
|
|
|
_`literal block without a blank line`? (Idea from Paul Moore.) ::
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
This is a literal block
|
|
|
|
|
|
|
|
|
|
Is indentation enough to make the separation between a paragraph
|
|
|
|
|
which contains just a ``::`` and the literal text unambiguous?
|
|
|
|
|
(There's one problem with this concession: If one wants a definition
|
|
|
|
|
list item which defines the term "::", we'd have to escape it.) It
|
|
|
|
|
would only be reasonable to apply it to "::"-only paragraphs though.
|
|
|
|
|
I think the blank line is visually necessary if there's text before
|
|
|
|
|
the "::"::
|
|
|
|
|
|
|
|
|
|
The text in this paragraph needs separation
|
|
|
|
|
from the literal block following::
|
|
|
|
|
This doesn't look right.
|
|
|
|
|
|
|
|
|
|
* Add new syntax for _`nested inline markup`? Or extend the parser to
|
|
|
|
|
parse nested inline markup somehow? See the `collected notes
|
|
|
|
|
<rst/alternatives.html#nested-inline-markup>`__.
|
|
|
|
|
|
|
|
|
|
* Drop the backticks from embedded URIs with omitted reference text?
|
|
|
|
|
Should the angle brackets be kept in the output or not? ::
|
|
|
|
|
|
|
|
|
|
<file_name>_
|
|
|
|
|
|
|
|
|
|
Probably not worth the trouble.
|
|
|
|
|
|
|
|
|
|
* How about a syntax for alternative hyperlink behavior, such as "open
|
|
|
|
|
in a new window" (as in HTML's ``<a target="_blank">``)?
|
|
|
|
|
|
|
|
|
|
The MoinMoin wiki uses a caret ("^") at the beginning of the URL
|
|
|
|
|
("^" is not a legal URI character). That could work for both inline
|
|
|
|
|
and explicit targets::
|
|
|
|
|
|
|
|
|
|
The `reference docs <^url>`__ may be handy.
|
|
|
|
|
|
|
|
|
|
.. _name: ^url
|
|
|
|
|
|
|
|
|
|
This may be too specific to HTML. It hasn't been requested very
|
|
|
|
|
often either.
|
|
|
|
|
|
|
|
|
|
* Add an option to add URI schemes at runtime.
|
|
|
|
|
|
|
|
|
|
* _`Segmented lists`::
|
|
|
|
|
|
|
|
|
|
: segment : segment : segment
|
|
|
|
|
: segment : segment : very long
|
|
|
|
|
segment
|
|
|
|
|
: segment : segment : segment
|
|
|
|
|
|
|
|
|
|
The initial colon (":") can be thought of as a type of bullet
|
|
|
|
|
|
|
|
|
|
We could even have segment titles::
|
|
|
|
|
|
|
|
|
|
:: title : title : title
|
|
|
|
|
: segment : segment : segment
|
|
|
|
|
: segment : segment : segment
|
|
|
|
|
|
|
|
|
|
This would correspond well to DocBook's SegmentedList. Output could
|
|
|
|
|
be tabular or "name: value" pairs, as described in DocBook's docs.
|
|
|
|
|
|
|
|
|
|
* Allow backslash-escaped colons in field names::
|
|
|
|
|
|
|
|
|
|
:Case Study\: Event Handling: This chapter will be dropped.
|
|
|
|
|
|
|
|
|
|
* Enable grid _`tables inside XML comments`, where "``--``" ends comments.
|
|
|
|
|
|
|
|
|
|
Implementation possibilities:
|
|
|
|
|
|
|
|
|
|
1. Make the table syntax characters into "table" directive options.
|
|
|
|
|
This is the most flexible but most difficult, and we probably
|
|
|
|
|
don't need that much flexibility.
|
|
|
|
|
|
|
|
|
|
2. Substitute "~" for "-" with a specialized directive option
|
|
|
|
|
(e.g. ":tildes:").
|
|
|
|
|
|
|
|
|
|
3. Make the standard table syntax recognize "~" as well as "-", even
|
|
|
|
|
without a directive option. Individual tables would have to be
|
|
|
|
|
internally consistent.
|
|
|
|
|
|
|
|
|
|
4. Allow Unicode box characters for table markup
|
|
|
|
|
(`feature request [6]`_)
|
|
|
|
|
|
|
|
|
|
Directive options are preferable to configuration settings, because
|
|
|
|
|
tables are document-specific. A pragma directive would be another
|
|
|
|
|
approach, to set the syntax once for a whole document.
|
|
|
|
|
|
|
|
|
|
Unicode box character markup would kill two birds with one stone.
|
|
|
|
|
|
|
|
|
|
In the meantime, the list-table_ directive is a good replacement for
|
|
|
|
|
grid tables inside XML comments.
|
|
|
|
|
|
|
|
|
|
.. _feature request [6]:
|
|
|
|
|
http://sourceforge.net/p/docutils/feature-requests/6
|
|
|
|
|
.. _list-table: ../ref/rst/directives.html#list-table
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Generalize docinfo contents (bibliographic fields): remove specific
|
|
|
|
|
fields, and have only a single generic "field"?
|
|
|
|
|
|
|
|
|
|
* _`Line numbers` and "source" in system messages:
|
|
|
|
|
|
|
|
|
|
- Add "source" and "line" keyword arguments to all Reporter calls?
|
|
|
|
|
This would require passing source/line arguments along all
|
|
|
|
|
intermediate functions (where currently only `line` is used).
|
|
|
|
|
|
|
|
|
|
Or rather specify "line" only if actually needed?
|
|
|
|
|
|
|
|
|
|
Currently, `document.reporter` uses a state machine instance to
|
|
|
|
|
determine the "source" and "line" info from
|
|
|
|
|
`statemachine.input_lines` if not given explicitely. Except for
|
|
|
|
|
special cases, the "line" argument is not needed because,
|
|
|
|
|
`document.statemachine` keeps record of the current line number.
|
|
|
|
|
|
|
|
|
|
- For system messages generated after the parsing is completed (i.e. by
|
|
|
|
|
transforms or the writer) "line" info must be present in the doctree
|
|
|
|
|
elements.
|
|
|
|
|
|
|
|
|
|
Elements' .line assignments should be checked. (Assign to .source
|
|
|
|
|
too? Add a set_info method? To what?)
|
|
|
|
|
|
|
|
|
|
The "source" (and line number in the source) can either be added
|
|
|
|
|
explicitely to the elements or determined from the “raw” line
|
|
|
|
|
number by `document.statemachine.get_source_and_line`.
|
|
|
|
|
|
|
|
|
|
- Some line numbers in elements are not being set properly
|
|
|
|
|
(explicitly), just implicitly/automatically. See rev. 1.74 of
|
|
|
|
|
docutils/parsers/rst/states.py for an example of how to set.
|
|
|
|
|
|
|
|
|
|
- The line numbers of definition list items are wrong::
|
|
|
|
|
|
|
|
|
|
$ rst2pseudoxml.py --expose-internal-attribute line
|
|
|
|
|
1
|
|
|
|
|
2
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
6
|
|
|
|
|
7
|
|
|
|
|
|
|
|
|
|
<document source="<stdin>">
|
|
|
|
|
<definition_list>
|
|
|
|
|
<definition_list_item internal:line="3">
|
|
|
|
|
<term>
|
|
|
|
|
1
|
|
|
|
|
<definition>
|
|
|
|
|
<paragraph internal:line="2">
|
|
|
|
|
2
|
|
|
|
|
3
|
|
|
|
|
<definition_list_item internal:line="6">
|
|
|
|
|
<term>
|
|
|
|
|
5
|
|
|
|
|
<definition>
|
|
|
|
|
<paragraph internal:line="6">
|
|
|
|
|
6
|
|
|
|
|
7
|
|
|
|
|
|
|
|
|
|
* .. _none source:
|
|
|
|
|
|
|
|
|
|
Quite a few nodes are getting a "None" source attribute as well. In
|
|
|
|
|
particular, see the bodies of definition lists.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Math Markup
|
|
|
|
|
-----------
|
|
|
|
|
|
|
|
|
|
Since Docutils 0.8, a "math" role and directive using LaTeX math
|
|
|
|
|
syntax as input format is part of reStructuredText.
|
|
|
|
|
|
|
|
|
|
Open issues:
|
|
|
|
|
|
|
|
|
|
* Use a "Transform" for math format conversions as extensively discussed in
|
|
|
|
|
the "math directive issues" thread in May 2008
|
|
|
|
|
(http://osdir.com/ml/text.docutils.devel/2008-05/threads.html)?
|
|
|
|
|
|
|
|
|
|
* Generic `math-output setting`_ (currently specific to HTML).
|
|
|
|
|
(List of math-output preferences?)
|
|
|
|
|
|
|
|
|
|
* Try to be compatible with `Math support in Sphinx`_?
|
|
|
|
|
|
|
|
|
|
* The ``:label:`` option selects a label for the equation, by which it
|
|
|
|
|
can be cross-referenced, and causes an equation number to be issued.
|
|
|
|
|
In Docutils, the option ``:name:`` sets the label.
|
|
|
|
|
Equation numbering is not implemented yet.
|
|
|
|
|
|
|
|
|
|
* Option ``:nowrap:`` prevents wrapping of the given math in a
|
|
|
|
|
math environment (you have to specify the math environment in the
|
|
|
|
|
content).
|
|
|
|
|
|
|
|
|
|
.. _Math support in Sphinx: http://sphinx.pocoo.org/ext/math.html
|
|
|
|
|
|
|
|
|
|
* Equation numbering and references. (see the section on
|
|
|
|
|
`object numbering and object references` for equations,
|
|
|
|
|
formal tables, and images.)
|
|
|
|
|
|
|
|
|
|
.. _math-output setting: ../user/config.html#math-output
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
alternative input formats
|
|
|
|
|
`````````````````````````
|
|
|
|
|
|
|
|
|
|
Use a directive option to specify an alternative input format, e.g. (but not
|
|
|
|
|
limited to):
|
|
|
|
|
|
|
|
|
|
MathML_
|
|
|
|
|
Not for hand-written code but maybe usefull when pasted in (or included
|
|
|
|
|
from a file)
|
|
|
|
|
|
|
|
|
|
For an overview of MathML implementations and tests, see, e.g.,
|
|
|
|
|
the `mathweb wiki`_ or the `ConTeXT MathML page`_.
|
|
|
|
|
|
|
|
|
|
.. _MathML: http://www.w3.org/TR/MathML2/
|
|
|
|
|
.. _mathweb wiki: http://www.mathweb.org/wiki/MathML
|
|
|
|
|
.. _ConTeXT MathML page: http://wiki.contextgarden.net/MathML
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ASCIIMath_
|
|
|
|
|
Simple, ASCII based math input language (see also `ASCIIMath tutorial`_).
|
|
|
|
|
|
|
|
|
|
* The Python module ASCIIMathML_ translates a string with ASCIIMath into a
|
|
|
|
|
MathML tree. Used, e.g., by MultiMarkdown__.
|
|
|
|
|
|
|
|
|
|
A more comprehensive implementation is ASCIIMathPython_ by
|
|
|
|
|
Paul Trembley (also used in his sandbox projects).
|
|
|
|
|
|
|
|
|
|
* For conversion to LaTeX, there is a JavaScript script at
|
|
|
|
|
http://dlippman.imathas.com/asciimathtex/ASCIIMath2TeX.js
|
|
|
|
|
|
|
|
|
|
.. _ASCIIMath: http://www1.chapman.edu/~jipsen/mathml/asciimath.html
|
|
|
|
|
.. _ASCIIMath tutorial:
|
|
|
|
|
http://www.wjagray.co.uk/maths/ASCIIMathTutorial.html
|
|
|
|
|
.. _ASCIIMathML: http://pypi.python.org/pypi/asciimathml/
|
|
|
|
|
.. _ASCIIMathPython: http://sourceforge.net/projects/asciimathpython/
|
|
|
|
|
__ http://fletcherpenney.net/multimarkdown/
|
|
|
|
|
|
|
|
|
|
`Unicode Nearly Plain Text Encoding of Mathematics`_
|
|
|
|
|
format for lightly marked-up representation of mathematical
|
|
|
|
|
expressions in Unicode.
|
|
|
|
|
|
|
|
|
|
(Unicode Technical Note. Sole responsibility for its contents rests
|
|
|
|
|
with the author(s). Publication does not imply any endorsement by
|
|
|
|
|
the Unicode Consortium.)
|
|
|
|
|
|
|
|
|
|
.. _Unicode Nearly Plain Text Encoding of Mathematics:
|
|
|
|
|
http://www.unicode.org/notes/tn28/
|
|
|
|
|
|
|
|
|
|
itex
|
|
|
|
|
See `the culmination of a relevant discussion in 2003
|
|
|
|
|
<http://article.gmane.org/gmane.text.docutils.user/118>`__.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LaTeX output
|
|
|
|
|
````````````
|
|
|
|
|
|
|
|
|
|
Which equation environments should be supported by the math directive?
|
|
|
|
|
|
|
|
|
|
* one line:
|
|
|
|
|
|
|
|
|
|
+ numbered: `equation`
|
|
|
|
|
+ unnumbered: `equation*`
|
|
|
|
|
|
|
|
|
|
* multiline (test for ``\\`` outside of a nested environment
|
|
|
|
|
(e.g. `array` or `cases`)
|
|
|
|
|
|
|
|
|
|
+ numbered: `align` (number every line)
|
|
|
|
|
|
|
|
|
|
(To give one common number to all lines, put them in a `split`
|
|
|
|
|
environment. Docutils then places it in an `equation` environment.)
|
|
|
|
|
|
|
|
|
|
+ unnumbered: `align*`
|
|
|
|
|
|
|
|
|
|
+ Sphinx math also supports `gather` (checking for blank lines in
|
|
|
|
|
the content). Docutils puts content blocks separated by blank
|
|
|
|
|
lines in separate math-block doctree nodes. (The only difference of
|
|
|
|
|
`gather` to two consecutive "normal" environments seems to be that
|
|
|
|
|
page-breaks between the two are prevented.)
|
|
|
|
|
|
|
|
|
|
See http://www.math.uiuc.edu/~hildebr/tex/displays.html.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HTML output
|
|
|
|
|
```````````
|
|
|
|
|
|
|
|
|
|
There is no native math support in HTML.
|
|
|
|
|
For supported math output variants see the `math-output setting`_.
|
|
|
|
|
Add more/better alternatives?
|
|
|
|
|
|
|
|
|
|
MathML_
|
|
|
|
|
Converters from LaTeX to MathML include
|
|
|
|
|
|
|
|
|
|
* TtM_ (C), ``--math-output=MathML ttm``, undocumented, may be removed.
|
|
|
|
|
|
|
|
|
|
No "matrix", "align" and "cases" environments.
|
|
|
|
|
|
|
|
|
|
* MathToWeb_ (Java)
|
|
|
|
|
* TeX4ht_ (TeX based)
|
|
|
|
|
* itex_ (also `used in Abiword`__)
|
|
|
|
|
* `Steve’s LATEX-to-MathML translator`_
|
|
|
|
|
('mini-language', javascript, Python)
|
|
|
|
|
* `MathJax for Node`_
|
|
|
|
|
|
|
|
|
|
* Write a new converter? E.g. based on:
|
|
|
|
|
|
|
|
|
|
* a generic tokenizer (see e.g. a `latex-codec recipe`_,
|
|
|
|
|
`updated latex-codec`_, )
|
|
|
|
|
* the Unicode-Char <-> LaTeX mappings database unimathsymbols_
|
|
|
|
|
|
|
|
|
|
__ http://msevior.livejournal.com/26377.html
|
|
|
|
|
.. _MathML: http://www.w3.org/TR/MathML2/
|
|
|
|
|
.. _ttm: http://hutchinson.belmont.ma.us/tth/mml/
|
|
|
|
|
.. _TeX4ht: http://www.tug.org/applications/tex4ht/mn.html
|
|
|
|
|
.. _MathToWeb: http://www.mathtoweb.com/
|
|
|
|
|
.. _itex: http://golem.ph.utexas.edu/~distler/blog/itex2MMLcommands.html
|
|
|
|
|
.. _Steve’s LATEX-to-MathML translator:
|
|
|
|
|
http://www.gold-saucer.org/mathml/greasemonkey/dist/display-latex
|
|
|
|
|
.. _latex-codec recipe:
|
|
|
|
|
http://code.activestate.com/recipes/252124-latex-codec/
|
|
|
|
|
.. _updated latex-codec:
|
|
|
|
|
http://mirror.ctan.org/biblio/bibtex/utils/mab2bib/latex.py
|
|
|
|
|
.. _unimathsymbols: http://milde.users.sourceforge.net/LUCR/Math/
|
|
|
|
|
.. _MathJax for Node: https://github.com/mathjax/MathJax-node
|
|
|
|
|
|
|
|
|
|
.. URL seems down:
|
|
|
|
|
.. _itex: http://pear.math.pitt.edu/mathzilla/itex2mmlItex.html
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HTML/CSS
|
|
|
|
|
format math in standard HTML enhanced by CSS rules
|
|
|
|
|
(Overview__, `Examples and experiments`__).
|
|
|
|
|
The ``math-output=html`` option uses the converter from eLyXer_
|
|
|
|
|
(included with Docutils).
|
|
|
|
|
|
|
|
|
|
Alternatives: LaTeX-math to HTML/CSS converters include
|
|
|
|
|
|
|
|
|
|
* TtH_ (C)
|
|
|
|
|
* Hevea_ (Objective Caml)
|
|
|
|
|
* `MathJax for Node`_
|
|
|
|
|
|
|
|
|
|
__ http://www.cs.tut.fi/~jkorpela/math/
|
|
|
|
|
__ http://www.zipcon.net/~swhite/docs/math/math.html
|
|
|
|
|
.. _elyxer: http://elyxer.nongnu.org/
|
|
|
|
|
.. _TtH: ttp://hutchinson.belmont.ma.us/tth/index.html
|
|
|
|
|
.. _Hevea: http://para.inria.fr/~maranget/hevea/
|
|
|
|
|
|
|
|
|
|
images
|
|
|
|
|
(PNG or SVG) like e.g. Wikipedia.
|
|
|
|
|
|
|
|
|
|
* dvisvgm_
|
|
|
|
|
* the pure-python MathML->SVG converter SVGMath_)
|
|
|
|
|
* `MathJax for Node`_
|
|
|
|
|
|
|
|
|
|
.. _dvisvgm: http://dvisvgm.sourceforge.net/
|
|
|
|
|
.. _SVGMath: http://www.grigoriev.ru/svgmath/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
client side JavaScript conversion
|
|
|
|
|
Use TeX notation in the web page and JavaScript in the displaying browser.
|
|
|
|
|
(implemented as `math-output setting`_ "mathjax").
|
|
|
|
|
|
|
|
|
|
* jqMath_ (faster and lighter than MathJax_)
|
|
|
|
|
|
|
|
|
|
.. _MathJax: http://www.mathjax.org/
|
|
|
|
|
.. _jqMath: http://mathscribe.com/author/jqmath.html
|
|
|
|
|
|
|
|
|
|
OpenOffice output
|
|
|
|
|
`````````````````
|
|
|
|
|
|
|
|
|
|
* The `OpenDocument standard`_ version 1.1 says:
|
|
|
|
|
|
|
|
|
|
Mathematical content is represented by MathML 2.0
|
|
|
|
|
|
|
|
|
|
However, putting MathML into an ODP file seems tricky as these
|
|
|
|
|
(maybe outdated) links suppose:
|
|
|
|
|
http://idippedut.dk/post/2008/01/25/Do-your-math-ODF-and-MathML.aspx
|
|
|
|
|
http://idippedut.dk/post/2008/03/03/Now-I-get-it-ODF-and-MathML.aspx
|
|
|
|
|
|
|
|
|
|
.. _OpenDocument standard:
|
|
|
|
|
http://www.oasis-open.org/standards#opendocumentv1.1
|
|
|
|
|
|
|
|
|
|
* OOoLaTeX__: "a set of macros designed to bring the power of LaTeX
|
|
|
|
|
into OpenOffice."
|
|
|
|
|
|
|
|
|
|
__ http://ooolatex.sourceforge.net/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Directives
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
Directives below are often referred to as "module.directive", the
|
|
|
|
|
directive function. The "module." is not part of the directive name
|
|
|
|
|
when used in a document.
|
|
|
|
|
|
|
|
|
|
* Allow for field lists in list tables. See
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.devel/3392>.
|
|
|
|
|
|
|
|
|
|
* .. _unify tables:
|
|
|
|
|
|
|
|
|
|
Unify table implementations and unify options of table directives
|
|
|
|
|
(http://article.gmane.org/gmane.text.docutils.user/1857).
|
|
|
|
|
|
|
|
|
|
* Allow directives to be added at run-time?
|
|
|
|
|
|
|
|
|
|
* Use the language module for directive option names?
|
|
|
|
|
|
|
|
|
|
* Add "substitution_only" and "substitution_ok" function attributes,
|
|
|
|
|
and automate context checking?
|
|
|
|
|
|
|
|
|
|
* Implement options or features on existing directives:
|
|
|
|
|
|
|
|
|
|
- All directives that produce titled elements should grow implicit
|
|
|
|
|
reference names based on the titles.
|
|
|
|
|
|
|
|
|
|
- Allow the _`:trim:` option for all directives when they occur in a
|
|
|
|
|
substitution definition, not only the unicode_ directive.
|
|
|
|
|
|
|
|
|
|
.. _unicode: ../ref/rst/directives.html#unicode-character-codes
|
|
|
|
|
|
|
|
|
|
- Add the "class" option to the unicode_ directive. For example, you
|
|
|
|
|
might want to get characters or strings with borders around them.
|
|
|
|
|
|
|
|
|
|
- _`images.figure`: "title" and "number", to indicate a formal
|
|
|
|
|
figure?
|
|
|
|
|
|
|
|
|
|
- _`parts.sectnum`: "local"?, "refnum"
|
|
|
|
|
|
|
|
|
|
A "local" option could enable numbering for sections from a
|
|
|
|
|
certain point down, and sections in the rest of the document are
|
|
|
|
|
not numbered. For example, a reference section of a manual might
|
|
|
|
|
be numbered, but not the rest. OTOH, an all-or-nothing approach
|
|
|
|
|
would probably be enough.
|
|
|
|
|
|
|
|
|
|
The "sectnum" directive should be usable multiple times in a
|
|
|
|
|
single document. For example, in a long document with "chapter"
|
|
|
|
|
and "appendix" sections, there could be a second "sectnum" before
|
|
|
|
|
the first appendix, changing the sequence used (from 1,2,3... to
|
|
|
|
|
A,B,C...). This is where the "local" concept comes in. This part
|
|
|
|
|
of the implementation can be left for later.
|
|
|
|
|
|
|
|
|
|
A "refnum" option (better name?) would insert reference names
|
|
|
|
|
(targets) consisting of the reference number. Then a URL could be
|
|
|
|
|
of the form ``http://host/document.html#2.5`` (or "2-5"?). Allow
|
|
|
|
|
internal references by number? Allow name-based *and*
|
|
|
|
|
number-based ids at the same time, or only one or the other (which
|
|
|
|
|
would the table of contents use)? Usage issue: altering the
|
|
|
|
|
section structure of a document could render hyperlinks invalid.
|
|
|
|
|
|
|
|
|
|
- _`parts.contents`: Add a "suppress" or "prune" option? It would
|
|
|
|
|
suppress contents display for sections in a branch from that point
|
|
|
|
|
down. Or a new directive, like "prune-contents"?
|
|
|
|
|
|
|
|
|
|
Add an option to include topics in the TOC? Another for sidebars?
|
|
|
|
|
The "topic" directive could have a "contents" option, or the
|
|
|
|
|
"contents" directive" could have an "include-topics" option. See
|
|
|
|
|
docutils-develop 2003-01-29.
|
|
|
|
|
|
|
|
|
|
- _`parts.header` & _`parts.footer`: Support multiple, named headers
|
|
|
|
|
& footers? For example, separate headers & footers for odd, even,
|
|
|
|
|
and the first page of a document.
|
|
|
|
|
|
|
|
|
|
This may be too specific to output formats which have a notion of
|
|
|
|
|
"pages".
|
|
|
|
|
|
|
|
|
|
- _`misc.class`:
|
|
|
|
|
|
|
|
|
|
- Add a ``:parent:`` option for setting the parent's class
|
|
|
|
|
(http://article.gmane.org/gmane.text.docutils.devel/3165).
|
|
|
|
|
|
|
|
|
|
- _`misc.include`:
|
|
|
|
|
|
|
|
|
|
- Option to label lines?
|
|
|
|
|
|
|
|
|
|
- How about an environment variable, say RSTINCLUDEPATH or
|
|
|
|
|
RSTPATH, for standard includes (as in ``.. include:: <name>``)?
|
|
|
|
|
This could be combined with a setting/option to allow
|
|
|
|
|
user-defined include directories.
|
|
|
|
|
|
|
|
|
|
- Add support for inclusion by URL? ::
|
|
|
|
|
|
|
|
|
|
.. include::
|
|
|
|
|
:url: http://www.example.org/inclusion.txt
|
|
|
|
|
|
|
|
|
|
- Strip blank lines from begin and end of a literal included file or
|
|
|
|
|
file section. This would correspond to the way a literal block is
|
|
|
|
|
handled.
|
|
|
|
|
|
|
|
|
|
As nodes.literal_block expects (and we have) the text as a string
|
|
|
|
|
(rather than a list of lines), using a regexp seems the way.
|
|
|
|
|
|
|
|
|
|
- _`misc.raw`: add a "destination" option to the "raw" directive? ::
|
|
|
|
|
|
|
|
|
|
.. raw:: html
|
|
|
|
|
:destination: head
|
|
|
|
|
|
|
|
|
|
<link ...>
|
|
|
|
|
|
|
|
|
|
It needs thought & discussion though, to come up with a consistent
|
|
|
|
|
set of destination labels and consistent behavior.
|
|
|
|
|
|
|
|
|
|
And placing HTML code inside the <head> element of an HTML
|
|
|
|
|
document is rather the job of a templating system.
|
|
|
|
|
|
|
|
|
|
- _`body.sidebar`: Allow internal section structure? Adornment
|
|
|
|
|
styles would be independent of the main document.
|
|
|
|
|
|
|
|
|
|
That is really complicated, however, and the document model
|
|
|
|
|
greatly benefits from its simplicity.
|
|
|
|
|
|
|
|
|
|
* Implement directives. Each of the list items below begins with an
|
|
|
|
|
identifier of the form, "module_name.directive_function_name". The
|
|
|
|
|
directive name itself could be the same as the
|
|
|
|
|
directive_function_name, or it could differ.
|
|
|
|
|
|
|
|
|
|
- _`html.imagemap`
|
|
|
|
|
|
|
|
|
|
It has the disadvantage that it's only easily implementable for
|
|
|
|
|
HTML, so it's specific to one output format.
|
|
|
|
|
|
|
|
|
|
(For non-HTML writers, the imagemap would have to be replaced with
|
|
|
|
|
the image only.)
|
|
|
|
|
|
|
|
|
|
- _`parts.endnotes` (or "footnotes"): See `Footnote & Citation Gathering`_.
|
|
|
|
|
|
|
|
|
|
- _`parts.citations`: See `Footnote & Citation Gathering`_.
|
|
|
|
|
|
|
|
|
|
- _`misc.language`: Specify (= change) the language of a document at
|
|
|
|
|
parse time?
|
|
|
|
|
|
|
|
|
|
* The misc.settings_ directive suggested below offers a more generic
|
|
|
|
|
approach.
|
|
|
|
|
|
|
|
|
|
* The language of document parts can be indicated by the "special class
|
|
|
|
|
value" ``"language-"`` + `BCP 47`_ language code. Class arguments to
|
|
|
|
|
the title are attached to the document's base node - hence titled
|
|
|
|
|
documents can be given a different language at parse time. However,
|
|
|
|
|
"language by class attribute" does not change parsing (localized
|
|
|
|
|
directives etc.), only supporting writers.
|
|
|
|
|
|
|
|
|
|
.. _BCP 47: http://www.rfc-editor.org/rfc/bcp/bcp47.txt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- _`misc.settings`: Set any(?) Docutils runtime setting from within
|
|
|
|
|
a document? Needs much thought and discussion.
|
|
|
|
|
|
|
|
|
|
Security concerns need to be taken into account (it shouldn't be
|
|
|
|
|
possible to enable ``file_insertion_enabled`` from within a
|
|
|
|
|
document), and settings that only would have taken effect before
|
|
|
|
|
the directive (like ``tab-width``) shouldn't be accessible either.
|
|
|
|
|
|
|
|
|
|
See this sub-thread:
|
|
|
|
|
<http://thread.gmane.org/gmane.text.docutils.user/3620/focus=3649>
|
|
|
|
|
|
|
|
|
|
- _`misc.gather`: Gather (move, or copy) all instances of a specific
|
|
|
|
|
element. A generalization of the `Footnote & Citation Gathering`_
|
|
|
|
|
ideas.
|
|
|
|
|
|
|
|
|
|
- Add a custom "directive" directive, equivalent to "role"? For
|
|
|
|
|
example::
|
|
|
|
|
|
|
|
|
|
.. directive:: incr
|
|
|
|
|
|
|
|
|
|
.. class:: incremental
|
|
|
|
|
|
|
|
|
|
.. incr::
|
|
|
|
|
|
|
|
|
|
"``.. incr::``" above is equivalent to "``.. class:: incremental``".
|
|
|
|
|
|
|
|
|
|
Another example::
|
|
|
|
|
|
|
|
|
|
.. directive:: printed-links
|
|
|
|
|
|
|
|
|
|
.. topic:: Links
|
|
|
|
|
:class: print-block
|
|
|
|
|
|
|
|
|
|
.. target-notes::
|
|
|
|
|
:class: print-inline
|
|
|
|
|
|
|
|
|
|
This acts like macros. The directive contents will have to be
|
|
|
|
|
evaluated when referenced, not when defined.
|
|
|
|
|
|
|
|
|
|
* Needs a better name? "Macro", "substitution"?
|
|
|
|
|
* What to do with directive arguments & options when the
|
|
|
|
|
macro/directive is referenced?
|
|
|
|
|
|
|
|
|
|
- Make the meaning of block quotes overridable? Only a 1-shot
|
|
|
|
|
though; doesn't solve the general problem.
|
|
|
|
|
|
|
|
|
|
- _`conditional directives`:
|
|
|
|
|
|
|
|
|
|
.. note:: See also the implementation in Sphinx_.
|
|
|
|
|
|
|
|
|
|
Docutils already has the ability to say "use this content for
|
|
|
|
|
Writer X" via the "raw" directive. It also does have the ability
|
|
|
|
|
to say "use this content for any Writer other than X" via the
|
|
|
|
|
"strip-elements with class" config value. However, using "raw"
|
|
|
|
|
input just to select a special writer is inconvenient in many
|
|
|
|
|
cases.
|
|
|
|
|
It wouldn't be difficult to get more straightforward support, though.
|
|
|
|
|
|
|
|
|
|
My first idea would be to add a set of conditional directives.
|
|
|
|
|
Let's call them "writer-is" and "writer-is-not" for discussion
|
|
|
|
|
purposes (don't worry about implemention details). We might
|
|
|
|
|
have::
|
|
|
|
|
|
|
|
|
|
.. writer-is:: text-only
|
|
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
+----------+
|
|
|
|
|
| SNMP |
|
|
|
|
|
+----------+
|
|
|
|
|
| UDP |
|
|
|
|
|
+----------+
|
|
|
|
|
| IP |
|
|
|
|
|
+----------+
|
|
|
|
|
| Ethernet |
|
|
|
|
|
+----------+
|
|
|
|
|
|
|
|
|
|
.. writer-is:: pdf
|
|
|
|
|
|
|
|
|
|
.. figure:: protocol_stack.eps
|
|
|
|
|
|
|
|
|
|
.. writer-is-not:: text-only pdf
|
|
|
|
|
|
|
|
|
|
.. figure:: protocol_stack.png
|
|
|
|
|
|
|
|
|
|
This could be an interface to the Filter transform
|
|
|
|
|
(docutils.transforms.components.Filter).
|
|
|
|
|
|
|
|
|
|
The ideas in `adaptable file extensions`_ above may also be
|
|
|
|
|
applicable here.
|
|
|
|
|
|
|
|
|
|
SVG's "switch" statement may provide inspiration.
|
|
|
|
|
|
|
|
|
|
Here's an example of a directive that could produce multiple
|
|
|
|
|
outputs (*both* raw troff pass-through *and* a GIF, for example)
|
|
|
|
|
and allow the Writer to select. ::
|
|
|
|
|
|
|
|
|
|
.. eqn::
|
|
|
|
|
|
|
|
|
|
.EQ
|
|
|
|
|
delim %%
|
|
|
|
|
.EN
|
|
|
|
|
%sum from i=o to inf c sup i~=~lim from {m -> inf}
|
|
|
|
|
sum from i=0 to m sup i%
|
|
|
|
|
.EQ
|
|
|
|
|
delim off
|
|
|
|
|
.EN
|
|
|
|
|
|
|
|
|
|
- _`body.example`: Examples; suggested by Simon Hefti. Semantics as
|
|
|
|
|
per Docbook's "example"; admonition-style, numbered, reference,
|
|
|
|
|
with a caption/title.
|
|
|
|
|
|
|
|
|
|
- _`body.index`: Index targets.
|
|
|
|
|
|
|
|
|
|
See `Index Entries & Indexes
|
|
|
|
|
<./rst/alternatives.html#index-entries-indexes>`__.
|
|
|
|
|
|
|
|
|
|
- _`body.literal`: Literal block, possibly "formal" (see `object
|
|
|
|
|
numbering and object references`_ above). Possible options:
|
|
|
|
|
|
|
|
|
|
- "highlight" a range of lines
|
|
|
|
|
|
|
|
|
|
- include only a specified range of lines
|
|
|
|
|
|
|
|
|
|
- "number" or "line-numbers"? (since 0.9 available with "code" directive)
|
|
|
|
|
|
|
|
|
|
- "styled" could indicate that the directive should check for
|
|
|
|
|
style comments at the end of lines to indicate styling or
|
|
|
|
|
markup.
|
|
|
|
|
|
|
|
|
|
Specific derivatives (i.e., a "python-interactive" directive)
|
|
|
|
|
could interpret style based on cues, like the ">>> " prompt and
|
|
|
|
|
"input()"/"raw_input()" calls.
|
|
|
|
|
|
|
|
|
|
See docutils-users 2003-03-03.
|
|
|
|
|
|
|
|
|
|
- _`body.listing`: Code listing with title (to be numbered
|
|
|
|
|
eventually), equivalent of "figure" and "table" directives.
|
|
|
|
|
|
|
|
|
|
- _`pysource.usage`: Extract a usage message from the program,
|
|
|
|
|
either by running it at the command line with a ``--help`` option
|
|
|
|
|
or through an exposed API. [Suggestion for Optik.]
|
|
|
|
|
|
|
|
|
|
- _`body.float`: Generic float that can be used for figures, tables,
|
|
|
|
|
code listings, flowcharts, ...
|
|
|
|
|
|
|
|
|
|
There is a Sphinx extension by Ignacio Fernández Galván <jellby@gmail.com>
|
|
|
|
|
|
|
|
|
|
I implemented something for generic floats in sphinx, and submitted a
|
|
|
|
|
pull request that is still waiting::
|
|
|
|
|
|
|
|
|
|
.. float::
|
|
|
|
|
:type: figure
|
|
|
|
|
:caption: My caption
|
|
|
|
|
|
|
|
|
|
https://github.com/sphinx-doc/sphinx/pull/1858
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpreted Text
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
Interpreted text is entirely a reStructuredText markup construct, a
|
|
|
|
|
way to get around built-in limitations of the medium. Some roles are
|
|
|
|
|
intended to introduce new doctree elements, such as "title-reference".
|
|
|
|
|
Others are merely convenience features, like "RFC".
|
|
|
|
|
|
|
|
|
|
All supported interpreted text roles must already be known to the
|
|
|
|
|
Parser when they are encountered in a document. Whether pre-defined
|
|
|
|
|
in core/client code, or in the document, doesn't matter; the roles
|
|
|
|
|
just need to have already been declared. Adding a new role may
|
|
|
|
|
involve adding a new element to the DTD and may require extensive
|
|
|
|
|
support, therefore such additions should be well thought-out. There
|
|
|
|
|
should be a limited number of roles.
|
|
|
|
|
|
|
|
|
|
The only place where no limit is placed on variation is at the start,
|
|
|
|
|
at the Reader/Parser interface. Transforms are inserted by the Reader
|
|
|
|
|
into the Transformer's queue, where non-standard elements are
|
|
|
|
|
converted. Once past the Transformer, no variation from the standard
|
|
|
|
|
Docutils doctree is possible.
|
|
|
|
|
|
|
|
|
|
An example is the Python Source Reader, which will use interpreted
|
|
|
|
|
text extensively. The default role will be "Python identifier", which
|
|
|
|
|
will be further interpreted by namespace context into <class>,
|
|
|
|
|
<method>, <module>, <attribute>, etc. elements (see pysource.dtd),
|
|
|
|
|
which will be transformed into standard hyperlink references, which
|
|
|
|
|
will be processed by the various Writers. No Writer will need to have
|
|
|
|
|
any knowledge of the Python-Reader origin of these elements.
|
|
|
|
|
|
|
|
|
|
* Add explicit interpreted text roles for the rest of the implicit
|
|
|
|
|
inline markup constructs: named-reference, anonymous-reference,
|
|
|
|
|
footnote-reference, citation-reference, substitution-reference,
|
|
|
|
|
target, uri-reference (& synonyms).
|
|
|
|
|
|
|
|
|
|
* Add directives for each role as well? This would allow indirect
|
|
|
|
|
nested markup::
|
|
|
|
|
|
|
|
|
|
This text contains |nested inline markup|.
|
|
|
|
|
|
|
|
|
|
.. |nested inline markup| emphasis::
|
|
|
|
|
|
|
|
|
|
nested ``inline`` markup
|
|
|
|
|
|
|
|
|
|
* Implement roles:
|
|
|
|
|
|
|
|
|
|
- "_`raw-wrapped`" (or "_`raw-wrap`"): Base role to wrap raw text
|
|
|
|
|
around role contents.
|
|
|
|
|
|
|
|
|
|
For example, the following reStructuredText source ... ::
|
|
|
|
|
|
|
|
|
|
.. role:: red(raw-formatting)
|
|
|
|
|
:prefix:
|
|
|
|
|
:html: <font color="red">
|
|
|
|
|
:latex: {\color{red}
|
|
|
|
|
:suffix:
|
|
|
|
|
:html: </font>
|
|
|
|
|
:latex: }
|
|
|
|
|
|
|
|
|
|
colored :red:`text`
|
|
|
|
|
|
|
|
|
|
... will yield the following document fragment::
|
|
|
|
|
|
|
|
|
|
<paragraph>
|
|
|
|
|
colored
|
|
|
|
|
<inline classes="red">
|
|
|
|
|
<raw format="html">
|
|
|
|
|
<font color="red">
|
|
|
|
|
<raw format="latex">
|
|
|
|
|
{\color{red}
|
|
|
|
|
<inline classes="red">
|
|
|
|
|
text
|
|
|
|
|
<raw format="html">
|
|
|
|
|
</font>
|
|
|
|
|
<raw format="latex">
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Possibly without the intermediate "inline" node.
|
|
|
|
|
|
|
|
|
|
- _`"acronym" and "abbreviation"`: Associate the full text with a
|
|
|
|
|
short form. Jason Diamond's description:
|
|
|
|
|
|
|
|
|
|
I want to translate ```reST`:acronym:`` into ``<acronym
|
|
|
|
|
title='reStructuredText'>reST</acronym>``. The value of the
|
|
|
|
|
title attribute has to be defined out-of-band since you can't
|
|
|
|
|
parameterize interpreted text. Right now I have them in a
|
|
|
|
|
separate file but I'm experimenting with creating a directive
|
|
|
|
|
that will use some form of reST syntax to let you define them.
|
|
|
|
|
|
|
|
|
|
Should Docutils complain about undefined acronyms or
|
|
|
|
|
abbreviations?
|
|
|
|
|
|
|
|
|
|
What to do if there are multiple definitions? How to
|
|
|
|
|
differentiate between CSS (Content Scrambling System) and CSS
|
|
|
|
|
(Cascading Style Sheets) in a single document? David Priest
|
|
|
|
|
responds,
|
|
|
|
|
|
|
|
|
|
The short answer is: you don't. Anyone who did such a thing
|
|
|
|
|
would be writing very poor documentation indeed. (Though I
|
|
|
|
|
note that `somewhere else in the docs`__, there's mention of
|
|
|
|
|
allowing replacement text to be associated with the
|
|
|
|
|
abbreviation. That takes care of the duplicate
|
|
|
|
|
acronyms/abbreviations problem, though a writer would be
|
|
|
|
|
foolish to ever need it.)
|
|
|
|
|
|
|
|
|
|
__ `inline parameter syntax`_
|
|
|
|
|
|
|
|
|
|
How to define the full text? Possibilities:
|
|
|
|
|
|
|
|
|
|
1. With a directive and a definition list? ::
|
|
|
|
|
|
|
|
|
|
.. acronyms::
|
|
|
|
|
|
|
|
|
|
reST
|
|
|
|
|
reStructuredText
|
|
|
|
|
DPS
|
|
|
|
|
Docstring Processing System
|
|
|
|
|
|
|
|
|
|
Would this list remain in the document as a glossary, or would
|
|
|
|
|
it simply build an internal lookup table? A "glossary"
|
|
|
|
|
directive could be used to make the intention clear.
|
|
|
|
|
Acronyms/abbreviations and glossaries could work together.
|
|
|
|
|
|
|
|
|
|
Then again, a glossary could be formed by gathering individual
|
|
|
|
|
definitions from around the document.
|
|
|
|
|
|
|
|
|
|
2. Some kind of `inline parameter syntax`_? ::
|
|
|
|
|
|
|
|
|
|
`reST <reStructuredText>`:acronym: is `WYSIWYG <what you
|
|
|
|
|
see is what you get>`:acronym: plaintext markup.
|
|
|
|
|
|
|
|
|
|
.. _inline parameter syntax:
|
|
|
|
|
rst/alternatives.html#parameterized-interpreted-text
|
|
|
|
|
|
|
|
|
|
3. A combination of 1 & 2?
|
|
|
|
|
|
|
|
|
|
The multiple definitions issue could be handled by establishing
|
|
|
|
|
rules of priority. For example, directive-based lookup tables
|
|
|
|
|
have highest priority, followed by the first inline definition.
|
|
|
|
|
Multiple definitions in directive-based lookup tables would
|
|
|
|
|
trigger warnings, similar to the rules of `implicit hyperlink
|
|
|
|
|
targets`__.
|
|
|
|
|
|
|
|
|
|
__ ../ref/rst/restructuredtext.html#implicit-hyperlink-targets
|
|
|
|
|
|
|
|
|
|
4. Using substitutions? ::
|
|
|
|
|
|
|
|
|
|
.. |reST| acronym:: reST
|
|
|
|
|
:text: reStructuredText
|
|
|
|
|
|
|
|
|
|
What do we do for other formats than HTML which do not support
|
|
|
|
|
tool tips? Put the full text in parentheses?
|
|
|
|
|
|
|
|
|
|
- "figure", "table", "listing", "chapter", "page", etc: See `object
|
|
|
|
|
numbering and object references`_ above.
|
|
|
|
|
|
|
|
|
|
- "glossary-term": This would establish a link to a glossary. It
|
|
|
|
|
would require an associated "glossary-entry" directive, whose
|
|
|
|
|
contents could be a definition list::
|
|
|
|
|
|
|
|
|
|
.. glossary-entry::
|
|
|
|
|
|
|
|
|
|
term1
|
|
|
|
|
definition1
|
|
|
|
|
term2
|
|
|
|
|
definition2
|
|
|
|
|
|
|
|
|
|
This would allow entries to be defined anywhere in the document,
|
|
|
|
|
and collected (via a "glossary" directive perhaps) at one point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Doctree pruning
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
[DG 2017-01-02: These are not definitive to-dos, just one developer's
|
|
|
|
|
opinion. Added 2009-10-13 by Günter Milde, in r6178.]
|
|
|
|
|
[Updated by GM 2017-02-04]
|
|
|
|
|
|
|
|
|
|
The number of doctree nodes can be reduced by "normalizing" some related
|
|
|
|
|
nodes. This makes the document model and the writers somewhat simpler.
|
|
|
|
|
|
|
|
|
|
* The "doctest" element can be replaced by literal blocks with a class
|
|
|
|
|
attribute (similar to the "code" directive output).
|
|
|
|
|
The syntax shall be left in reST.
|
|
|
|
|
|
|
|
|
|
[DG 2017-01-02:] +0.
|
|
|
|
|
|
|
|
|
|
Discussion
|
|
|
|
|
The syntax could be left in reST (for a set period of time?).
|
|
|
|
|
|
|
|
|
|
[DG 2017-01-02:] The syntax must be left in reST, practically
|
|
|
|
|
forever. Removing it would introduce a huge backwards
|
|
|
|
|
incompatibility. Any syntax removal must be preceded by a thorough
|
|
|
|
|
review and planning, including a deprecation warning process. My
|
|
|
|
|
opinion: it's not worth it.
|
|
|
|
|
|
|
|
|
|
* "Normalize" special admonitions (note, hint, warning, ...) during parsing
|
|
|
|
|
(similar to _`transforms.writer_aux.Admonitions`). There is no need to
|
|
|
|
|
keep them as distinct elements in the doctree specification.
|
|
|
|
|
|
|
|
|
|
[DG 2017-01-02:] -1: <note>{body}</> is much more concise and
|
|
|
|
|
expressive than <admonition><title>Note</>{body}</>, and the title
|
|
|
|
|
translation can be put off until much later in the process.
|
|
|
|
|
|
|
|
|
|
[GM 2017-02-04]:
|
|
|
|
|
|
|
|
|
|
-0 for <admonition class=note><title>Note</>... instead of <note>:
|
|
|
|
|
a document is rarely printed/used as doctree or XML.
|
|
|
|
|
|
|
|
|
|
+1 reduce the complexity of the doctree
|
|
|
|
|
(there is no 1:1 rST syntax element <-> doctree node mapping anyway).
|
|
|
|
|
|
|
|
|
|
+2 every writer needs 9 visit_*/depart_* method pairs to handle the 9
|
|
|
|
|
subtypes of an admonition, i.e. we could but also remove 36 redundant
|
|
|
|
|
methods (HTML, LaTeX, Manpage, ODF).
|
|
|
|
|
|
|
|
|
|
-1 the most unfortunately named of these directives will survive. [#]_
|
|
|
|
|
|
|
|
|
|
.. [#] with "biblical touch" and hard to translate:
|
|
|
|
|
|
|
|
|
|
:admonition: | Ermahnung; Verweis; Warnung; Rüge
|
|
|
|
|
| (exhortation; censure; warning; reprimand, rebuke)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Keep the special admonition directives in reStructuredText syntax.
|
|
|
|
|
|
|
|
|
|
[DG 2017-01-02:] We must definitely keep the syntax. Removing it
|
|
|
|
|
would introduce a huge backwards incompatibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unimplemented Transforms
|
|
|
|
|
========================
|
|
|
|
|
|
|
|
|
|
* _`Footnote & Citation Gathering`
|
|
|
|
|
|
|
|
|
|
Collect and move footnotes & citations to the end of a document or the
|
|
|
|
|
place of a "footnotes" or "citations" directive
|
|
|
|
|
(see `<./ref/rst/directives.html>_`)
|
|
|
|
|
|
|
|
|
|
Footnotes:
|
|
|
|
|
Collect all footnotes that are referenced in the document before the
|
|
|
|
|
directive (and after an eventually preceding ``.. footnotes::``
|
|
|
|
|
directive) and insert at this place.
|
|
|
|
|
|
|
|
|
|
Allows "endnotes" at a configurable place.
|
|
|
|
|
|
|
|
|
|
Citations:
|
|
|
|
|
Collect citations that are referenced ...
|
|
|
|
|
|
|
|
|
|
Citations can be:
|
|
|
|
|
|
|
|
|
|
a) defined in the document as citation elements
|
|
|
|
|
|
|
|
|
|
b) auto-generated from entries in a bibliographic database.
|
|
|
|
|
|
|
|
|
|
+ based on bibstuff_?
|
|
|
|
|
+ also have a look at
|
|
|
|
|
|
|
|
|
|
* CrossTeX_, a backwards-compatible, improved bibtex
|
|
|
|
|
re-implementation in Python (including HTML export).
|
|
|
|
|
(development stalled since 2 years)
|
|
|
|
|
|
|
|
|
|
* Pybtex_,a drop-in replacement for BibTeX written in Python.
|
|
|
|
|
|
|
|
|
|
* BibTeX styles & (experimental) pythonic style API.
|
|
|
|
|
* Database in BibTeX, BibTeXML and YAML formats.
|
|
|
|
|
* full Unicode support.
|
|
|
|
|
* Write to TeX, HTML and plain text.
|
|
|
|
|
|
|
|
|
|
* `Zotero plain <http://e6h.org/%7Eegh/hg/zotero-plain/>`__
|
|
|
|
|
supports Zotero databases and CSL_ styles with Docutils with an
|
|
|
|
|
``xcite`` role.
|
|
|
|
|
|
|
|
|
|
* `sphinxcontrib-bibtex`_ Sphinx extension with "bibliography"
|
|
|
|
|
directive and "cite" role supporting BibTeX databases.
|
|
|
|
|
|
|
|
|
|
* `Modified rst2html
|
|
|
|
|
<http://www.loria.fr/~rougier/coding/article/rst2html.py>`__ by
|
|
|
|
|
Nicolas Rougier.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Automatically insert a "References" heading?
|
|
|
|
|
|
|
|
|
|
.. _CrossTeX: http://www.cs.cornell.edu/people/egs/crosstex/
|
|
|
|
|
.. _Pybtex: http://pybtex.sourceforge.net/
|
|
|
|
|
.. _CSL: http://www.citationstyles.org/
|
|
|
|
|
.. _sphinxcontrib-bibtex: http://sphinxcontrib-bibtex.readthedocs.org/
|
|
|
|
|
|
|
|
|
|
* _`Reference Merging`
|
|
|
|
|
|
|
|
|
|
When merging two or more subdocuments (such as docstrings),
|
|
|
|
|
conflicting references may need to be resolved. There may be:
|
|
|
|
|
|
|
|
|
|
* duplicate reference and/or substitution names that need to be made
|
|
|
|
|
unique; and/or
|
|
|
|
|
* duplicate footnote numbers that need to be renumbered.
|
|
|
|
|
|
|
|
|
|
Should this be done before or after reference-resolving transforms
|
|
|
|
|
are applied? What about references from within one subdocument to
|
|
|
|
|
inside another?
|
|
|
|
|
|
|
|
|
|
* _`Document Splitting`
|
|
|
|
|
|
|
|
|
|
If the processed document is written to multiple files (possibly in
|
|
|
|
|
a directory tree), it will need to be split up. Internal references
|
|
|
|
|
will have to be adjusted.
|
|
|
|
|
|
|
|
|
|
(HTML only? Initially, yes. Eventually, anything should be
|
|
|
|
|
splittable.)
|
|
|
|
|
|
|
|
|
|
Ideas:
|
|
|
|
|
|
|
|
|
|
- Insert a "destination" attribute into the root element of each
|
|
|
|
|
split-out document, containing the path/filename. The Output
|
|
|
|
|
object or Writer will recognize this attribute and split out the
|
|
|
|
|
files accordingly. Must allow for common headers & footers,
|
|
|
|
|
prev/next, breadcrumbs, etc.
|
|
|
|
|
|
|
|
|
|
- Transform a single-root document into a document containing
|
|
|
|
|
multiple subdocuments, recursively. The content model of the
|
|
|
|
|
"document" element would have to change to::
|
|
|
|
|
|
|
|
|
|
<!ELEMENT document
|
|
|
|
|
( (title, subtitle?)?,
|
|
|
|
|
decoration?,
|
|
|
|
|
(docinfo, transition?)?,
|
|
|
|
|
%structure.model;,
|
|
|
|
|
document* )>
|
|
|
|
|
|
|
|
|
|
(I.e., add the last line -- 0 or more document elements.)
|
|
|
|
|
|
|
|
|
|
Let's look at the case of hierarchical (directories and files)
|
|
|
|
|
HTML output. Each document element containing further document
|
|
|
|
|
elements would correspond to a directory (with an index.html file
|
|
|
|
|
for the content preceding the subdocuments). Each document
|
|
|
|
|
element containing no subdocuments (i.e., structure model elements
|
|
|
|
|
only) corresponds to a concrete file with no directory.
|
|
|
|
|
|
|
|
|
|
The natural transform would be to map sections to subdocuments,
|
|
|
|
|
but possibly only a given number of levels deep.
|
|
|
|
|
|
|
|
|
|
* _`Navigation`
|
|
|
|
|
|
|
|
|
|
If a document is split up, each segment will need navigation links:
|
|
|
|
|
parent, children (small TOC), previous (preorder), next (preorder).
|
|
|
|
|
Part of `Document Splitting`_?
|
|
|
|
|
|
|
|
|
|
* _`List of System Messages`
|
|
|
|
|
|
|
|
|
|
The ``system_message`` elements are inserted into the document tree,
|
|
|
|
|
adjacent to the problems themselves where possible. Some (those
|
|
|
|
|
generated post-parse) are kept until later, in
|
|
|
|
|
``document.messages``, and added as a special final section,
|
|
|
|
|
"Docutils System Messages".
|
|
|
|
|
|
|
|
|
|
Docutils could be made to generate hyperlinks to all known
|
|
|
|
|
system_messages and add them to the document, perhaps to the end of
|
|
|
|
|
the "Docutils System Messages" section.
|
|
|
|
|
|
|
|
|
|
Fred L. Drake, Jr. wrote:
|
|
|
|
|
|
|
|
|
|
I'd like to propose that both parse- and transformation-time
|
|
|
|
|
messages are included in the "Docutils System Messages" section.
|
|
|
|
|
If there are no objections, I can make the change.
|
|
|
|
|
|
|
|
|
|
The advantage of the current way of doing things is that parse-time
|
|
|
|
|
system messages don't require a transform; they're already in the
|
|
|
|
|
document. This is valuable for testing (unit tests,
|
|
|
|
|
tools/quicktest.py). So if we do decide to make a change, I think
|
|
|
|
|
the insertion of parse-time system messages ought to remain as-is
|
|
|
|
|
and the Messages transform ought to move all parse-time system
|
|
|
|
|
messages (remove from their originally inserted positions, insert in
|
|
|
|
|
System Messages section).
|
|
|
|
|
|
|
|
|
|
* _`Index Generation`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HTML Writer
|
|
|
|
|
===========
|
|
|
|
|
|
|
|
|
|
* Make it easier to find out fragment names (#foo-bar) of ``_`inline
|
|
|
|
|
targets```. Currently you have to either look at the source or
|
|
|
|
|
guess the fragment.
|
|
|
|
|
|
|
|
|
|
For example, we could add support for self-referencing targets
|
|
|
|
|
(i.e. inline targets would [unobtrusively] link to themselves, so
|
|
|
|
|
that you can just click them and then copy the address). Or we
|
|
|
|
|
could add support for titles that display the fragment name (as in
|
|
|
|
|
<http://subversion.tigris.org/mailing-list-guidelines.html>; just
|
|
|
|
|
hover the paragraphs).
|
|
|
|
|
|
|
|
|
|
Either way it should be optional and deactivated by default.
|
|
|
|
|
|
|
|
|
|
This would be useful for documents like Docutils' bug list or to-do
|
|
|
|
|
list.
|
|
|
|
|
|
|
|
|
|
* Make the _`list compacting` logic more generic: For example, allow
|
|
|
|
|
for literal blocks or line blocks inside of compact list items.
|
|
|
|
|
|
|
|
|
|
This is not implementable as long as list compacting is done by
|
|
|
|
|
omitting ``<p>`` tags. List compacting would need to be done by
|
|
|
|
|
adjusting CSS margins instead.
|
|
|
|
|
|
|
|
|
|
:2015-04-02: The new html writer no longer strips <p> tags but adds the
|
|
|
|
|
class value ``simple`` to the list.
|
|
|
|
|
Formatting is done by CSS --- configurable by a custom style
|
|
|
|
|
sheet.
|
|
|
|
|
|
|
|
|
|
Auto-compactization can be overridden by the ``open`` vs.
|
|
|
|
|
``compact`` class arguments.
|
|
|
|
|
|
|
|
|
|
* Idea for field-list rendering: hanging indent::
|
|
|
|
|
|
|
|
|
|
Field name (bold): First paragraph of field body begins
|
|
|
|
|
with the field name inline.
|
|
|
|
|
|
|
|
|
|
If the first item of a field body is not a paragraph,
|
|
|
|
|
it would begin on the following line.
|
|
|
|
|
|
|
|
|
|
:2015-04-02: The new html writer writes field-lists as definition lists
|
|
|
|
|
with class ``field-list``.
|
|
|
|
|
Formatting is done by CSS --- configurable by a custom style
|
|
|
|
|
sheet. The default style sheet has some examples, including a
|
|
|
|
|
run-in field-list style.
|
|
|
|
|
|
|
|
|
|
* Add more support for <link> elements, especially for navigation
|
|
|
|
|
bars.
|
|
|
|
|
|
|
|
|
|
The framework does not have a notion of document relationships, so
|
|
|
|
|
probably raw.destination_ should be used.
|
|
|
|
|
|
|
|
|
|
We'll have framework support for document relationships when support
|
|
|
|
|
for `multiple output files`_ is added. The HTML writer could
|
|
|
|
|
automatically generate <link> elements then.
|
|
|
|
|
|
|
|
|
|
.. _raw.destination: misc.raw_
|
|
|
|
|
|
|
|
|
|
* Base list compaction on the spacing of source list? Would require
|
|
|
|
|
parser support. (Idea: fantasai, 16 Dec 2002, doc-sig.)
|
|
|
|
|
|
|
|
|
|
* Add a tool tip ("title" attribute?) to footnote back-links
|
|
|
|
|
identifying them as such. Text in Docutils language module.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PEP/HTML Writer
|
|
|
|
|
===============
|
|
|
|
|
|
|
|
|
|
* Remove the generic style information (duplicated from html4css1.css)
|
|
|
|
|
from pep.css to avoid redundancy.
|
|
|
|
|
|
|
|
|
|
Set ``stylesheet-path`` to "html4css.css,pep.css" and the
|
|
|
|
|
``stylesheet-dirs`` accordingly instead. (See the xhtml11 writer for an
|
|
|
|
|
example.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
S5/HTML Writer
|
|
|
|
|
==============
|
|
|
|
|
|
|
|
|
|
* Add a way to begin an untitled slide.
|
|
|
|
|
|
|
|
|
|
* Add a way to begin a new slide, continuation, using the same title
|
|
|
|
|
as the previous slide? (Unnecessary?) You need that if you have a
|
|
|
|
|
lot of items in one section which don't fit on one slide.
|
|
|
|
|
|
|
|
|
|
Maybe either this item or the previous one can be realized using
|
|
|
|
|
transitions.
|
|
|
|
|
|
|
|
|
|
* Have a timeout on incremental items, so the colour goes away after 1
|
|
|
|
|
second.
|
|
|
|
|
|
|
|
|
|
* Add an empty, black last slide (optionally). Currently the handling
|
|
|
|
|
of the last slide is not very nice, it re-cycles through the
|
|
|
|
|
incremental items on the last slide if you hit space-bar after the
|
|
|
|
|
last item.
|
|
|
|
|
|
|
|
|
|
* Add a command-line option to disable advance-on-click.
|
|
|
|
|
|
|
|
|
|
* Add a speaker's master document, which would contain a small version
|
|
|
|
|
of the slide text with speaker's notes interspersed. The master
|
|
|
|
|
document could use ``target="whatever"`` to direct links to a
|
|
|
|
|
separate window on a second monitor (e.g., a projector).
|
|
|
|
|
|
|
|
|
|
.. Note:: This item and the following items are partially
|
|
|
|
|
accomplished by the S5 1.2 code (currently in alpha), which has
|
|
|
|
|
not yet been integrated into Docutils.
|
|
|
|
|
|
|
|
|
|
* Speaker's notes -- how to intersperse? Could use reST comments
|
|
|
|
|
(".."), but make them visible in the speaker's master document. If
|
|
|
|
|
structure is necessary, we could use a "comment" directive (to avoid
|
|
|
|
|
nonsensical DTD changes, the "comment" directive could produce an
|
|
|
|
|
untitled topic element).
|
|
|
|
|
|
|
|
|
|
The speaker's notes could (should?) be separate from S5's handout
|
|
|
|
|
content.
|
|
|
|
|
|
|
|
|
|
* The speaker's master document could use frames for easy navigation:
|
|
|
|
|
TOC on the left, content on the right.
|
|
|
|
|
|
|
|
|
|
- It would be nice if clicking in the TOC frame simultaneously
|
|
|
|
|
linked to both the speaker's notes frame and to the slide window,
|
|
|
|
|
synchronizing both. Needs JavaScript?
|
|
|
|
|
|
|
|
|
|
- TOC would have to be tightly formatted -- minimal indentation.
|
|
|
|
|
|
|
|
|
|
- TOC auto-generated, as in the PEP Reader. (What if there already
|
|
|
|
|
is a "contents" directive in the document?)
|
|
|
|
|
|
|
|
|
|
- There could be another frame on the left (top-left or bottom-left)
|
|
|
|
|
containing a single "Next" link, always pointing to the next slide
|
|
|
|
|
(synchronized, of course). Also "Previous" link? FF/Rew go to
|
|
|
|
|
the beginning of the next/current parent section? First/Last
|
|
|
|
|
also? Tape-player-style buttons like ``|<< << < > >> >>|``?
|
|
|
|
|
|
|
|
|
|
Epub/HTML Writer
|
|
|
|
|
================
|
|
|
|
|
|
|
|
|
|
Add epub as an output format.
|
|
|
|
|
|
|
|
|
|
epub is an open file format for ebooks based on HTML, specified by the
|
|
|
|
|
`International Digital Publishing Forum`_. Thus, documents in epub
|
|
|
|
|
format are suited to be read with `electronic reading devices`_.
|
|
|
|
|
|
|
|
|
|
Pack the output of a HTML writer and supporting files (e.g. images)
|
|
|
|
|
into one single epub document.
|
|
|
|
|
|
|
|
|
|
There are `links to two 3rd party ePub writers`__ in the Docutils link list.
|
|
|
|
|
Test and consider moving the better one into the docutils core.
|
|
|
|
|
|
|
|
|
|
__ ../user/links.html#ePub
|
|
|
|
|
.. _International Digital Publishing Forum: http://www.idpf.org/
|
|
|
|
|
.. _electronic reading devices:
|
|
|
|
|
http://en.wikipedia.org/wiki/List_of_e-book_readers
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LaTeX writer
|
|
|
|
|
============
|
|
|
|
|
|
|
|
|
|
Also see the Problems__ section in the `latex writer documentation`_.
|
|
|
|
|
|
|
|
|
|
__ ../user/latex.html#problems
|
|
|
|
|
|
|
|
|
|
.. _latex writer documentation: ../user/latex.html
|
|
|
|
|
|
|
|
|
|
.. _latex-variants:
|
|
|
|
|
../../../sandbox/latex-variants/README.html
|
|
|
|
|
|
|
|
|
|
Bug fixes
|
|
|
|
|
---------
|
|
|
|
|
|
|
|
|
|
* Too deeply nested lists fail: generate a warning and provide
|
|
|
|
|
a workaround.
|
|
|
|
|
|
|
|
|
|
2017-02-09 this is fixed for enumeration in 0.13.1
|
|
|
|
|
|
|
|
|
|
for others, cf. sandbox/latex-variants/tests/rst-levels.txt
|
|
|
|
|
|
|
|
|
|
* File names of included graphics (see also `grffile` package).
|
|
|
|
|
|
|
|
|
|
* Paragraph following field-list or table in compound is indented.
|
|
|
|
|
|
|
|
|
|
This is a problem with the current DUfieldlist definition and with
|
|
|
|
|
the use of "longtable" for tables.
|
|
|
|
|
See `LaTeX constructs and packages instead of re-implementations`_ for
|
|
|
|
|
alternatives.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Generate clean and configurable LaTeX source
|
|
|
|
|
----------------------------------------------
|
|
|
|
|
|
|
|
|
|
* Check the generated source with package `nag`.
|
|
|
|
|
|
|
|
|
|
Configurable placement of figure and table floats
|
|
|
|
|
`````````````````````````````````````````````````
|
|
|
|
|
|
|
|
|
|
* Special class argument to individually place figures?
|
|
|
|
|
|
|
|
|
|
Either:
|
|
|
|
|
|
|
|
|
|
placement-<optional arg> -> \figure[<optional arg>]{...}
|
|
|
|
|
|
|
|
|
|
e.g. ``.. class:: placement-htb``,
|
|
|
|
|
|
|
|
|
|
or more verbose:
|
|
|
|
|
|
|
|
|
|
:H: place-here
|
|
|
|
|
:h: place-here-if-possible
|
|
|
|
|
:t: place-top
|
|
|
|
|
:b: place-bottom
|
|
|
|
|
:p: place-on-extra-page
|
|
|
|
|
|
|
|
|
|
e.g.: ``.. class:: place-here-if-possible place-top place-bottom``
|
|
|
|
|
|
|
|
|
|
Maybe support both variants?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LaTeX constructs and packages instead of re-implementations
|
|
|
|
|
```````````````````````````````````````````````````````````
|
|
|
|
|
|
|
|
|
|
Which packages do we want to use?
|
|
|
|
|
|
|
|
|
|
+ base and "recommended" packages
|
|
|
|
|
|
|
|
|
|
(packages that should be in a "reasonably sized and reasonably modern
|
|
|
|
|
LaTeX installation like the `texlive-latex-recommended` Debian package,
|
|
|
|
|
say):
|
|
|
|
|
|
|
|
|
|
+ No "fancy" or "exotic" requirements.
|
|
|
|
|
|
|
|
|
|
+ pointers to advanced packages and their use in the `latex writer
|
|
|
|
|
documentation`_.
|
|
|
|
|
|
|
|
|
|
* footnotes
|
|
|
|
|
|
|
|
|
|
+ True footnotes with LaTeX auto-numbering (as option ``--latex-footnotes``)
|
|
|
|
|
(also for target-footnotes):
|
|
|
|
|
|
|
|
|
|
- attach footnote text to footnote-symobol node
|
|
|
|
|
- write \footnote{<footnote text>}
|
|
|
|
|
- consider cases where LaTeX does not support footnotes
|
|
|
|
|
(inside tables, headings, ...)?
|
|
|
|
|
- consider multiple footnote refs to common footnote text.
|
|
|
|
|
|
|
|
|
|
.. Quote:
|
|
|
|
|
|
|
|
|
|
If the symbol you want is not one of the ones listed, you'll need to
|
|
|
|
|
redefine ``\@fnsymbol`` and add it, e.g. perhaps like::
|
|
|
|
|
|
|
|
|
|
\def\@fnsymbol#1{\ifcase#1\hbox{}\or *\or \dagger\or \ddagger\or
|
|
|
|
|
\mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger \or
|
|
|
|
|
\ddagger\ddagger \or \mathchar"27C \else\@ctrerr\fi\relax}
|
|
|
|
|
|
|
|
|
|
which would allow \symbolfootnote[10]{footnote} to have a club as its
|
|
|
|
|
mark.
|
|
|
|
|
|
|
|
|
|
+ document customization (links to how-to and packages):
|
|
|
|
|
|
|
|
|
|
.. Footnote packages:
|
|
|
|
|
|
|
|
|
|
:footnote: texlive-latex-recommended % savenotes environment
|
|
|
|
|
:footmisc: texlive-latex-extra % formatting options
|
|
|
|
|
:manyfoot: texlive-latex-extra
|
|
|
|
|
:bigfoot: texlive-latex-extra
|
|
|
|
|
:perpage: texlive-latex-extra
|
|
|
|
|
:ftnxtra: new on CTAN
|
|
|
|
|
fixes the issue of footnote inside \caption{},
|
|
|
|
|
tabular environment and \section{} like commands.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
German tutorial:
|
|
|
|
|
http://www2.informatik.hu-berlin.de/~ahamann/studies/footnotes.pdf
|
|
|
|
|
|
|
|
|
|
.. Footnote FAQs:
|
|
|
|
|
|
|
|
|
|
`Footnotes whose texts are identical
|
|
|
|
|
<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=repfootnote>`__
|
|
|
|
|
|
|
|
|
|
* label per hand or use footmisc
|
|
|
|
|
|
|
|
|
|
`More than one sequence of footnotes
|
|
|
|
|
<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=multfoot>`__
|
|
|
|
|
|
|
|
|
|
* manyfoot, bigfoot
|
|
|
|
|
|
|
|
|
|
`Footnotes in tables
|
|
|
|
|
<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=footintab>`__
|
|
|
|
|
|
|
|
|
|
* `tabularx` and longtable allow footnotes.
|
|
|
|
|
* `footnote` provides a "savenotes" environment which collects all
|
|
|
|
|
footnotes and emits them at ``end{savenotes}``
|
|
|
|
|
|
|
|
|
|
`Footnotes in LaTeX section headings
|
|
|
|
|
<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=ftnsect>`__
|
|
|
|
|
|
|
|
|
|
* Take advantage of the fact that the mandatory argument doesn't
|
|
|
|
|
move if the optional argument is present::
|
|
|
|
|
|
|
|
|
|
\section[title] {title\footnote{title ftnt}}
|
|
|
|
|
|
|
|
|
|
* Use the footmisc package, with package option stable - this modifies
|
|
|
|
|
footnotes so that they softly and silently vanish away if used in a
|
|
|
|
|
moving argument.
|
|
|
|
|
|
|
|
|
|
* Use ftnxtra.
|
|
|
|
|
|
|
|
|
|
`Footnotes numbered per page
|
|
|
|
|
<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=footnpp>`__
|
|
|
|
|
|
|
|
|
|
* perpage provides a general mechanism for resetting counters per page
|
|
|
|
|
* footmisc provides a package option perpage
|
|
|
|
|
|
|
|
|
|
* use `eqlist` or `enumitem` (texlive-latex-extra) for field-lists?
|
|
|
|
|
|
|
|
|
|
* ``--use-latex-when-possible`` »super option« that would set the
|
|
|
|
|
following::
|
|
|
|
|
|
|
|
|
|
--no-section-numbering
|
|
|
|
|
--use-latex-toc
|
|
|
|
|
--use-latex-docinfo
|
|
|
|
|
--use-latex-abstract
|
|
|
|
|
--use-latex-footnotes
|
|
|
|
|
--use-latex-citations
|
|
|
|
|
|
|
|
|
|
? (My preference is to default to use-latex-* whenever possible [GM])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Default layout
|
|
|
|
|
--------------
|
|
|
|
|
|
|
|
|
|
* Use italic instead of slanted for titlereference?
|
|
|
|
|
|
|
|
|
|
* Start a new paragraph after lists (as currently)
|
|
|
|
|
or continue (no blank line in source, no parindent in output)?
|
|
|
|
|
|
|
|
|
|
Overriding:
|
|
|
|
|
|
|
|
|
|
* continue if the `compound paragraph`_ directive is used (as currently),
|
|
|
|
|
or
|
|
|
|
|
* force a new paragraph with an empty comment.
|
|
|
|
|
|
|
|
|
|
* Sidebar handling (environment with `framed`, `marginnote`, `wrapfig`,
|
|
|
|
|
...)?
|
|
|
|
|
|
|
|
|
|
* Use optionlist for docinfo?
|
|
|
|
|
|
|
|
|
|
* Keep literal-blocks together on a page, avoid pagebreaks.
|
|
|
|
|
|
|
|
|
|
Failed experiments up to now: samepage, minipage, pagebreak 1 to 4 before
|
|
|
|
|
the block.
|
|
|
|
|
|
|
|
|
|
Should be possible with ``--literal-block-env==lstlistings`` and some
|
|
|
|
|
configuration...
|
|
|
|
|
|
|
|
|
|
* More space between title and subtitle? ::
|
|
|
|
|
|
|
|
|
|
- \\ % subtitle%
|
|
|
|
|
+ \\[0.5em] % subtitle%
|
|
|
|
|
|
|
|
|
|
.. _PSNFSS documentation:
|
|
|
|
|
http://mirror.ctan.org/macros/latex/required/psnfss/psnfss2e.pdf
|
|
|
|
|
.. _compound paragraph:
|
|
|
|
|
../ref/rst/directives.html#compound-paragraph
|
|
|
|
|
.. _fixltx2e:
|
|
|
|
|
http://mirror.ctan.org/help/Catalogue/entries/fixltx2e.html
|
|
|
|
|
|
|
|
|
|
Tables
|
|
|
|
|
``````
|
|
|
|
|
|
|
|
|
|
* Improve/simplify logic to set the column width in the output.
|
|
|
|
|
|
|
|
|
|
+ Assumed reST line length for table width setting configurable, or
|
|
|
|
|
+ use `ltxtable` (a combination of `tabularx` (auto-width) and
|
|
|
|
|
`longtable` (page breaks)), or
|
|
|
|
|
+ use tabularx column type ``X`` and let LaTeX decide width, or
|
|
|
|
|
+ use tabulary_?
|
|
|
|
|
|
|
|
|
|
.. _tabulary:
|
|
|
|
|
http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=tabulary
|
|
|
|
|
|
|
|
|
|
* From comp.text.tex (13. 4. 2011):
|
|
|
|
|
|
|
|
|
|
When using fixed width columns, you should ensure that the total
|
|
|
|
|
width does not exceed \linewidth: if the first column is p{6cm}
|
|
|
|
|
the second one should be p{\dimexpr\linewidth-6cm-4\tabcolsep}
|
|
|
|
|
because the glue \tabcolsep is added twice at every column edge.
|
|
|
|
|
You may also consider to set \tabcolsep to a different value...
|
|
|
|
|
|
|
|
|
|
* csv-tables do not have a colwidth.
|
|
|
|
|
|
|
|
|
|
* Add more classes or options, e.g. for
|
|
|
|
|
|
|
|
|
|
+ horizontal alignment and rules.
|
|
|
|
|
+ long table vs. tabular (see next item).
|
|
|
|
|
|
|
|
|
|
* Use tabular instead of longtable for tables in legends or generally
|
|
|
|
|
inside a float?
|
|
|
|
|
|
|
|
|
|
Alternatively, default to tabular and use longtable only if specified
|
|
|
|
|
by config setting or class argument (analogue to booktable)?
|
|
|
|
|
|
|
|
|
|
* Table heads and footer for longtable (firstpage lastpage ..)?
|
|
|
|
|
|
|
|
|
|
* In tools.txt the option tables right column, there should be some more
|
|
|
|
|
spacing between the description and the next paragraph "Default:".
|
|
|
|
|
|
|
|
|
|
* Paragraph separation in tables is hairy.
|
|
|
|
|
see http://www.tex.ac.uk/cgi-bin/texfaq2html?label=struttab
|
|
|
|
|
|
|
|
|
|
- The strut solution did not work.
|
|
|
|
|
- setting extrarowheight added ad top of row not between paragraphs in
|
|
|
|
|
a cell. ALTHOUGH i set it to 2pt because, text is too close to the topline.
|
|
|
|
|
- baselineskip/stretch does not help.
|
|
|
|
|
|
|
|
|
|
* Should there be two hlines after table head and on table end?
|
|
|
|
|
|
|
|
|
|
* Place titled tables in a float ('table' environment)?
|
|
|
|
|
|
|
|
|
|
The 'table', 'csv-table', and 'list-table' directives support an (optional)
|
|
|
|
|
table title. In analogy to the 'figure' directive this should map to a
|
|
|
|
|
table float.
|
|
|
|
|
|
|
|
|
|
Image and figure directives
|
|
|
|
|
```````````````````````````
|
|
|
|
|
|
|
|
|
|
* compare the test case in:
|
|
|
|
|
|
|
|
|
|
+ `<../../test/functional/input/data/standard.txt>`__
|
|
|
|
|
+ `<../../test/functional/expected/standalone_rst_html4css1.html>`__
|
|
|
|
|
+ `<../../test/functional/expected/standalone_rst_latex.tex>`__
|
|
|
|
|
|
|
|
|
|
* The default CSS styling for HTML output (plain.css, default.css) lets
|
|
|
|
|
text following a right- or left-aligned image float to the side of the
|
|
|
|
|
image/figure.
|
|
|
|
|
|
|
|
|
|
+ Use this default also for LaTeX?
|
|
|
|
|
|
|
|
|
|
+ Wrap text around figures/images with class argument "wrap"
|
|
|
|
|
(like the odt writer)?
|
|
|
|
|
|
|
|
|
|
Use `wrapfig` (or other recommended) package.
|
|
|
|
|
|
|
|
|
|
* support more graphic formats (especially SVG, the only standard
|
|
|
|
|
vector format for HTML)
|
|
|
|
|
|
|
|
|
|
There is a `SWF package`_ at CTAN.
|
|
|
|
|
|
|
|
|
|
.. _SWF package:
|
|
|
|
|
http://mirror.ctan.org/macros/latex/contrib/flashmovie
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Missing features
|
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
* support "figwidth" argument for figures.
|
|
|
|
|
|
|
|
|
|
As the 'figwidth' argument is still ignored and the "natural width" of
|
|
|
|
|
a figure in LaTeX is 100 % of the text width, setting the 'align'
|
|
|
|
|
argument has currently no effect on the LaTeX output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Let `meta` directive insert PDF-keywords into header?
|
|
|
|
|
|
|
|
|
|
* Multiple author entries in docinfo (same thing as in html).
|
|
|
|
|
(already solved?)
|
|
|
|
|
|
|
|
|
|
* Consider supporting the "compact" option and class argument (from
|
|
|
|
|
rst2html) as some lists look better compact and others need the space.
|
|
|
|
|
|
|
|
|
|
* Better citation support
|
|
|
|
|
(see `Footnote & Citation Gathering`_).
|
|
|
|
|
|
|
|
|
|
* If ``use-latex-citations`` is used, a bibliography is inserted right at the
|
|
|
|
|
end of the document.
|
|
|
|
|
|
|
|
|
|
Put in place of the to-be-implemented "citations" directive
|
|
|
|
|
(see `Footnote & Citation Gathering`_).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unicode to LaTeX
|
|
|
|
|
````````````````
|
|
|
|
|
|
|
|
|
|
The `LyX <http://www.lyx.org>`_ document processor has a comprehensive
|
|
|
|
|
Unicode to LaTeX conversion feature with a file called ``unicodesymbols``
|
|
|
|
|
that lists LaTeX counterparts for a wide range of Unicode characters.
|
|
|
|
|
|
|
|
|
|
* Use this in the LaTeXTranslator?
|
|
|
|
|
Think of copyright issues!
|
|
|
|
|
|
|
|
|
|
* The "ucs" package has many translations in ...doc/latex/ucs/config/
|
|
|
|
|
|
|
|
|
|
* The bibstuff_ tool ships a `latex_codec` Python module!
|
|
|
|
|
|
|
|
|
|
.. _bibstuff: http://code.google.com/p/bibstuff/
|
|
|
|
|
|
|
|
|
|
Allow choice between utf8 (standard) and utf8x (extended) encodings
|
|
|
|
|
```````````````````````````````````````````````````````````````````
|
|
|
|
|
|
|
|
|
|
* Allow the user to select *utf8* or *utf8x* LaTeX encoding. (Docutil's
|
|
|
|
|
output encoding becomes LaTeX's input encoding.)
|
|
|
|
|
|
|
|
|
|
The `ucs` package provides extended support for UTF-8 encoding in LaTeX
|
|
|
|
|
via the `inputenc`-option ``utf8x``. It is, however, a non-standard
|
|
|
|
|
extension and no longer developed.
|
|
|
|
|
|
|
|
|
|
Ideas:
|
|
|
|
|
a) Python has 4 names for the UTF-8 encoding (``utf_8, U8, UTF, utf8``)
|
|
|
|
|
give a special meaning to one of the aliases,
|
|
|
|
|
|
|
|
|
|
b) scan "stylesheets" and "latex-preamble" options and use ``utf8x``
|
|
|
|
|
if it contains ``ucs``
|
|
|
|
|
|
|
|
|
|
XeTeX writer
|
|
|
|
|
````````````
|
|
|
|
|
|
|
|
|
|
* Glyphs missing in the font are left out in the PDF without warning
|
|
|
|
|
(e.g. ⇔ left-right double arrow in the functional test output).
|
|
|
|
|
|
|
|
|
|
* Disable word-wrap (hyphenation) in literal text locally with
|
|
|
|
|
``providecommand{\nohyphenation}{\addfontfeatures{HyphenChar=None}}``?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
problematic URLs
|
|
|
|
|
````````````````
|
|
|
|
|
|
|
|
|
|
* ^^ LaTeX's special syntax for characters results in "strange" replacements
|
|
|
|
|
(both with \href and \url).
|
|
|
|
|
|
|
|
|
|
`file with ^^ <../strange^^name>`__:
|
|
|
|
|
`<../strange^^name>`__
|
|
|
|
|
|
|
|
|
|
* Unbalanced braces, { or }, will fail (both with \href and \url)::
|
|
|
|
|
|
|
|
|
|
`file with { <../strange{name>`__
|
|
|
|
|
`<../strange{name>`__
|
|
|
|
|
|
|
|
|
|
Currently, a warning is written to the error output stream.
|
|
|
|
|
|
|
|
|
|
For correct printing, we can
|
|
|
|
|
|
|
|
|
|
* use the \href command with "normal" escaped name argument, or
|
|
|
|
|
* define a url-command in the preamble ::
|
|
|
|
|
|
|
|
|
|
\urldef{\fragileURLi}\nolinkurl{myself%node@gateway.net}
|
|
|
|
|
|
|
|
|
|
but need to find a way to insert it as href argument.
|
|
|
|
|
|
|
|
|
|
The following fails::
|
|
|
|
|
|
|
|
|
|
\href{http://www.w3.org/XML/Schema^^dev}{\fragileURLi}
|
|
|
|
|
|
|
|
|
|
Use %-replacement like http://nowhere/url_with%28parens%29 ?
|
|
|
|
|
|
|
|
|
|
-> does not work for file paths (with pdflatex and xpdf).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
add-stylesheet option
|
|
|
|
|
`````````````````````
|
|
|
|
|
|
|
|
|
|
From http://article.gmane.org/gmane.text.docutils.devel/3429/
|
|
|
|
|
|
|
|
|
|
The problem is that since we have a default value, we have to
|
|
|
|
|
differentiate between adding another stylesheet and replacing the
|
|
|
|
|
default. I suggest that the existing --stylesheet & --stylesheet-path
|
|
|
|
|
options keep their semantics to replace the existing settings. We
|
|
|
|
|
could introduce new --add-stylesheet & --add-stylesheet-path options,
|
|
|
|
|
which accumulate; further --stylesheet/--stylesheet-path options would
|
|
|
|
|
clear these lists. The stylesheet or stylesheet_path setting (only
|
|
|
|
|
one may be set), plus the added_stylesheets and added_stylesheet_paths
|
|
|
|
|
settings, describe the combined styles.
|
|
|
|
|
|
|
|
|
|
For example, this run will have only one custom stylesheet:
|
|
|
|
|
|
|
|
|
|
rstpep2html.py --stylesheet-path custom.css ...
|
|
|
|
|
|
|
|
|
|
This run will use the default stylesheet, and the custom one:
|
|
|
|
|
|
|
|
|
|
rstpep2html.py --add-stylesheet-path custom.css ...
|
|
|
|
|
|
|
|
|
|
This run will use the default stylesheet, a custom local stylesheet,
|
|
|
|
|
and an external stylesheet:
|
|
|
|
|
|
|
|
|
|
rstpep2html.py --add-stylesheet-path custom.css \
|
|
|
|
|
--add-stylesheet http://www.example.org/external.css ...
|
|
|
|
|
|
|
|
|
|
This run will use only the second custom stylesheet:
|
|
|
|
|
|
|
|
|
|
rstpep2html.py --add-stylesheet-path custom.css \
|
|
|
|
|
--stylesheet-path second.css ...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Front-End Tools
|
|
|
|
|
===============
|
|
|
|
|
|
|
|
|
|
* What about if we don't know which Reader and/or Writer we are
|
|
|
|
|
going to use? If the Reader/Writer is specified on the
|
|
|
|
|
command-line? (Will this ever happen?)
|
|
|
|
|
|
|
|
|
|
Perhaps have different types of front ends:
|
|
|
|
|
|
|
|
|
|
a) _`Fully qualified`: Reader and Writer are hard-coded into the
|
|
|
|
|
front end (e.g. ``pep2html [options]``, ``pysource2pdf
|
|
|
|
|
[options]``).
|
|
|
|
|
|
|
|
|
|
b) _`Partially qualified`: Reader is hard-coded, and the Writer is
|
|
|
|
|
specified a sub-command (e.g. ``pep2 html [options]``,
|
|
|
|
|
``pysource2 pdf [options]``). The Writer is known before option
|
|
|
|
|
processing happens, allowing the OptionParser to be built
|
|
|
|
|
dynamically. Alternatively, the Writer could be hard-coded and
|
|
|
|
|
the Reader specified as a sub-command (e.g. ``htmlfrom pep
|
|
|
|
|
[options]``).
|
|
|
|
|
|
|
|
|
|
c) _`Unqualified`: Reader and Writer are specified as subcommands
|
|
|
|
|
(e.g. ``publish pep html [options]``, ``publish pysource pdf
|
|
|
|
|
[options]``). A single front end would be sufficient, but
|
|
|
|
|
probably only useful for testing purposes.
|
|
|
|
|
|
|
|
|
|
d) _`Dynamic`: Reader and/or Writer are specified by options, with
|
|
|
|
|
defaults if unspecified (e.g. ``publish --writer pdf
|
|
|
|
|
[options]``). Is this possible? The option parser would have
|
|
|
|
|
to be told about new options it needs to handle, on the fly.
|
|
|
|
|
Component-specific options would have to be specified *after*
|
|
|
|
|
the component-specifying option.
|
|
|
|
|
|
|
|
|
|
Allow common options before subcommands, as in CVS? Or group all
|
|
|
|
|
options together? In the case of the `fully qualified`_
|
|
|
|
|
front ends, all the options will have to be grouped together
|
|
|
|
|
anyway, so there's no advantage (we can't use it to avoid
|
|
|
|
|
conflicts) to splitting common and component-specific options
|
|
|
|
|
apart.
|
|
|
|
|
|
|
|
|
|
* Parameterize help text & defaults somehow? Perhaps a callback? Or
|
|
|
|
|
initialize ``settings_spec`` in ``__init__`` or ``init_options``?
|
|
|
|
|
|
|
|
|
|
* Disable common options that don't apply?
|
|
|
|
|
(This should now be easier with ``frontend.filter_settings_spec``.)
|
|
|
|
|
|
|
|
|
|
* Add ``--section-numbering`` command line option. The "sectnum"
|
|
|
|
|
directive should override the ``--no-section-numbering`` command
|
|
|
|
|
line option then.
|
|
|
|
|
|
|
|
|
|
* Create a single dynamic_ or unqualified_ front end that can be
|
|
|
|
|
installed?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
..
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: indented-text
|
|
|
|
|
indent-tabs-mode: nil
|
|
|
|
|
sentence-end-double-space: t
|
|
|
|
|
fill-column: 70
|
|
|
|
|
End:
|