Od ponad dwóch lat wszystkie moje prezentacje i materiały wykładowe piszę w formacie RST (ReStructuredText).
Pliki te w łatwy sposób konwertuje się do innych formatów - ja najczęściej wybieram (X)HTML a w szczególności promowane przez W3C Slidy2.
Po dodaniu skryptów napisanych w Python-ie otrzymałem automat, który z zadeklarowanych modułów (plików RST) tworzy prezentacje/materiały dla całej serii wykładów i inne dokumenty o hierarchicznej strukturze.
Małą niedogodnością jest fakt, że w przypadku pakietów debiana/ubuntu pandoc nie potrafił znaleźć odpowiedniego szablonu dla slidy2.
Najprostszym rozwiązaniem jest jego skopiowanie do katalogu domowego użytkownika.
Plik szablonu HOME/.pandoc/templates/default.slidy:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"$if(lang)$ lang="$lang$" xml:lang="$lang$"$endif$>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
$for(author-meta)$
<meta name="author" content="$author-meta$" />
$endfor$
$if(date-meta)$
<meta name="date" content="$date-meta$" />
$endif$
<title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title>
<style type="text/css">code{white-space: pre;}</style>
$if(highlighting-css)$
<style type="text/css">
$highlighting-css$
</style>
$endif$
<link rel="stylesheet" type="text/css" media="screen, projection, print"
href="$slidy-url$/styles/slidy.css" />
$for(css)$
<link rel="stylesheet" type="text/css" media="screen, projection, print"
href="$css$" />
$endfor$
$if(math)$
$math$
$endif$
$for(header-includes)$
$header-includes$
$endfor$
<script src="$slidy-url$/scripts/slidy.js"
charset="utf-8" type="text/javascript"></script>
$if(duration)$
<meta name="duration" content="$duration$" />
$endif$
</head>
<body>
$for(include-before)$
$include-before$
$endfor$
$if(title)$
<div class="slide titlepage">
<h1 class="title">$title$</h1>
<p class="author">
$for(author)$$author$$sep$<br/>$endfor$
</p>
$if(date)$
<p class="date">$date$</p>
$endif$
</div>
$endif$
$body$
$for(include-after)$
$include-after$
$endfor$
</body>
</html>
Następny krok to poprawienie/zmiana szablonów CSS, które w oryginalnej formie nie wyglądają moim zdaniem zbyt dobrze.
Szczególnie dotyczy to umieszczanych ilustracji na stronie.
I tu wygodny jest fakt, że po przekierowaniu do jednego adresu na serwerze wszystkich odwołań do CSS wystarczy zmienić jeden plik szablonu, by wszystkie prezentacje zyskały świeży wygląd - nawet te stare, dawno napisane.