Skip to content

Releases: jaspervdj/patat

v0.12.0.0

27 Feb 17:36
Compare
Choose a tag to compare
0.12.0.0 (2024-02-27)

 *  Render tabs in code blocks by expanding them to spaces.  The amount of
    spaces a tab character aligns to is customizable using `tabStop`, e.g.
    `tabStop: 8`.  The default is 4.

 *  Rename eval.wrap to eval.container (#167)

    `wrap` is used at the top-level of settings for wrapping at a certain
    column, and inside `eval` to determine the type in which the result
    is "wrapped". Using the same name for both is confusing, so this adds
    `eval.container` as the new name for `eval.wrap`. `eval.wrap` will continue
    to be supported for the forseeable future, but its use will be discouraged.

    This also changes the values (again keeping the original ones for
    backwards-compat), so the complete changes to a configuration would be:

     -   `wrap: code` becomes `container: code`
     -   `wrap: raw` becomes `container: none`
     -   `wrap: rawInline` becomes `container: inline`

 *  Add a `type: matrix` transition effect, loosely inspired by the 1999 science
    fiction movie.

v0.11.0.0

14 Feb 15:55
Compare
Choose a tag to compare
0.11.0.0 (2024-02-14)

 *  Support wrapping at a specific column (#164)

    Using a specific wrap column, e.g. `wrap: 60`, works well together with
    `auto` margins (see below).

 *  Support centering content with auto margins (#164)

    Configuration is done through the existing `margins` setting.

    To vertically center content, use `top: auto`. To horizontally center
    content, use both `left: auto` and `right: auto`.  For example:

    ```markdown
    ---
    title: Centered presentation
    author: John Doe
    patat:
        margins:
            left: auto
            right: auto
            top: auto
    ...

    Hello world
    ```

    Setting `wrap: true` is recommended when vertically centering content if
    there are any lines that are too wide for the terminal.

v0.10.2.0

25 Nov 13:13
Compare
Choose a tag to compare
0.10.2.0 (2023-11-25)

 *  Add eval.wrap option

    This adds a new `wrap` section to the `eval` configuration.

    By default, the output is wrapped in a code block again with the original syntax
    highlighting.  You can customize this behaviour by setting `wrap` to:

     *  `code`: the default setting.
     *  `raw`: no formatting applied.
     *  `rawInline`: no formatting applied and no trailing newline.

    You can use `rawInline` to draw graphics.  In order to do that, for example,
    we could configure `kitten` code snippets to evaluate using [Kitty]'s
    command `icat`.  This uses the `rawInline` code setting to ensure that the
    resulting output is not wrapped in a code block, and the `fragment` and
    `replace` settings immediately replace the snippet:

        ---
        patat:
          eval:
            kitten:
              command: sed 's/^/kitten /' | bash
              replace: true
              fragment: false
              wrap: rawInline
        ...

        See, for example:

        ```kitten
        icat --align left dank-meme.jpg
        ```

[Kitty]: https://sw.kovidgoyal.net/kitty/

v0.10.1.1

18 Oct 18:49
Compare
Choose a tag to compare
0.10.1.1 (2023-10-18)

 *  Fix issues in text wrapping when starting a transition

    This could show transitions using different wrapping or dropped characters
    when a line extends past the terminal width.

v0.10.1.0

15 Oct 12:19
Compare
Choose a tag to compare
0.10.1.0 (2023-10-15)

 *  Add dissolve transition effect (#150)

 *  Add random transitions (#151)

    Set transition `type` to `random` to randomly sample transition effects

v0.10.0.0

12 Oct 15:30
Compare
Choose a tag to compare
0.10.0.0 (2023-10-12)

 *  Add transition effects (#149)

    This adds a framework for setting transition effects in between slides. Only
    a single transition type is implemented at this point, `slideLeft`.

    Example configuration:

        patat:
          transition:
            type: slideLeft
            frames: 24  # Optional
            duration: 1  # Seconds, optional

 *  Allow overriding certain settings in slides (#148)

    Configuration was typically done in the metadata block of the input file,
    or in a per-user configuration.  These settings are applied to the entire
    presentation.

    We now allow selectively overriding these settings on a per-slide basis,
    by adding one or more config blocks to those slides.  Config blocks are
    comments that start with `config:`.  They can be placed anywhere in the
    slide.

        # This is a normal slide

        Normal slide content

        # This slide has a different colour header

        <!--config:
        theme:
          header: [vividYellow]
        -->

        Wow, how did that happen?

 *  Allow configuring top margin (#147)

v0.9.2.0

26 Sep 08:19
Compare
Choose a tag to compare
0.9.2.0 (2023-09-26)

 *  Read configuration from XDG standard directory (#146)

    The per-user patat configuration file was `$HOME/.patat.yaml`,
    which does not follow the XDG standard.  We now support
    `$XDG_CONFIG_DIRECTORY/patat/config.yaml` (typically `$XDG_CONFIG_DIRECTORY`
    is set to `$HOME/.config`) which is compliant with the standard.

    Note that `$HOME/.patat.yaml` is still supported for backward-compatibility,
    but anything in `$XDG_CONFIG_DIRECTORY` takes precedence.

 *  Support filenames in bash completion (#145) (#126)

v0.9.1.0

25 Sep 08:22
Compare
Choose a tag to compare
0.9.1.0 (2023-09-25)

 *  Fall back to forcing UTF-8 if decoding fails (#144) (#127)

    When we try to read a file that is encoded in UTF-8, and the system locale
    is not set to UTF-8, the GHC runtime system will throw an error.

    While this typically indicates that the user should update their system
    locale using e.g. the `LANG` environment variable, we want to provide a good
    initial experience for people unfamiliar with this, and in 2023 it's
    reasonable to assume files may be encoded in UTF-8.

 *  Dependency updates:
     -  Bump `skylighting` upper bound to 0.15 (#143)

v0.9.0.0

13 Sep 11:58
Compare
Choose a tag to compare
0.9.0.0 (2023-09-13)

 *  Add proper support for speaker notes (#142)

    You can configure `patat` to write the speaker notes for the current slide
    to a file whenever the slide changes:

        patat:
          speakerNotes:
            file: /tmp/notes.txt

    Then, you can display these in a second terminal (presumably on a second
    monitor) by just displaying this file whenever it changes.  [entr] is one
    way to do that:

        echo /tmp/notes.txt | entr -s 'clear; cat /tmp/notes.txt'

    [entr]: http://eradman.com/entrproject/

    Alternatively, just use a second `patat` instance with `--watch` enabled:

        patat -w /tmp/notes.txt

 *  Add support for showing plain text files (#141)

    This isn't super useful on its own, it's meant to support speaker notes.

 *  Add syntaxDefinitions to settings (#140)

    This allows users to add custom kate highlighting XML files in the settings:

        ---
        patat:
          syntaxDefinitions:
          - 'impurescript.xml'
        ...

        Here is some *im*purescript:

        ```impurescript
        ...
        ```

v0.8.9.0

27 Jun 08:32
Compare
Choose a tag to compare
- 0.8.9.0 (2023-06-27)
    * Apply block quote theming to entire block (#119) (#111)
    * Fix table header theming (#128)
    * Dependency updates:
        - `aeson` to 2.1
        - `optparse-applicative` to 0.18
        - `pandoc` to 3.1
        - `pandoc-types` to 1.23
        - `text` to 2.0
        - `time` to 1.12