Preparando Documentos (Executáveis) com o Adessowiki

Os documentos do Adessowiki são criados através de uma linguagem de marcação denominada reST. Esta linguagem é baseada no reStructuredText, parte do projeto Docutils, com extensões específicas para o Adessowiki. Nesta página apresentamos estas extensões.

As extensões ao reStructuredText permitem que o documento contenha:

  • código Python executável
  • código Python para criação de módulos reusáveis
  • código C/C++ para criação de módulos reusáveis
  • equações
  • wiki links

Execução de Código Python

A inserção de código Python na página se dá através da diretiva .. code python. Esta diretiva permite a execução de código Python no momento em que a página HTML é criada e a inclusão no documento de imagens e textos criados pelo código. O código é executado por um processo separado que chamamos de Sandbox de Execução. A execução se dá em um ambiente controlado no qual se impõe diversas restrições.

Veja mais detalhes em Ajuda:code_python

Segue um exemplo:

.. code:: python
    :show_code: yes
    :show_output: yes
    :show_images: yes
    :img_width: 320
    :img_cols: 2
    :img_texdpi: 120
    :title: Imagens: (a) original e (b) invertida.

    import ia870

    fpath = 'CPC9941.bmp'
    img0 = adreadgray(fpath)

    adshow(img0, title='(a)')
    adshow(ia870.ianeg(img0), title='(b)')

    print 'Image shape is', img0.shape

E o resultado da execução:

1. import ia870
2. 
3. fpath = 'CPC9941.bmp'
4. img0 = adreadgray(fpath)
5. 
6. adshow(img0, title='(a)')
7. adshow(ia870.ianeg(img0), title='(b)')
8. 
9. print 'Image shape is', img0.shape
Image shape is (240, 640)

(a)

(b)

Imagens: (a) original e (b) invertida.

Equações em Latex

Em sua modalidade latex, a única implementada atualmente, permite a inserção de equações através de sua definição em LaTeX. Existe ainda um markup in-line para a inserção de equações in-line. Um exemplo:

Esta é uma equação in-line: :eq:`\Omega = \Psi`. A diretiva é usada a seguir.

.. equation:: latex
    :dpi: 120

    f \ is \ lower \ complete  \Leftrightarrow \forall p \in \mathcal{D}_f,
    \forall p' \in N_\mathcal{G}(p), f(p') \geq f(p) \Rightarrow p \in RMIN(f)

Esta é uma equação in-line: . A diretiva é usada a seguir.

Atenção: Como toda diretiva no Adessowiki, há necessidade de se pular uma linha após a diretiva Equation e seus parâmetros.

Dois parâmetros controlam a resolução da imagem gerada:

:dpi:
dot-per-inch para blocos de equações
:idpi:

dot-per-inch para equações inline. Este parâmetro pode ser ajustado através de uma diretiva equation anterior à ocorrência do inline, como neste exemplo:

.. equation:: latex
    :idpi: 200

Esta é uma equação in-line: :eq:`\Omega = \Psi`.

Esta é uma equação in-line: .

Uma dica é utilizar o facilidade de escrever equações Latex online: http://www.codecogs.com/latex/eqneditor.php

Ligações wiki

Ligações wiki podem ser precedidas da sequência opcional :link: seguido de uma cadeia de caracteres delimitadas pelo sinal de crase. A primeira palavra após a crase será o lugar para onde a ligação é feita e o resto é o texto que aparece sobre a ligação.

Exemplo, seja uma ligação para a página do youtube:

:link:`http://www.youtube.com Página do Youtube`

fica como Página do Youtube

A notação completa para se especificar ligações para uma página dentro do adessowiki é:

:link:`namespace:título Texto para o link`

que pode ser simplificada para:

`namespace:título Texto para o link`

Exemplo, seja uma ligação para a página o exemplo do uso de anexos no namespace Ajuda:

`Ajuda:attach-example Exemplo de uso de anexos`

fica como: Exemplo de uso de anexos

Quando a página a ser ligada está no mesmo namespace, este pode ser omitido. Por exemplo uma ligação para acima como esta neste namespace, ela pode ser omitiva:

`attach-example Exemplo de uso de anexos`

fica como: Exemplo de uso de anexos

Quando a ligação é para a página principal de um namespace, utiliza-se o nome MainPage para a página, assim:

`Ajuda:MainPage Página Principal`

ficando assim: Página Principal do namespace Ajuda

Ligações para anexos

Links para anexos de páginas são especificados com uso do símbolo !, assim:

`namespace:pagina!anexo.png`