ReStructuredText для Начинающих
Author: | Richard Jones |
---|---|
Version: | 1.17 |
Copyright: | This document has been placed in the public domain. |
Contents
Нижеследующий текст содержит ссылки вида "(quickref)". Это относительные ссылки на руководство пользователя Quick reStructuredText. Если эти ссылки не работают, можно обращаться к master quick reference.
Структура
Для начала стоит отметить, что название "Structured Text" ("Структурированный Текст") не слишком удачно. На самом деле, это больше напоминает "Relaxed Text"("Нестрогий Текст"), в котором используются устойчивые обороты. Эти обороты интерпртируются HTML-конвертером и получается "Очень Структурированный Текст", который может использоваться веб-браузером.
Базовый распознаваемый паттерн --- параграф (quickref). Это кусок текста, отделённый пустыми строками(одной достаточно). У параграфов должны быть одинаковые отступы, то есть, количество пробелов в левом верхнем углу. Параграфы, начинающиеся с отступа, превращаются в параграфы-цитаты, с отступом. Например:
Это параграф. Весьма короткий.
Этот параграф превратится в блок текста с отступом, обычно используемый для цитирования другого текста.А это ещё один.
Превратится в:
Это параграф. Весьма короткий.
Этот параграф превратится в блок текста с отступом, обычно используемый для цитирования другого текста.А это ещё один.
Текстовые стили
(quickref)
Внутри параграфов или других частей текста можно дополнительно выделять текст курсивом, используя "*курсив*" или жирным, используя "**жирным**".
Если нужно моноширное начертание, используются "``двойные обратные кавычки``". Обратите внимание, что внутри двойных обратных кавычек дальнейших махинаций уже не производится --- звёздочки "*" и т. д. оставляются в покое.
Если какой-то из "специальных символов" надо использовать в тексте, обычно все получится хорошо -- reStructuredText достаточно интеллектуален. Например, эта * звёздочка прекрасно обрабатывается. Если нужно, чтобы текст, *обособленный звёздочками* не выделялся курсивом, необходимо обозначить, что звёздочка не используется как специальный символ. Это можно сделать, поставив непосредственно перед ней обратный слэш, вот так "\*" (quickref), или окружив её двойными обратными кавычками(inline literals), вот так:
``\*``
Списки
Списки пунктов бывают трех видов: нумерованные, ненумерованные, определения. В любом случае, можно делать сколько угодно параграфов, подспсиков, и т.д., пока левый край параграфа или чего угодно другого имеет тот же отступ, что и первая строка пункта.
Списки всегда должны начинаться в новом параграфе, то есть, после пустой строки.
- нумерованные списки (числа, буквы или римские цифры; quickref)
Начинайте пункт с цифры или буквы с последующей точкой ".", правой скобкой ")" или окруженной скобками "( )", смотря что удобней. Все нижеследующие формы распознаются:
1. числа A. большие буквы и оно продолжается на нескольких строчках даже два параграфа и всё такое! a. маленькие буквы 3. с вложенным спсиком, начинающимся с другого числа 4. всё же, убедитесь, что числа идут в правильной последовательности! I. большие римские цифры i. маленький римские цифры (1) снова числа 1) и снова
- ненумерованные списки (quickref)
Точно так же, как и нумерованные списки, новый пункт начинается с новой строки и символа-буллита -- "-", "+" или "*":
* буллит с использованием "*" - вложенный список с использованием "-" + ещё один вложенный список - ещё один пункт
Превратится в:
буллит с использованием "*"
вложенный список с использованием "-"
- ещё один вложенный список
ещё один пункт
- definition lists (quickref)
В отличие от остальных двух случаев, списки-определения стостоят из термина и определения этого термина. Формат списков-определений следующий:
what Списки-определения ассоциируют термин с определением. *how* Термин -- это однострочная фраза.Определение -- это один или несколько параграфов или текстовых элементов, с отступами относительно термина. Пустые строки между термином и определением не разрешены.
Превратится в:
- what
- Списки-определения ассоциируют термин с определением.
- how
- Термин -- это однострочная фраза.Определение -- это один или несколько параграфов или текстовых элементов, с отступами относительно термина. Пустые строки между термином и определением не разрешены.
Преформатирование (примеры)
(quickref)
Чтобы просто вставить кусок преформатированного текста, который-никто-не-будет-трогать, завершите предыдущий параграф "::". Перформатированный блок завершится, когда текст вернётся на уровень отступа, который был у параграфа предшествующего преформатированному блоку.
Пример:
Пробел, новые строки, пустые строки, и все виды разметок ( *такая* или \такая) в подобных блоках сохраняются. Внимание, я изменил отступ (но недостаточно)пример завершён
В результате получится:
Пример:
Пробел, новые строки, пустые строки, и все виды разметок ( *такая* или \такая) в подобных блоках сохраняются. Внимание, я изменил отступ (но недостаточно)пример завершён
Обратите внимание, что если параграф состоит только из "::", то он не отображается.
:: Это преформатированный текст, а последний параграф, состоящий из "::" --- удалён.
В результате:
Это преформатированный текст, а последний параграф, состоящий из "::" --- удалён.
Разделы
(quickref)
Чтобы разбить длинный текст на разделы, используйте заголовки разделов. Это строка текста(одно или несколько слов) с обрамлением: просто подчеркиванием, или отчеркиванием сверху и снизу, состоящим из минусов "-----", знаков равно "======", тильд "~~~~~~" или любых других неалфавитных символов: = - ` : ' " ~ ^ _ * + # < >, которые Вам нравятся. Подчеркивание отличается от отчеркивания сверху и снизу, состоящего из тех же символов. Подчеркивание/отчеркивание должны быт не корче самого заголовка. Будьте последовательны, така как одинаково обрамлённые разделы будут на одном уровне.
Часть 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)
Чтобы вставить в документ изображение, используйте директиву image. Например:
.. image:: images/biohazard.png
Результат:
images/biohazard.png --- это имя файла с изображением, которое надо включить в документ. На изображение не накладывается никаких ограничений(ни на формат, ни на размер, ни на что-либо ещё). Если изображение будет вставлять в HTML и есть желание указать дополнительную информацию, можно написать так:
Более подробную информацию см. в image directive documentation .
Что Дальше?
Это пособие для начинающих описывает наиболее широкоиспользуемые возможности reStructuredText, но их намного больше. Руководство пользователя Quick reStructuredText будет хорошим продолжением. За детальными подробностями стоит обратится к reStructuredText Markup Specification [1].
[1] | Если относительная ссылка не работает, попробуйте обратится к основному документу: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html. |