Durante um bom tempo fui usuário de LaTeX (cheguei a fazer uma classe para apresentações -- Pauerpoint), mas algumas coisas são desnecessariamente difíceis de se fazer em LaTeX.
Então me ocorreu a idéia de implementar algo em Scheme para fazer apresentações. Com o uso de algumas coisas prontas em CSS e Javascript, a implementação em Scheme é surpreendentemente simples:
(use web-scheme)
(define (slide title-text . contents)
(div 'class "slide"
(h1 title-text)
(string-intersperse contents)))
(define (cover title-text . contents)
(div 'class "slide cover"
(h1 title-text)
(string-intersperse contents)))
(define (presentation . slides)
(ws:page
(string-intersperse slides)
additional-headers: (string-append
(link 'rel "stylesheet"
'type "text/css"
'media "screen, projection"
'href "show.css")
(script 'src "slidy.js"
'type "text/javascript"))))
O código acima, em Chicken Scheme, mostra as três funções para a montagem de uma apresentação. As partes de CSS e Javascript são do HTML Slidy.
Para criar uma apresentação, basta fazer algo como:
(presentation
(cover "Minha capa")
(slide "Introdução")
(slide "Fim"))
Para gerar o código HTML, que pode ser visualizado em qualquer browser, executo:
$ web-scheme2html minha-apresentacao.scm > minha-apresentacao.html
web-scheme2html
é um script que acompanha a extensão web-scheme de Chicken.Em http://g3pd.ucpel.tche.br/~mario/misc/upgrade-v2 está um exemplo de apresentação que fiz sobre programação para a Web com Scheme (boa parte da apresentação é sobre o básico da linguagem). O código fonte da apresentação está em http://g3pd.ucpel.tche.br/~mario/misc/upgrade-v2/index.ws.
Nenhum comentário:
Postar um comentário