Садржај
Увод
Брзи старт

1. Брзи старт

Овде су дати примери писања појединих делова документа. Примери су често довољни да направите случну ствар. У случају да оно што вама треба не постоји у примерима или желите више детаља, погледајте следећа поглавља, у којима ћете вероватно наћи више информација.

1.1. Основе форматирања текста

За детљанији увид у форматирање погледајте овде

1.1.1. Форматирање текста

Примери форматираног текста: подебљан текст, искошен текст, истакнут текст, текст у експоненту и текст у индексу.

.rst кôд за форматирање текста

Примери форматираног текста: **подебљан текст**, *искошен текст*, ``истакнут текст``,
текст :sup:`у експоненту` и текст :sub:`у индексу`.

1.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\)

.rst кôд за формуле у тексту

- Множење вектора и бројева
  :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`

1.1.3. Издвојене формуле

Формула у једном реду

\[R = \sqrt{(x - x_0)^2 + (y - y_0)^2}\]

Формула у више редова, са поравнањем знака =:

Ако знамо да је \(x+y=3, xy=5\), онда је

\[\begin{split}\begin{align} \\ n &= x^2 y + x y^2\\ &= xy (x+y)\\ &= 5 \cdot 3\\ &= 15\\ \end{align}\end{split}\]

.rst кôд за издвојене формуле

Формула у једном реду

.. math::

    R = \sqrt{(x - x_0)^2 + (y - y_0)^2}

Формула у више редова, са поравнањем знака ``=``:

Ако знамо да је :math:`x+y=3, xy=5`, онда је

.. math::

    \begin{align} \\
    n &= x^2 y + x y^2\\
    &= xy (x+y)\\
    &= 5 \cdot 3\\
    &= 15\\
    \end{align}

1.1.4. Наслови

.rst кôд за наслове

Наслов првог реда
=================

Наслов другог реда
------------------

Наслов трећег реда
''''''''''''''''''
  • Ниво наслова је одређен редоследом првих појављивања ознака (прва ознака је наслов првог нивоа; не може се ставити наслов трећег реда у наслов првог реда)

  • Број карактера којима подвлачимо наслове мора бити једнак или већи броју карактера у наслову

  • За форматирање наслова могу се користити и карактери ......, ~~~~~~, ******, ++++++, ^^^^^^, #######

1.1.5. Листе

Листа нумерисана бројевима

  1. Први елемент листе

  2. Други елемент листе

  3. Трећи елемент листе

Листа нумерисана словима

  1. Први елемент листе

  2. Други елемент листе настављен (пазити на индентацију)

    Други пасус другог елемента

  3. Трећи елемент листе

.rst кôд за листе

Листа нумерисана бројевима

#. Први елемент листе
#. Други елемент листе
#. Трећи елемент листе

Листа нумерисана словима

a. Први елемент листе
#. Други елемент листе
   настављен (пазити на индентацију)

   Други пасус другог елемента
#. Трећи елемент листе

1.1.6. Угнежђене листе

  1. Први елемент нумерисане листе

  2. Други елемент нумерисане листе

  1. први елемент угнежђене нумерисане листе

  2. други елемент угнежђене нумерисане листе

  3. трећи елемент

  1. листа трећег нивоа

  2. следећи елемент

  • друга листа трећег нивоа, ненумерисана

  • следећи елемент ненумерисане листе

  1. Трећи елемент нумерисане листе (експлицитно нумерисан, у противном почиње бројање поново од 1)

    Други пасус трећег елемента.

  2. Четврти елемент

.rst кôд за угнежђене листе

 #. Први елемент нумерисане листе
 #. Други елемент нумерисане листе

   a. први елемент угнежђене нумерисане листе
   #. други елемент угнежђене нумерисане листе
   #. трећи елемент

     i. листа трећег нивоа
     #. следећи елемент

     - друга листа трећег нивоа, ненумерисана
     - следећи елемент ненумерисане листе

 3. Трећи елемент нумерисане листе (експлицитно
    нумерисан, у противном почиње бројање поново од 1)

    Други пасус трећег елемента.
#. Четврти елемент

1.1.7. Дефиниционе листе

Дефинициона листа је списак појмова и њихових дефиниција.

Појам 1

Дефиниција 1.

Појам 2

Дефиниција 2, параграф 1.

Дефиниција 2, параграф 2.

Појам 3ближе одређење

Дефиниција 3.

Појам 4ближе одређење 1ближе одређење 2

Дефиниција 4.

.rst за дефиниционе листе

Појам 1
    Дефиниција 1.

Појам 2
    Дефиниција 2, параграф 1.

    Дефиниција 2, параграф 2.

Појам 3 : ближе одређење
    Дефиниција 3.

Појам 4 : ближе одређење 1 : ближе одређење 2
    Дефиниција 4.

1.1.8. Линкови

Примери разних врста линкова:

Екстерни релативан линк: ../02_basics/01_formatting.html
Екстерни релативан линк са текстом: Форматирање
Екстерни апсолутан линк: https://petlja.org/
Екстерни апсолутан линк са текстом: Петља
Имплицитан интерни линк (ка наслову): Линкови
Експлицитан интерни линк (ка лабели): разне_врсте_линкова

.rst за линкове

Примери разних врста линкова:

.. _разне_врсте_линкова:

| Екстерни релативан линк: `<../02_basics/01_formatting.html>`_
| Екстерни релативан линк са текстом: `Форматирање <../02_basics/01_formatting.html>`_
| Екстерни апсолутан линк: `<https://petlja.org/>`_
| Екстерни апсолутан линк са текстом: `Петља <https://petlja.org/>`_
| Имплицитан интерни линк (ка наслову): `Линкови`_
| Експлицитан интерни линк (ка лабели): разне_врсте_линкова_

1.1.9. Табеле

Табела помоћу графичких симбола:

Ред \ Колона

Колона A

Колона B

Колона C

Ред 1

Поље A1

Поље B1

Поље C1

Ред 2

Поље A2

Поље B2

Поље C2

Ред 3

Поље A3

Поље B3

Поље C3

Ред 4

Поље A4

Поље B4

Поље C4

.rst кôд за „нацртану” табелу

Табела помоћу графичких симбола:

.. table::
    :align: left
    :widths: 10, 20, 20, 20

    ======================   ==============  ==============   ==============
     Ред \\ Колона            Колона ``A``    Колона ``B``     Колона ``C``
    ======================   ==============  ==============   ==============
     **Ред 1**                Поље ``A1``     Поље ``B1``      Поље ``C1``
     **Ред 2**                Поље ``A2``     Поље ``B2``      Поље ``C2``
     **Ред 3**                Поље ``A3``     Поље ``B3``      Поље ``C3``
     **Ред 4**                Поље ``A4``     Поље ``B4``      Поље ``C4``
    ======================   ==============  ==============   ==============

Табела као вредности раздвојене зарезима (csv)

CSV Табела

Ред Колона

Колона A

Колона B

Колона C

Ред 1

Поље A1

Поље B1

Поље C1

Ред 2

Поље A2

Поље B2

Поље C2

Ред 3

Поље A3

Поље B3

Поље C3

Ред 4

Поље A4

Поље B4

Поље C4

.rst кôд за CSV табелу

Табела као вредности раздвојене зарезима (*csv*)

.. csv-table:: CSV Табела
    :header: Ред \\ Колона, Колона ``A``, Колона ``B``, Колона ``C``
    :widths: 10, 20, 20, 20
    :align: left

    **Ред 1**, Поље ``A1``, Поље ``B1``, Поље ``C1``
    **Ред 2**, Поље ``A2``, Поље ``B2``, Поље ``C2``
    **Ред 3**, Поље ``A3``, Поље ``B3``, Поље ``C3``
    **Ред 4**, Поље ``A4``, Поље ``B4``, Поље ``C4``

1.2. Посебни параграфи

1.2.1. Директива topic

Директивом topic уоквирујемо део документа.

Директива topic

Овако изгледа директива topic. У њу стављамо дефиницију појма, или други важан текст.

Кôд за директиву topic

.. topic:: Директива topic

    Овако изгледа директива ``topic``. У њу стављамо дефиницију појма, или други важан текст.

1.2.2. Директива infonote

Директивом infonote уоквирујемо део документа.

Директива infonote

Овако изгледа директива infonote. У њу стављамо напомену, резиме лекције или сличан текст који треба да буде истакнут.

.. infonote:: Директива infonote

    Напомена, резиме лекције, или сличан текст,
    који треба да буде истакнут.

1.2.3. Директива questionnote

Директивом questionnote уоквирујемо део документа.

Директива questionnote

Овако изгледа директива questionnote. У њу стављамо текст питања, уз који могу да се користе слике, делови програмског кода и слично.

.. questionnote:: Директива questionnote

    Овако изгледа директива ``questionnote``. У њу стављамо текст питања, уз који могу да се користе
    слике, делови програмског кода и слично.

1.2.4. Директива reveal

Директиву reveal користимо када желимо да неки елемент буде доступан тек када се кликне на одређено дугме. На овој страници, за показивање .rst кôда псле клика на дугме користимо управо директива reveal. У општем облику ова директива изгледа овако:

Директива reveal

Неки елемент који желимо да буде приказан тек када се кликне на дугме. То може бити текст или друга директива.

.. reveal:: reveal_primer
    :showtitle: Назив дугмета за откривање
    :hidetitle: Назив дугмета за сакривање

    Неки елемент који желимо да буде приказан тек
    када се кликне на дугме. То може бити текст или друга директива.

1.3. Слике

1.3.1. Укључивање слике

Ако атрибут align има вредност left или right, текст који следи налазиће се поред слике. Да се текст не би простирао поред слике, треба писати :align: center. Често се задаје или ширина или висина (нпр. :height: 200 px), а ретко оба јер то може да деформише слику.

текст који се приказује кад се не прикаже слика

Кôд за приказ слике:

.. image:: ../../_images/emotikon.png
    :height: 100px
    :alt: алтернативни текст
    :align: right

1.3.2. Укључивање слике са текстом

Код слике са текстом испод ње се поразумева да је центрирана (може а не мора да се напише :align: right).

насмејано лице

Слика насмејаног лица

која постоји и као Unicode карактер

Кôд за приказ слике са текстом:

.. figure:: ../../_images/emotikon.png
    :height: 100px
    :alt: насмејано лице

    Слика насмејаног лица

    која постоји и као *Unicode* карактер

1.3.3. Укључивање галерије слика

1.4. Садржај

Садржај текуће стране се добија директивом contents. Овако изгледа садржај текуће стране:

Кôд за приказ приказ садржаја стране:

.. contents:: Садржај
    :depth: 2

Вредност атрибута :depth: одређује ниво наслова који је укључен у садржај (на почетку ове стране је употребљена иста директива са дубином 3).


Садржај целог курса или приручника добија се директивом toctree. Изглед садржаја можете да видите на почетној страни. Овде не можемо да поновимо приказ комплетног садржаја, јер бисмо на тај начин направили кружне референце у садржају, па овај документ не би могао да буде формиран.

Кôд за приказ садржаја са почетне стране:

.. toctree::
    :maxdepth: 2
    :caption: Садржај
    :numbered:

    ../01_quick_start/01_quick_start.rst
    ../02_basics/01_formatting.rst
    ../02_basics/02_directives.rst
    ../02_basics/03_formating_directives_quiz.rst
    ../02_basics/04_questions.rst
    ../02_basics/05_quiz_example.rst
    ../03_active_code/01_active_code.rst
    ../03_active_code/02_other_languages.rst
    ../03_active_code/03_simanim.rst
    ../03_active_code/04_p5js.rst
    ../03_active_code/05_karel.rst
    ../00_rst_petljadoc_intro/01_intro.rst

У оквиру директиве toctree наводимо релативне путање од фајла у коме се налази садржај ка осталим фајловима који се налазе у нашем _sources фолдеру.

1.5. Питања

Овде су приказани основни облици свих питања. За детаљније опције и примере употребе за свако питање погледајте овај линк

1.5.1. Понуђени одговори -mchoice

    Q-1: Колико је 1+1?

  • 1
  • Не, то је премало
  • 2
  • Тако је!
  • 3
  • Не, то је превше

Кôд за приказ abc питања:

.. mchoice:: jedinstveni_id_abc_pitanja
    :answer_a: 1
    :answer_b: 2
    :answer_c: 3
    :feedback_a: Не, то је премало
    :feedback_b: Тако је!
    :feedback_c: Не, то је превше
    :correct: b

    Колико је 1+1?

1.5.2. Понуђени одговори -mchoice - multiple_answers

    Q-2: Који од ових бројева су парни?

  • 4
  • неки стринг
  • 9
  • неки стринг
  • 49
  • неки стринг
  • 94
  • неки стринг

Кôд за приказ abc питања са више одговора:

.. mchoice:: jedinstveni_id_abc_pitanja_sa_vise_odg
    :multiple_answers:
    :answer_a: 4
    :answer_b: 9
    :answer_c: 49
    :answer_d: 94
    :feedback_a: неки стринг
    :feedback_b: неки стринг
    :feedback_c: неки стринг
    :feedback_d: неки стринг
    :correct: a, d

    Који од ових бројева су парни?

1.5.3. Питања са повезивањем појмова - dragndrop

    Q-3: Повежи познате математичке константе са њиховим вредностима.
  • 3.14159
  • pi
  • 2.71828
  • e
  • 1.61803
  • fi

Кôд за приказ питања са упаривањем:

.. dragndrop:: jedinstveni_id_pitanja_uparivanja
    :match_1: 3.14159 ||| pi
    :match_2: 2.71828 ||| e
    :match_3: 1.61803 ||| fi

    Повежи константе са њиховим вредностима.

1.5.4. Питања са ређањем појмова - parsonsprob

         Q-4: Поређај бројеве од најмањег до највећег0.19
0.2
0.213
0.32
0.4
        

Кôд за приказ питања са ређањем:

.. parsonsprob:: jedinstveni_id_pitanja

    Поређај бројеве од најмањег до највећег
    -----
    0.19
    0.2
    0.213
    0.32
    0.4

1.5.5. Питања са допуњавањем - fillintheblank

Како се зове женка јелена?

Одговор:

Кôд за приказ питања са уписивањем - у овој имплементацији се прихватају одговори ћирилицим и латиницом (па и ошишаном латиницом), а почетно слово може да буде мало или велико. Посебан коментар је дат за нетачан одгвор срна.

.. fillintheblank:: jedinstveni_id_pitanja_sa_upisivanjem

    Како се зове женка јелена?

    Одговор: |blank|

    - :^\s*[Кк]ошута|[Kk]o[šs]uta\s*$: Одговор је тачан.
      :^\s*[Сс]рна|[Ss]rna\s*$: Не, то је женка срндаћа.
      :x: Одговор није тачан.

1.5.6. Питања у квизу - quizq

Директива quizq служи да од директиве са питањем (било којег типа) и других директива (слике, кôд итд.) направи једну целину.

У квизовима треба обавезно користити ову директиву за свако питање, без обзира на то да ли се питање састоји од једне или више компоненти.

Пример питања за квиз:

Питање може да садржи слику:

../_images/emotikon.png

а може да садржи и кôд:

print("2" + "2")

    Q-5: Шта исписује претходни програм?

  • "22"
  • 4
  • 22

Приказ за квиз:

.. quizq::

    Питање може да садржи слику:

    .. image:: ../../_images/emotikon.png
        :align: center

    а може да садржи и кôд:

    .. code-block:: python

        print("2" + "2")

    .. mchoice:: neki_id_1278
        :answer_a: "22"
        :answer_b: 4
        :answer_c: 22
        :correct: c

        Шта исписује претходни програм?

1.6. Видео - ytpopup

Id видеа представља 11 карактера након секвенце ?=v у линку видеа. Тим Петље касније пребацује ауторски видео са ју-тјуба на потрал Петље.

Кôд за приказ видеа:

.. ytpopup:: tIP6veneYsI
    :width: 640
    :height: 480
    :align: center

1.7. Activecode

Ово је основни изглед активне компоненте (без додатних опција)

Кôд за приказ activecode компоненте

.. activecode:: jedinstveni_id

     print("Здраво")
     a = 2
     b = 2
     print('Резултат је', a+b)

Следе кратки описи подешавања компоненте activecode

1.7.1. Додавање и склањање дугмади

Жељени ефекат (са линком на детаље)

Начин укратко

Да склониш дугме за дебаговање

додај атрибут :nocodelens:

(кôд постаје само пример за читање)
додај атрибут :passivecode: true

(извршава скривено решење, тј.
показује шта програм треба да ради)
додај атрибут :playtask:

видљиви кôд
====
скривено решење
додај атрибут :includexsrc: са путањом
додај атрибут :help:
наведи кôд који представља помоћ

Да додаш дугме „Ископирај”

додај атрибут :enablecopy:

(аутоматски тестира програм на више примера)
види детаљније упутство

1.7.2. Специјално понашање скрипта

Жељени ефекат (са линком на детаље)

Начин укратко

Да почетак и крај програма не могу да се мењају

додај специјалне коментаре у скрипт

# -- acsection: general-init --
# -- acsection: var-init --
фиксни почетак скрипта
# -- acsection: main --
део за едитовање
# -- acsection: after-main --
фиксни крај скрипта

Да се програм изврши одмах по учитавању стране

додај атрибут :autorun:

Да се програм извршава у модалном прозору (преко текста)

додај атрибут :modaloutput:

Надовежи се на претходни activecode скрипт (тј. укључи претходни скрипт, али скривен)

додај атрибут :include: id_prethodnog

1.7.3. Укључивање програма из фајлова са изворним кодом

Жељени ефекат (са линком на детаље)

Начин укратко

Да преузмеш кôд за приказ

додај атрибут :includesrc: са путањом
додај атрибут :includehsrc: са путањом
додај атрибут :playtask:
опционо, напиши почетни, видљиви кôд
ако у фајлу имаш решење са означеним фиксним деловима
корисник ће видети само фиксне делове, а може да изврши (делимично скривено) решење
додај атрибут :includexsrc: са путањом
додај атрибут :playtask:
додај атрибут :enablecopy:
(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+