forked from otaviobp/mc910-proj
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
37 lines (33 loc) · 2.99 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Grupo 18
061358 - Gustavo Serra Scalet
063462 - Otávio Busatto Pontes
Usamos para gerar o lexer e parser a ferramenta PLY, que usa a linguagem de programação Python. Implementamos um parser que trata todas as situações ilustradas no exemplo.cpl colocado no site da disciplina, exibindo uma página de notícias semelhante a página colocada no site da disciplina. Parseamos um pouco do formato do WIKI, sendo as tags de título, recuo, link visualizáveis.
Para isso criamos 2 parsers. Um que trata o arquivo cpl, independente da formatação WIKI. E outro que trata a formatação WIKI em uma string. A vantagem dessa abordagem é que caso se deseje usar o cpl com outro tipo de formatação de textos isso é possível. E o mesmo ocorre se quisermos usar o parser de WIKI para alguma outra aplicação.
Para exibir a notícia tomamos o seguinte padrão: as notícias são exibidas na ordem que aparecem em structure e são exibidas nas colunas indicadas no colchete do item. Caso a coluna esteja ocupada ou então seja menor que a coluna da notícia anterior, uma nova linha é criada. Quando existe um campo text no content da notícia, criamos um link no título, que abre uma janela, que contém seu o título e text. Criamos uma extensão ao cpl, permitindo que se manipule o conteúdo exibido na janela exibida ao clicar no título. basta iniciar uma declaração com window.noticia.campo. Com isso o campo indicado da noticia é exibido na janela. O arquivo exemplo_completo2.cpl usa esse recurso. Outra extensão é que nosso arquivo cpl não está limitado aos campos indicados no arquivo de exemplo. Qualquer campo pode ser criado e adicionado ao cpl e exbido normalmente no espaço da notícia. Isso pode ser notado também no exemplo_completo2.cpl.
Outra extensão é a criação do campo full_image. Nesse campo a imagem é exibida em seu tamanho natural e não reduzida ao lado do texto.
Executando o Parser:
Entre na pasta src e rode:
./cplhtml.py path/nome_arquivo.cpl
O programa cria um arquivo html chamado path/nome_arquivo.html com o conteúdo gerado. As imagens e estilos css devem estar na mesma pasta que o nome_arquivo.cpl para funcionar.
Para rodar nosso exemplo rode:
./cplhtml.py ../files/exemplo_completo2.cpl
Arquivos do projeto
|-- README # Esse informativo
|-- files # arquivos gerais
| |-- exemplo.cpl # Arquivo de entrada dado pelo professor
| |-- exemplo_completo.cpl #outros exemplos
| |-- exemplo_completo2.cpl
| |-- helio.jpg #Arquivos uteis
| |-- sergio.jpg
| |-- style.css
| |-- styleJanelas.css
| |-- virada.jpg
| `-- xuxa.jpg
`-- src
|-- color.py # Auxliar para colorir saida no terminal
|-- cplhtml.py # Converte o dicionario gerado pelo parser em codigo html
|-- cpllexer.py # Lexer
|-- cplparser.py # parser
|-- stringhtml.py # Converte o dicionario gerado pelo stringparser em html
|-- stringlexer.py # Lexer de string. Segue os padroes de WIKI para formatação de texto
|-- stringparser.py # Parser de string.