mirror of https://github.com/python/cpython
193 lines
5.8 KiB
ReStructuredText
193 lines
5.8 KiB
ReStructuredText
|
.. highlightlang:: rest
|
||
|
|
||
|
Differences to the LaTeX markup
|
||
|
===============================
|
||
|
|
||
|
Though the markup language is different, most of the concepts and markup types
|
||
|
of the old LaTeX docs have been kept -- environments as reST directives, inline
|
||
|
commands as reST roles and so forth.
|
||
|
|
||
|
However, there are some differences in the way these work, partly due to the
|
||
|
differences in the markup languages, partly due to improvements in Sphinx. This
|
||
|
section lists these differences, in order to give those familiar with the old
|
||
|
format a quick overview of what they might run into.
|
||
|
|
||
|
Inline markup
|
||
|
-------------
|
||
|
|
||
|
These changes have been made to inline markup:
|
||
|
|
||
|
* **Cross-reference roles**
|
||
|
|
||
|
Most of the following semantic roles existed previously as inline commands,
|
||
|
but didn't do anything except formatting the content as code. Now, they
|
||
|
cross-reference to known targets (some names have also been shortened):
|
||
|
|
||
|
| *mod* (previously *refmodule* or *module*)
|
||
|
| *func* (previously *function*)
|
||
|
| *data* (new)
|
||
|
| *const*
|
||
|
| *class*
|
||
|
| *meth* (previously *method*)
|
||
|
| *attr* (previously *member*)
|
||
|
| *exc* (previously *exception*)
|
||
|
| *cdata*
|
||
|
| *cfunc* (previously *cfunction*)
|
||
|
| *cmacro* (previously *csimplemacro*)
|
||
|
| *ctype*
|
||
|
|
||
|
Also different is the handling of *func* and *meth*: while previously
|
||
|
parentheses were added to the callable name (like ``\func{str()}``), they are
|
||
|
now appended by the build system -- appending them in the source will result
|
||
|
in double parentheses. This also means that ``:func:`str(object)``` will not
|
||
|
work as expected -- use ````str(object)```` instead!
|
||
|
|
||
|
* **Inline commands implemented as directives**
|
||
|
|
||
|
These were inline commands in LaTeX, but are now directives in reST:
|
||
|
|
||
|
| *deprecated*
|
||
|
| *versionadded*
|
||
|
| *versionchanged*
|
||
|
|
||
|
These are used like so::
|
||
|
|
||
|
.. deprecated:: 2.5
|
||
|
Reason of deprecation.
|
||
|
|
||
|
Also, no period is appended to the text for *versionadded* and
|
||
|
*versionchanged*.
|
||
|
|
||
|
| *note*
|
||
|
| *warning*
|
||
|
|
||
|
These are used like so::
|
||
|
|
||
|
.. note::
|
||
|
|
||
|
Content of note.
|
||
|
|
||
|
* **Otherwise changed commands**
|
||
|
|
||
|
The *samp* command previously formatted code and added quotation marks around
|
||
|
it. The *samp* role, however, features a new highlighting system just like
|
||
|
*file* does:
|
||
|
|
||
|
``:samp:`open({filename}, {mode})``` results in :samp:`open({filename}, {mode})`
|
||
|
|
||
|
* **Dropped commands**
|
||
|
|
||
|
These were commands in LaTeX, but are not available as roles:
|
||
|
|
||
|
| *bfcode*
|
||
|
| *character* (use :samp:`\`\`'c'\`\``)
|
||
|
| *citetitle* (use ```Title <URL>`_``)
|
||
|
| *code* (use ````code````)
|
||
|
| *email* (just write the address in body text)
|
||
|
| *filenq*
|
||
|
| *filevar* (use the ``{...}`` highlighting feature of *file*)
|
||
|
| *programopt*, *longprogramopt* (use *option*)
|
||
|
| *ulink* (use ```Title <URL>`_``)
|
||
|
| *url* (just write the URL in body text)
|
||
|
| *var* (use ``*var*``)
|
||
|
| *infinity*, *plusminus* (use the Unicode character)
|
||
|
| *shortversion*, *version* (use the ``|version|`` and ``|release|`` substitutions)
|
||
|
| *emph*, *strong* (use the reST markup)
|
||
|
|
||
|
* **Backslash escaping**
|
||
|
|
||
|
In reST, a backslash must be escaped in normal text, and in the content of
|
||
|
roles. However, in code literals and literal blocks, it must not be escaped.
|
||
|
Example: ``:file:`C:\\Temp\\my.tmp``` vs. ````open("C:\Temp\my.tmp")````.
|
||
|
|
||
|
|
||
|
Information units
|
||
|
-----------------
|
||
|
|
||
|
Information units (*...desc* environments) have been made reST directives.
|
||
|
These changes to information units should be noted:
|
||
|
|
||
|
* **New names**
|
||
|
|
||
|
"desc" has been removed from every name. Additionally, these directives have
|
||
|
new names:
|
||
|
|
||
|
| *cfunction* (previously *cfuncdesc*)
|
||
|
| *cmacro* (previously *csimplemacrodesc*)
|
||
|
| *exception* (previously *excdesc*)
|
||
|
| *function* (previously *funcdesc*)
|
||
|
| *attribute* (previously *memberdesc*)
|
||
|
|
||
|
The *classdesc\** and *excclassdesc* environments have been dropped, the
|
||
|
*class* and *exception* directives support classes documented with and without
|
||
|
constructor arguments.
|
||
|
|
||
|
* **Multiple objects**
|
||
|
|
||
|
The equivalent of the *...line* commands is::
|
||
|
|
||
|
.. function:: do_foo(bar)
|
||
|
do_bar(baz)
|
||
|
|
||
|
Description of the functions.
|
||
|
|
||
|
IOW, just give one signatures per line, at the same indentation level.
|
||
|
|
||
|
* **Arguments**
|
||
|
|
||
|
There is no *optional* command. Just give function signatures like they
|
||
|
should appear in the output::
|
||
|
|
||
|
.. function:: open(filename[, mode[, buffering]])
|
||
|
|
||
|
Description.
|
||
|
|
||
|
Note: markup in the signature is not supported.
|
||
|
|
||
|
* **Indexing**
|
||
|
|
||
|
The *...descni* environments have been dropped. To mark an information unit
|
||
|
as unsuitable for index entry generation, use the *noindex* option like so::
|
||
|
|
||
|
.. function:: foo_*
|
||
|
:noindex:
|
||
|
|
||
|
Description.
|
||
|
|
||
|
* **New information unit**
|
||
|
|
||
|
There is a new generic information unit called "describe" which can be used
|
||
|
to document things that are not covered by the other units::
|
||
|
|
||
|
.. describe:: a == b
|
||
|
|
||
|
The equals operator.
|
||
|
|
||
|
|
||
|
Structure
|
||
|
---------
|
||
|
|
||
|
The LaTeX docs were split in several toplevel manuals. Now, all files
|
||
|
are part of the same documentation tree, as indicated by the *toctree*
|
||
|
directives in the sources. Every *toctree* directive embeds other files
|
||
|
as subdocuments of the current file (this structure is not necessarily
|
||
|
mirrored in the filesystem layout). The toplevel file is
|
||
|
:file:`contents.rst`.
|
||
|
|
||
|
However, most of the old directory structure has been kept, with the
|
||
|
directories renamed as follows:
|
||
|
|
||
|
* :file:`api` -> :file:`c-api`
|
||
|
* :file:`dist` -> :file:`distutils`, with the single TeX file split up
|
||
|
* :file:`doc` -> :file:`documenting`
|
||
|
* :file:`ext` -> :file:`extending`
|
||
|
* :file:`inst` -> :file:`installing`
|
||
|
* :file:`lib` -> :file:`library`
|
||
|
* :file:`mac` -> merged into :file:`library`, with `mac/using.tex`
|
||
|
moved to `howto/pythonmac.rst`
|
||
|
* :file:`ref` -> :file:`reference`
|
||
|
* :file:`tut` -> :file:`tutorial`, with the single TeX file split up
|
||
|
|
||
|
|
||
|
.. XXX more (index-generating, production lists, ...)
|