2016-09-24 09:23:28 +03:00
|
|
|
patat
|
|
|
|
=====
|
|
|
|
|
2016-10-02 07:39:49 +03:00
|
|
|
[![Build Status](https://travis-ci.org/jaspervdj/patat.svg?branch=master)](https://travis-ci.org/jaspervdj/patat)
|
|
|
|
|
2016-09-24 09:51:17 +03:00
|
|
|
`patat` (**P**resentations **A**nd **T**he **A**NSI **T**erminal) is a small
|
|
|
|
tool that allows you to show presentations using only an ANSI terminal. It does
|
|
|
|
not require `ncurses`.
|
|
|
|
|
|
|
|
![screenshot](extra/screenshot.png?raw=true)
|
2016-09-24 09:23:28 +03:00
|
|
|
|
|
|
|
`patat` is written in [Haskell] and built upon the great [Pandoc] library. This
|
2016-09-25 17:59:17 +03:00
|
|
|
means it is theoretically not limited to Markdown, but can support every
|
2016-09-24 10:49:29 +03:00
|
|
|
input format that Pandoc supports.
|
2016-09-24 09:23:28 +03:00
|
|
|
|
|
|
|
[Haskell]: http://haskell.org/
|
|
|
|
[Pandoc]: http://pandoc.org/
|
2016-09-24 09:45:00 +03:00
|
|
|
|
2016-09-24 10:49:29 +03:00
|
|
|
Table of Contents
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
- [Installation](#installation)
|
|
|
|
- [Running](#running)
|
|
|
|
- [Input format](#input-format)
|
|
|
|
- [Trivia](#trivia)
|
|
|
|
|
2016-09-24 10:42:33 +03:00
|
|
|
Installation
|
|
|
|
------------
|
|
|
|
|
|
|
|
You can build from source using `stack install` or `cabal install`. `patat` is
|
|
|
|
also available from [Hackage].
|
|
|
|
|
|
|
|
[Hackage]: https://hackage.haskell.org/package/patat
|
|
|
|
|
|
|
|
Running
|
|
|
|
-------
|
|
|
|
|
2016-09-25 12:08:46 +03:00
|
|
|
patat [--watch] presentation.md
|
2016-09-24 10:42:33 +03:00
|
|
|
|
2016-09-24 11:28:57 +03:00
|
|
|
Controls:
|
|
|
|
|
|
|
|
- **Next slide**: `space`, `enter`, `l`, `→`
|
|
|
|
- **Previous slide**: `backspace`, `h`, `←`
|
|
|
|
- **Go forward 10 slides**: `j`, `↓`
|
|
|
|
- **Go backward 10 slides**: `k`, `↑`
|
|
|
|
- **First slide**: `0`
|
|
|
|
- **Last slide**: `G`
|
|
|
|
- **Reload file**: `r`
|
|
|
|
- **Quit**: `q`
|
|
|
|
|
2016-09-25 12:08:46 +03:00
|
|
|
The `r` key is very useful since it allows you to preview your slides while you
|
|
|
|
are writing them. You can also use this to fix artifacts when the terminal is
|
|
|
|
resized.
|
|
|
|
|
|
|
|
If you provide the `--watch` flag, `patat` will watch the presentation file for
|
|
|
|
changes and reload automatically. This is very useful when you are writing the
|
|
|
|
presentation.
|
|
|
|
|
2016-09-24 10:42:33 +03:00
|
|
|
Input format
|
|
|
|
------------
|
|
|
|
|
|
|
|
The input format can be anything that Pandoc supports. Plain markdown is
|
|
|
|
usually the most simple solution:
|
|
|
|
|
|
|
|
---
|
|
|
|
title: This is my presentation
|
|
|
|
author: Jane Doe
|
|
|
|
...
|
|
|
|
|
|
|
|
# This is a slide
|
|
|
|
|
|
|
|
Slide contents. Yay.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
# Important title
|
|
|
|
|
|
|
|
Things I like:
|
|
|
|
|
|
|
|
- Markdown
|
|
|
|
- Haskell
|
|
|
|
- Pandoc
|
|
|
|
|
|
|
|
Horizontal rulers (`---`) are used to split slides.
|
|
|
|
|
|
|
|
However, if you prefer not use these since they are a bit intrusive in the
|
|
|
|
markdown, you can also start every slide with an `h1` header. In that case, the
|
|
|
|
file should not contain a single horizontal ruler.
|
|
|
|
|
|
|
|
This means the following document is equivalent:
|
|
|
|
|
|
|
|
---
|
|
|
|
title: This is my presentation
|
|
|
|
author: Jane Doe
|
|
|
|
...
|
|
|
|
|
|
|
|
# This is a slide
|
|
|
|
|
|
|
|
Slide contents. Yay.
|
|
|
|
|
|
|
|
# Important title
|
|
|
|
|
|
|
|
Things I like:
|
|
|
|
|
|
|
|
- Markdown
|
|
|
|
- Haskell
|
|
|
|
- Pandoc
|
|
|
|
|
2016-09-24 10:33:02 +03:00
|
|
|
Trivia
|
|
|
|
------
|
|
|
|
|
2016-09-24 09:45:00 +03:00
|
|
|
_"Patat"_ is the Flemish word for a simple potato. Dutch people also use it to
|
|
|
|
refer to French Fries but I don't really do that -- in Belgium we just call
|
|
|
|
fries _"Frieten"_.
|
2016-09-24 10:33:02 +03:00
|
|
|
|
|
|
|
The idea of `patat` is largely based upon [MDP] which is in turn based upon
|
|
|
|
[VTMC]. I wanted to write a clone using Pandoc because I ran into a markdown
|
|
|
|
parsing bug in MDP which I could not work around. A second reason to do a
|
|
|
|
Pandoc-based tool was that I would be able to use [Literate Haskell] as well.
|
2016-09-24 10:42:33 +03:00
|
|
|
Lastly, I also prefer not to install Node.js on my machine if I can avoid it.
|
2016-09-24 10:33:02 +03:00
|
|
|
|
|
|
|
[MDP]: https://github.com/visit1985/mdp
|
|
|
|
[VTMC]: https://github.com/jclulow/vtmc
|
|
|
|
[Literate Haskell]: https://wiki.haskell.org/Literate_programming
|