welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

location: ПомощьПоПарсерам / ReStructuredText / RstPrimer
Rendering of reStructured text is not possible, please install Docutils.

ReStructuredText для Начинающих
==================================

:Author: Richard Jones
:Version: $Revision: 1.17 $
:Copyright: This document has been placed in the public domain.

.. contents::

Нижеследующий текст содержит ссылки вида "(quickref__)". Это относительные ссылки на руководство пользователя `Quick reStructuredText`_. Если эти ссылки не работают, можно обращаться к `master
quick reference`_.

__
.. _Quick reStructuredText: quickref.html
.. _master quick reference:
   http://docutils.sourceforge.net/docs/user/rst/quickref.html


Структура
-----------

Для начала стоит отметить, что название "Structured Text" ("Структурированный Текст") не слишком удачно. На самом деле, это больше напоминает "Relaxed Text"("Нестрогий Текст"), в котором используются устойчивые обороты. Эти обороты интерпртируются HTML-конвертером и получается "Очень Структурированный Текст", который может использоваться веб-браузером.

Базовый распознаваемый паттерн --- **параграф** (quickref__). Это кусок текста, отделённый пустыми строками(одной достаточно). У параграфов должны быть одинаковые отступы, то есть, количество пробелов в левом верхнем углу. Параграфы, начинающиеся с отступа, превращаются в параграфы-цитаты, с отступом. Например:

  Это параграф. Весьма короткий.
 
         Этот параграф превратится в блок текста с отступом,
         обычно используемый для цитирования другого текста.
 
  А это ещё один.
  
Превратится в:

  Это параграф. Весьма короткий.
 
         Этот параграф превратится в блок текста с отступом,
         обычно используемый для цитирования другого текста.
 
  А это ещё один.
  
__ quickref.html#paragraphs

Текстовые стили
----------------

(quickref__)

__ quickref.html#inline-markup

Внутри параграфов или других частей текста можно дополнительно выделять текст *курсивом*, используя "``*курсив*``" или **жирным**, используя "``**жирным**``".

Если нужно моноширное начертание, используются "````двойные обратные кавычки````". Обратите внимание, что внутри двойных обратных кавычек дальнейших махинаций уже не производится --- звёздочки  "``*``" и т. д. оставляются в покое.

Если какой-то из "специальных символов" надо использовать в тексте, обычно все получится хорошо -- reStructuredText достаточно интеллектуален. Например, эта * звёздочка прекрасно обрабатывается. Если нужно, чтобы текст, \*обособленный звёздочками* **не** выделялся курсивом, необходимо обозначить, что звёздочка не используется как специальный символ. Это можно сделать, поставив непосредственно перед ней обратный слэш, вот так "``\*``"  (quickref__), или окружив её двойными обратными кавычками(inline literals), вот так::

    ``\*``

__ quickref.html#escaping

Списки
-------

Списки пунктов бывают трех видов: **нумерованные**, **ненумерованные**, **определения**.  В любом случае, можно делать сколько угодно параграфов, подспсиков, и т.д., пока левый край параграфа или чего угодно другого имеет тот же отступ, что и первая строка пункта.

Списки всегда должны начинаться в новом параграфе, то есть, после пустой строки.

**нумерованные** списки (числа, буквы или римские цифры; quickref__)
  __ quickref.html#enumerated-lists
  
  Начинайте пункт с цифры или буквы с последующей точкой ".", правой скобкой ")" или окруженной скобками "( )", смотря что удобней. Все нижеследующие формы распознаются::
  
        1. числа
  
        A. большие буквы
           и оно продолжается на нескольких строчках

           даже два параграфа и всё такое!

        a. маленькие буквы

                3.      с вложенным спсиком, начинающимся с другого числа
                4.  всё же, убедитесь, что числа идут в правильной последовательности!

        I. большие римские цифры
        
        i. маленький римские цифры
        
        (1) снова числа
        
        1) и снова
        
**ненумерованные** списки (quickref__)
  __ quickref.html#bullet-lists
  
  Точно так же, как и нумерованные списки, новый пункт начинается с новой строки и символа-буллита -- "-", "+" или "*"::
  
        * буллит с использованием "*"
        
                - вложенный список с использованием "-"
                
                        + ещё один вложенный список
                
                - ещё один пункт
                
  Превратится в:
  
  * буллит с использованием "*"
        
        - вложенный список с использованием "-"
                
                + ещё один вложенный список
                
        - ещё один пункт
        
**definition** lists (quickref__)
  __ quickref.html#definition-lists
  
  В отличие от остальных двух случаев, списки-определения стостоят из термина и определения этого термина. Формат списков-определений следующий::

    what
          Списки-определения ассоциируют термин с определением.

    *how*
           Термин -- это однострочная фраза.Определение -- это один или несколько 
           параграфов или текстовых элементов, с отступами относительно термина.
           Пустые строки между термином и определением не разрешены.
 
  Превратится в:  
  
  what
        Списки-определения ассоциируют термин с определением.
          
  *how*
        Термин -- это однострочная фраза.Определение -- это один или несколько 
        параграфов или текстовых элементов, с отступами относительно термина.
        Пустые строки между термином и определением не разрешены.
 
Преформатирование (примеры)
-----------------------------
(quickref__)

__ quickref.html#literal-blocks

Чтобы просто вставить кусок преформатированного текста, который-никто-не-будет-трогать, завершите предыдущий параграф "``::``". Перформатированный блок завершится, когда текст вернётся на уровень отступа, который был у параграфа предшествующего преформатированному блоку.

  Пример::

      Пробел, новые строки, пустые строки, и все виды разметок
        ( *такая* или \такая) в подобных блоках сохраняются.
    Внимание, я изменил отступ
    (но недостаточно)

  пример завершён

В результате получится:

  Пример::

      Пробел, новые строки, пустые строки, и все виды разметок
        ( *такая* или \такая) в подобных блоках сохраняются.
    Внимание, я изменил отступ
    (но недостаточно)

  пример завершён
  
Обратите внимание, что если параграф состоит только из "``::``", то он не отображается. ::

  ::

      Это преформатированный текст, а 
          последний параграф, состоящий из
          "::" --- удалён.


В результате:

::

      Это преформатированный текст, а 
          последний параграф, состоящий из
          "::" --- удалён.

Разделы
-------------

(quickref__)

__ quickref.html#section-structure

Чтобы разбить длинный текст на разделы, используйте **заголовки разделов**. Это строка текста(одно или несколько слов) с обрамлением: просто подчеркиванием, или отчеркиванием сверху и снизу, состоящим из минусов "``-----``", знаков равно "``======``", тильд "``~~~~~~``" или любых других неалфавитных символов: ``= - ` : ' " ~ ^ _ * + # < >``, которые Вам нравятся. Подчеркивание отличается от отчеркивания сверху и снизу, состоящего из тех же символов. Подчеркивание/отчеркивание должны быт не корче самого заголовка. Будьте последовательны, така как одинаково обрамлённые разделы будут на одном уровне. ::
 
  Часть 1 Заголовок
  =================

  Раздел 1.1 Заголовок
  ---------------------

  Глава 1.1.1 Заголовок
  ~~~~~~~~~~~~~~~~~~~~~~

  Раздел 1.2 Заголовок
  ----------------------

  Часть 2 Заголовок
  ====================

Превратится в следующую структуру(проиллюстрируем на упрощённом псевдо-XML):

    <section>
        <title>
            Часть 1 Заголовок
        <section>
            <title>
                Раздел 1.1 Заголовок
            <section>
                <title>
                    Глава 1.1.1 Заголовок
        <section>
            <title>
                Раздел 1.2 Заголовок
    <section>
        <title>
            Часть 2 Заголовок

(В псевдо-XML для указания вложенности используются отступы и нет закрывающих тэгов. Нет возможности продемонстрировать обработанный результат, как в других примерах, потому что разделов не существует внутри двойных кавычек. Для конкретного примера, сравните структуру разделов этого исходного текста этого документа и его же в обработанном виде.)

Обратите внимание, что на заголовки разделов можно ссылаться, просто используя их название. Чтобы сослаться на заголовок Списки_, мне достаточно написать "``Списки_``". Если заголовок содержит пробел(ы), как, например, `текстовые стили`_, то нужно обрамить заголовок кавычками: "```текстовые стили`_``".

Заголовок / Подзаголовок
``````````````````````````

Название документа отличается от названий разделов, и может быть оформлено по другому (например, HTML writer по умолчанию показывает его как отцентированный заголовок).

Чтобы выделить название заголовок документа в reStructuredText, используйте уникальный стиль обрамления в начале документа. Чтобы выделить подзаговок, используюте другой ункальный стиль обрамления сразу же после заголовка.
Для
примера::

    ================
     Заголовок
    ================
    -----------------
     Подзаголовок
    ----------------

    Название Раздела
    ==================

    ...
        
Обратите внимание, что и для "Заголовка" и для "Названия раздела" используются знаки равно, ноэто два различных и независмых стиля.  Текст отчёркнутых сверху и снизу заголовков (а не просто подчеркнутых) может быть вставлен для эстетики.


Изображения
--------------

(quickref__)

__ quickref.html#directives

Чтобы вставить в документ изображение, используйте директиву ``image``.
Например::

  .. image:: images/biohazard.png

Результат:

.. image:: images/biohazard.png

``images/biohazard.png`` --- это имя файла с изображением, которое надо включить в документ. На изображение не накладывается никаких ограничений(ни на формат, ни на размер, ни на что-либо ещё). Если изображение будет вставлять в HTML и есть желание указать дополнительную информацию, можно написать так:

  .. image:: images/biohazard.png
     :height: 100
     :width: 200
     :scale: 50
     :alt: alternate text

Более подробную информацию см. в `image directive documentation`__ .
          
__ ../../ref/rst/directives.html#images

Что Дальше?
------------

Это пособие для начинающих описывает наиболее широкоиспользуемые возможности reStructuredText, но их намного больше. Руководство пользователя `Quick reStructuredText`_ будет хорошим продолжением. За детальными подробностями стоит обратится к
`reStructuredText Markup Specification`_  [#]_.
          

.. [#] Если относительная ссылка не работает, попробуйте обратится к основному документу:
   http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html.

.. _reStructuredText Markup Specification:
   ../../ref/rst/restructuredtext.html
.. _post a message: mailto:docutils-users@lists.sourceforge.net
.. _Docutils-Users mailing list:
   http://lists.sourceforge.net/lists/listinfo/docutils-users
.. _Docutils project web site: http://docutils.sourceforge.net/