MyNixOS website logo
Description

Convert Pandoc Markdown-style footnotes into sidenotes.

This is a simple Pandoc filter to convert footnotes into a format that can be consumed by Tufte CSS. On the whole, this project weighs in at well under 100 lines of code. Check out SideNote.hs if you're curious how it works.

pandoc-sidenote

Convert Pandoc Markdown-style footnotes into sidenotes

This is a simple Pandoc filter to convert footnotes into a format that can be consumed by Tufte CSS and Pandoc Markdown CSS Theme. On the whole, this project weighs in at well under 100 lines of code. Check out SideNote.hs if you're curious how it works.

It's used by calling pandoc --filter pandoc-sidenote. To see it in action, see Tufte Pandoc CSS, a project which uses it. In particular, take a look at the Makefile included in that project.

The core functionality is also exposed as a library, which can be called by Haskell applications such as Hakyll.

Dependencies

pandoc-sidenote is build against a specific version of Pandoc. This table maps pandoc versions to pandoc-sidenote versions:

pandocpandoc-sidenote
3.00.23.0
2.110.22.0, 0.22.1, 0.22.2
2.90.20.0
2.1, 1.190.19.0
1.180.9.0

If a newer version of pandoc has been released, the Stack build manifest will need to be adjusted for that version, and the project then rebuilt.

Installation

Cabal

pandoc-sidenote is on Hackage and can thus be installed using cabal:

cabal install pandoc-sidenote

Homebrew

If you're on OS X, you can install the pandoc-sidenote binary from my Homebrew tap:

brew install jez/formulae/pandoc-sidenote

From Source

Otherwise, you'll have to install from source. This project is written in Haskell and built using Stack. If you're new to Haskell, now's a perfect time to wet your toes! Go install Stack first, then run these commands:

git clone https://github.com/jez/pandoc-sidenote

cd pandoc-sidenote

# this is going to be reaaally long the first time
stack build

# copy the compiled binary onto your PATH
stack install

Notes to myself

Side note: I run this command to generate the zip files attached to releases that are downloaded by the Homebrew formula:

make

It would be nice to get GitHub Actions set up to build and publish releases for each tagged commit automatically.

I run this command to publish packages to Hackage:

# First, edit `package.yaml` to remove `-Werror`, then:

stack upload .

License.

MIT License

Metadata

Version

0.23.0.0

License

Executables (1)

  • bin/pandoc-sidenote

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows