168 lines
2.9 KiB
ReStructuredText
168 lines
2.9 KiB
ReStructuredText
.. footer:: @opdavies
|
|
|
|
Building and presenting slide decks with rst2pdf
|
|
################################################
|
|
|
|
|
|
|
|
|
.. class:: titleslideinfo
|
|
|
|
Oliver Davies (@opdavies)
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "Gave my first talk in 2012."
|
|
TextAnnotation "A talk about a tool (rst2pdf) that I've been using for the last couple of talks."
|
|
|
|
.. page:: standardPage
|
|
|
|
What have I used before?
|
|
========================
|
|
|
|
* **UI based:** Keynote, Google Slides, slides.com
|
|
* **HTML/JavaScript:** reveal.js
|
|
* **Markdown:** Deckset, Marp, reveal-md
|
|
|
|
What is rst2pdf?
|
|
================
|
|
|
|
* "Use a text editor. Make a PDF."
|
|
* reStructuredText to PDF
|
|
* Each slide is a page
|
|
* Page templates for layouts
|
|
* Not just for slide decks
|
|
* Table of contents, page numbers, headers, footers
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "Use the tools you're familiar with."
|
|
TextAnnotation "Similar to Markdown."
|
|
TextAnnotation "Primarily used for technical documentation within the Python community."
|
|
TextAnnotation "Now maintained by PHPers Rob Allen and Lorna Jane Mitchell."
|
|
TextAnnotation "Breaks at titles automatically, or you can add manual page breaks."
|
|
|
|
Advantages
|
|
==========
|
|
|
|
* Easy to start a new presentation, or update an existing one
|
|
* Version controllable
|
|
* Portable
|
|
* Content is searchable
|
|
* Easy to re-use content and/or styling
|
|
* Slides uploaded to SpeakerDeck straight away
|
|
|
|
.. page:: imagePage
|
|
|
|
.. image:: images/editing.png
|
|
:width: 23cm
|
|
|
|
.. page:: standardPage
|
|
|
|
Useful reStructuredText
|
|
=======================
|
|
|
|
.. code-block:: rst
|
|
:include: code/useful-rst-1.txt
|
|
:linenos:
|
|
|
|
Useful reStructuredText
|
|
=======================
|
|
|
|
.. code-block:: rst
|
|
:include: code/useful-rst-2.txt
|
|
:linenos:
|
|
|
|
Page Templates
|
|
==============
|
|
|
|
main.style:
|
|
|
|
.. code-block:: yaml
|
|
:include: code/page-templates-style.txt
|
|
|
|
slides.rst:
|
|
|
|
.. code-block:: rst
|
|
:include: code/page-templates-rst.txt
|
|
|
|
Keeping things organised
|
|
========================
|
|
|
|
Split slides into different sections:
|
|
|
|
.. code-block:: rst
|
|
:include: code/includes-sections.txt
|
|
|
|
|
|
|
|
|
Including code snippets from separate files:
|
|
|
|
.. code-block:: rst
|
|
:include: code/includes-code.txt
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "Includes!"
|
|
|
|
Styling
|
|
=======
|
|
|
|
.. code-block:: yaml
|
|
:include: code/styling.txt
|
|
:linenos:
|
|
|
|
Building
|
|
========
|
|
|
|
.. code-block::
|
|
:include: code/building.txt
|
|
|
|
Watching
|
|
========
|
|
|
|
Re-compiling when something changes.
|
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
:include: code/watching.txt
|
|
|
|
Presenting
|
|
==========
|
|
|
|
``pdfpc`` - PDF presenter console
|
|
|
|
|
|
|
|
|
.. code-block::
|
|
|
|
pdfpc slides.pdf
|
|
|
|
.. page:: imagePage
|
|
|
|
.. image:: images/pdfpc-1.png
|
|
:width: 23cm
|
|
|
|
.. page::
|
|
|
|
.. image:: images/pdfpc-2.png
|
|
:width: 23cm
|
|
|
|
.. page:: standardPage
|
|
|
|
Thanks!
|
|
=======
|
|
|
|
References:
|
|
|
|
* https://rst2pdf.org
|
|
* https://github.com/rst2pdf/rst2pdf
|
|
* https://github.com/opdavies/talks
|
|
* https://oliverdavies.link/lorna-rst2pdf-talk
|
|
|
|
|
|
|
|
|
Me:
|
|
|
|
* https://www.oliverdavies.uk
|