1. Форматирање текста¶
Садржај
Поменули смо да је reStructuredText језик за означавање (markup language). То значи да се у RST фајловима текст форматира додавањем карактера попут -
, *
, |
и других, који имају специјално значење у овом језику. На тај начин се у reST означавају наслови, хиперлинкови, текст који треба приказати пдебљано (bold) или искошено (italic), листе, табеле и друго.
1.1. Искошена и подебљана слова¶
За истицање делова обичног текста користимо подебљана слова и искошена слова. Подебљана слова добијамо тако што део текста окружимо са по две звездице, док искошена слова добијамо користећи по једну звездицу на почетку и на крају. Ево како то изгледа на примеру:
HTML |
изворни reST кôд |
---|---|
овај текст је искошен |
|
овај текст је подебљан |
|
При коришћењу звездица ради добијања подебљаних или искошених слова треба имати на уму следећа ограничења:
Део текста који је означен не може да почне нити да се заврши размаком.
Не постоји директан начин да се ове ознаке угнезде (за добијање подебљаних искошених слова било би потребно навести име одговарајуће CSS класе).
Ознаке треба да буду одвојене од окружујућег текста знаком који није слово. Ово значи да када желимо да означимо само део једне речи, треба да користимо обрнуту косу црту
\
(backslash), коју у овом контексту зовемо и escape character.
Следе примери у којима је битно да се придржавамо горе наведених правила, са правилним форматирањем и неким честим грешкама (које настају због непоштовања поменутих правила).
жељени резултат у HTML |
исправан изворни кôд |
изворни кôд са грешком |
ефекат кода са грешком |
---|---|---|---|
да |
|
|
(синтаксна грешка) |
да не да |
|
|
да ** не **да |
закуца |
|
|
(синтаксна грешка) |
закуцам |
|
|
за**куца**м |
1.2. Дословно/истакнуто исписивање¶
Када желимо да низ симбола представимо тачно онако како је написан (као у другој и трећој колони претходне табеле), користимо по два обрнута наводника. На пример, да би у HTML документу текст изгледао овако
, потребно је у RST фајлу написати га ``овако``
.
На овај начин треба да означавамо делове кода које цитирамо у тексту (нпр. име променљиве или функције о којој је реч, неки израз преузет из кода, итд.).
1.3. Наслови¶
Наслови се пишу подвучено. У Петљиним документима, наслове првог реда (нивоа, ранга) подвлачимо знаком =
, наслове другог реда знаком -
, а трећег реда знаком '
(апостроф, тј. обичан једноструки наводник). Подвлака не сме да буде краћа од наслова (а уобичајено је да буде исте дужине).
Наслов првог реда
=================
Наслов другог реда
------------------
Наслов трећег реда
''''''''''''''''''
При означавању наслова треба имати на уму ова правила, која важе за reST уопште:
reST формат допушта подвлачење наслова и другим карактерима (на пример
......
,~~~~~~
,******
,++++++
,^^^^^^
)Сфинкс проглашава наслове за наслове првог, другог и трећег реда оним редоследом којим наилази на њих, у сваком фајлу посебно.
Последица ових правила је да је чак могуће да у сваком изворном фајлу употребимо различите ознаке за поједине наслове, али то се сматра за лошу праксу. Препорука је, наравно, да се ознаке уједначе кроз све фајлове. У том смислу, Петља је као свој интерни стандард усвојила употребу карактера ======
, ------
и ''''''
редом за означавање наслова првог, другог и трећег реда, као што је већ речено.
Друга важна последица је да због поменутих особина језика reST и Сфинкса није могуће прескочити, на пример, наслов другог реда, а поставити наслов трећег реда.
Још једно важно правило приликом форматирања наслова је да број карактера које користимо за подвлачење наслова и поднаслова не сме да буде мањи од броја карактера у наслову. На пример ако наш наслов има шест карактера, треба да га подвучемо са шест знакова =
.
1.4. Прелом текста, белине и прелази¶
У RST фајловима параграфи се раздвајају празним редом (а више празних редова има исти ефекат као и један). Уколико се у RST фајлу налази више редова текста без празних редова између, они ће бити приказани као један ред. На пример, овакав изворни кôд
Сав овај текст
ће бити приказан
у једном реду
у HTML документу има следећи изглед:
Сав овај текст ће бити приказан у једном реду
Када желимо да део текста буде преломљен тачно на одређеним местима, а да не убацујемо празан ред, можемо да употребимо симбол |
, тако што га ставимо на на почетак сваког реда у том делу текста. На тај начин добијамо жељени прелом без прореда у приказу. На пример, ако у RST фајлу напишемо:
| Пера Перић
| Улица примера 17а
| 28030 Примерград
у HTML документу добијамо
Као што и пример сугерише, овај начин форматирања је погодан за навођење адреса, а може да се користи и за навођење стихова и других текстова где је распоред редова битан.
Слично претходном, стављајући само симбол |
у параграф, добијамо већи проред (због празног параграфа).
Текст
|
Наставак текста
Ево како се овај изворни кôд види у HTML документу:
Текст
Наставак текста
Промена теме (прелаз са једне теме на другу, транзиција) се често означава водоравном цртом, коју добијамо помоћу четири или више симбола ~
(могућа је употреба и других симбола у ову сврху). На пример, кôд
Крај једне теме.
~~~~
Почетак следеће теме.
се овако рендерује у HTML документу:
Крај једне теме.
Почетак следеће теме.
1.5. Линкови (хипервезе)¶
Линкови могу да буду екстерни и интерни.
Екстерни линкови воде на друге HTML странице, на истом или другом сајту. Линк ка другој страници на истом сајту може да буде релативан или апсолутан, док линк ка страници на другом сајту мора да буде апсолутан (тј. да садржи пуну адресу).
Интерни линкови у reST коду могу да буду имплицитни и експлицитни. Имплицитни линкови су наслови одељака (секција) и они се постављају навођењем наслова између обрнутих наводника.
Да бисмо поставили експлицитан линк на неко место у reST коду, прво треба да обележимо то место, тј. да поставимо лабелу у reST кôд. Једна таква лабела је постављена непосредно изнад овог параграфа, тако што је у RST фајлу написано .. _експлицитни_линкови:
. Након тога може да се постави линк ка обележеном месту, односно ка тој лабели.
Следе примери свих поменутих врста линкова (обратите пажњу на завршну доњу црту).
Опис |
Изглед у HTML документу |
изворни reST кôд |
---|---|---|
Екстерни релативан линк (на следећу страну) |
|
|
Екстерни релативан линк са текстом |
|
|
Екстерни апсолутан линк |
|
|
Екстерни апсолутан линк са текстом |
|
|
Имплицитан интерни линк (ка наслову) |
|
|
Експлицитан интерни линк (ка лабели) |
|
1.6. Математичке формуле¶
Математичке формуле се пишу између обрнутих апострофа `
, којима претходи ознака :math:
. Саме формуле се пишу у нотацији језика TeX. Као пример погледајте неколикјо формула и један кратак текст у изворном облику, а затим њихов приказ у HTML документу.
- Множење вектора и бројева
:math:`\overrightarrow{i} \times \overrightarrow{j} = \overrightarrow{k}`,
:math:`\overrightarrow{OA} \times \overrightarrow{OB} = \overrightarrow{OC}`,
:math:`2 \cdot 3 = 6`
- Експоненти :math:`2^{10} = 1024`
- Индекси :math:`H_2SO_4`
- Грчка слова, количник, степен, текст у формули
:math:`\alpha = {\pi \over 2} = 90^{\circ} \Rightarrow \Delta
ABC \text{ је правоугли} \Rightarrow A_1A = A_1B = A_1C`
- Разлика између малих и великих слова, неједнакост :math:`\Sigma \neq \sigma`
- функције, приближна једнакост :math:`\sin{\pi} \approx 3.14159`,
:math:`\sqrt{2} \approx 1.4142`,
- Сложенија формула :math:`\sqrt{(x - x_0)^2 + (y - y_0)^2} \leq r`
Растојање између тачака :math:`A` и :math:`B` у равни се израчунава по формули
:math:`d(A, B) = \sqrt{(B_x - A_x)^2 + (B_y - A_y)^2}`, која се добија на основу
Питагорине теореме.
Ако у програму ``a`` и ``b`` представљају уређене парове координата ``[ax, ay]``
и ``[bx, by]``, онда се израз :math:`\sqrt{(b_0 - a_0)^2 + (b_1 - a_1)^2}` у
програму записује као ``math.sqrt((b[0] - a[0]) ** 2 + (b[1] - a[1]) ** 2)``.
Множење вектора и бројева \(\overrightarrow{i} \times \overrightarrow{j} = \overrightarrow{k}\), \(\overrightarrow{OA} \times \overrightarrow{OB} = \overrightarrow{OC}\), \(2 \cdot 3 = 6\)
Експоненти \(2^{10} = 1024\)
Индекси \(H_2SO_4\)
Грчка слова, количник, степен, текст у формули \(\alpha = {\pi \over 2} = 90^{\circ} \Rightarrow \Delta ABC \text{ је правоугли} \Rightarrow A_1A = A_1B = A_1C\)
Разлика између малих и великих слова, неједнакост \(\Sigma \neq \sigma\)
функције, приближна једнакост \(\sin{\pi} \approx 3.14159\), \(\sqrt{2} \approx 1.4142\),
Сложенија формула \(\sqrt{(x - x_0)^2 + (y - y_0)^2} \leq r\)
Растојање између тачака \(A\) и \(B\) у равни се израчунава по формули \(d(A, B) = \sqrt{(B_x - A_x)^2 + (B_y - A_y)^2}\), која се добија на основу Питагорине теореме.
Ако у програму a
и b
представљају уређене парове координата [ax, ay]
и [bx, by]
, онда се израз \(\sqrt{(b_0 - a_0)^2 + (b_1 - a_1)^2}\) у
програму записује као math.sqrt((b[0] - a[0]) ** 2 + (b[1] - a[1]) ** 2)
.
Формуле могу да се пишу и издвојене из текста, у засебном реду, или више редова, поравнато. За то се користи директива math.
1.7. Експонент и индекс¶
Да бисмо неки текст написали као експонент (superscript) или као индексирани текст (subscript) користимо ознакe :sup:
(за експоненте) и :sub:
(за индексирани текст) након којих следи текст унутар обрнутих апострофа `
који ће бити приказан као индексирани текст или експонент.
У овој реченици употребићемо индексирани текст. Овај :sup:`пример` показује како изгелда експонент,
а овај :sub:`пример` показује како изгледа индекс.
Даје овакву реченицу:
У овој реченици употребићемо индексирани текст. Овај пример показује како изгелда експонент, а овај пример показује како изгледа индекс.
1.8. Листе¶
reST формат подржава више врста листи, а овде ће бити описане ненумерисане, нумерисане и дефиниционе листе.
1.8.1. Ненумерисане листе¶
Изворни кôд за ненумерисану листу изгледа овако:
- Ово је ненумерисана листа од четири ставке.
- Друга ставка користи две линије
изворног кода (обратите пажњу на индентацију)
- Трећа ставка је кратка.
- Четврта ставка показује да се празни редови између ставки игноришу.
Горе наведени кôд производи овакав изглед у HTML документу:
Ово је ненумерисана листа од четири ставке.
Друга ставка користи две линије изворног кода (обратите пажњу на индентацију)
Трећа ставка је кратка.
Четврта ставка показује да се празни редови између ставки игноришу.
Уместо цртице (-
), може да се користи и другачија ознака за ставке листе (булет), нпр. звездица (*
), плус (+
) и друге. У Петљиним документима се по правилу користи цртица.
Уколико желимо да почнемо ред текста цртицом а да то не буде протумачено као ставка ненумерисане листе, испред цртице треба ставити знак \
(обрнута коса црта, backslash).
1.8.2. Нумерисане листе¶
За аутоматску нумерацију у RST фајловима се користи симбол #
(тараба, hash), на пример овако:
#. Ово је нумерисана листа
#. Она такође има две ставке
#. Празни редови између ставки се игноришу и код нумерисане листе
#. Без обзира на број празних редова, нумерација се наставља и све ставке се надовезују у једну листу
Горе наведени кôд се рендерује у следећи HTML:
Ово је нумерисана листа
Она такође има две ставке
Празни редови између ставки се игноришу и код нумерисане листе
Без обзира на број празних редова, нумерација се наставља и све ставке се надовезују у једну листу
Уместо тарабе, могу да се користе и бројеви 1, 2, 3… експлицитно.
Листа може да буде нумерисана и римским бројевима или словима. Довољно је прву ставку листе означити неким од симбола A
, a
, I
, i
.
На пример, следећи reST кôд
i. Ово је нумерисана листа
#. Прва ставка је означена римским бројем
#. Остале ставке су означене симболом ``#``
#. У приказу се симболи ``#`` редом замењују следећим бројевима
даје овакав изглед у HTML документу:
Ово је нумерисана листа
Прва ставка је означена римским бројем
Остале ставке су означене симболом
#
У приказу се симболи
#
редом замењују следећим бројевима
1.8.3. Дефиниционе листе¶
Дефинициона листа је списак појмова и њихових дефиниција.
Појам 1
Дефиниција 1.
Појам 2
Дефиниција 2, параграф 1.
Дефиниција 2, параграф 2.
Појам 3 : ближе одређење
Дефиниција 3.
Појам 4 : ближе одређење 1 : ближе одређење 2
Дефиниција 4.
даје овакав изглед у HTML документу:
- Појам 1
Дефиниција 1.
- Појам 2
Дефиниција 2, параграф 1.
Дефиниција 2, параграф 2.
- Појам 3ближе одређење
Дефиниција 3.
- Појам 4ближе одређење 1ближе одређење 2
Дефиниција 4.
1.8.4. Угнежђене листе¶
Листа може да се уметне (угнезди) у другу листу. При томе треба водити рачуна да се уметнута листа одвоји од надређене листе празним редовима испод и изнад.
Тако, овај изворни кôд
- прва ставка
- друга ставка
- прва под-ставка друге ставке
- друга под-ставка друге ставке
- трећа ставка
производи следећи HTML:
прва ставка
друга ставка
прва под-ставка друге ставке
друга под-ставка друге ставке
трећа ставка
Код уметања нумерисаних листи, свака подлиста треба да почне експлицитном нумерацијом. На пример, ако хијерархијску листу напишемо овако:
1. Текст ставке 1
a) Текст ставке 1.a
#) Текст ставке 1.b
#) Текст ставке 1.c
#. Текст ставке 2
a) Текст ставке 2.a
#) Текст ставке 2.b
она ће у HTML документу да изгледа овако:
Текст ставке 1
Текст ставке 1.a
Текст ставке 1.b
Текст ставке 1.c
Текст ставке 2
Текст ставке 2.a
Текст ставке 2.b
Могуће је и комбиновати листе различитих типова. У следећем примеру комбиноване су дефиниционе листе са ненумерисаним листама (на више нивоа).
Изворни кôд у reST формату:
Геолошки периоди (бројеви представљају време од почетка периода у милионима година):
- Палеозоик
- Камбријум
542 - животиње са љуштуром
- Ордовицијум
488 - висок ниво мора, разливање океана
- Силур
444 - алге, шкољке, пужеви, примитивне папрати, први кичмењаци
- Девон
415 - корали, папрати, рибе, претече водоземаца (дводихалице)
- Карбонифер/Мисисипијум
360
- Карбонифер/Пенсилванијум
318 - велики инсекти, први тетраподи
- Пермијум
300 - водоземци, први гмизавци
- Мезозоик
- Тријас
251 - диносауруси
- Јура
200 - диносауруси, прве птице, црногорично дрвеће, дрволике папрати
- Креда
145.5 - диносауруси
- Кенозоик
- Терцијар
- Палеоцен
65 - крокодили, страшне птице (гасторнис), кљунари, торбари
- Еоцен
56 - мали сисари, појава примата
- Олигоцен
34 - рани сисари, већи од данашњих
- Миоцен
23 - трава, сисари (вук, коњ, дабар, јелен, камила, кит), птице (врана, патка, сова)
- Плиоцен
5,3 - Аустралопитекус (један од првих хоминида)
- Квартар
- Плезитоцен
1.8 - еволуција човека, изумирање мамута и сабљозубих тигрова
- Холоцен
0.01 - средње и млађе камено доба
Ова дугачка листа се овако приказује у HTML документу:
Геолошки периоди (бројеви представљају време од почетка периода у милионима година):
Палеозоик
- Камбријум
542 - животиње са љуштуром
- Ордовицијум
488 - висок ниво мора, разливање океана
- Силур
444 - алге, шкољке, пужеви, примитивне папрати, први кичмењаци
- Девон
415 - корали, папрати, рибе, претече водоземаца (дводихалице)
- Карбонифер/Мисисипијум
360
- Карбонифер/Пенсилванијум
318 - велики инсекти, први тетраподи
- Пермијум
300 - водоземци, први гмизавци
Мезозоик
- Тријас
251 - диносауруси
- Јура
200 - диносауруси, прве птице, црногорично дрвеће, дрволике папрати
- Креда
145.5 - диносауруси
Кенозоик
Терцијар
- Палеоцен
65 - крокодили, страшне птице (гасторнис), кљунари, торбари
- Еоцен
56 - мали сисари, појава примата
- Олигоцен
34 - рани сисари, већи од данашњих
- Миоцен
23 - трава, сисари (вук, коњ, дабар, јелен, камила, кит), птице (врана, патка, сова)
- Плиоцен
5,3 - Аустралопитекус (један од првих хоминида)
Квартар
- Плезитоцен
1.8 - еволуција човека, изумирање мамута и сабљозубих тигрова
- Холоцен
0.01 - средње и млађе камено доба