tundra.sh - v0.5

Static pages generator.
tundra.sh is written in shell and depends only on pandoc mock-up


  • markdown sources*
  • single shell script
  • fast and simple to setup and configure
  • minimal dependencies: just the pandoc on unix-like systems
  • generates static content: easy to host anywhere
  • syntax highlighting for over 100 languages, out of the box
  • blog friendly


This readme | Blog index | Blog post | Static page


Built and tested on Debian 9. To get the demo page up:

  • Install pandoc (>v2.0), make sure you have shell and common UNIX utilities
  • Download this repository: git clone https://github.com/frainfreeze/tundra.git
  • Make script executable: chmod a+rx ./tundra.sh
  • Run the script and open output in browser: ./tundra.sh -b && xdg-open index.html

NOTE: If you want to use this script on *BSD or macOS, please make sure you have the GNU implementation of awk and sed installed.


There are two types of configuration: per project and per page. Per project: on top of tundra.sh are configuration variables. You can use them to change page theme, markdown flavor etc.

Per page: pandoc supports YAML blocks, this is self-explanatory example:

I recommend you to keep the block on the top of the file. See pandoc documentation for more details.


To change index page simply edit this readme or configure tundra.sh to point at your index.md file. See configuration above.

To make new blog posts add source files to posts folder.

Run ./tundra.sh -h to see available options.

Todo: custom themes, custom page layout.


  • multiple i/o formats support out of the box (*atm only by editing the pandoc calls)
  • output to docs folder option (for gh pages)
  • new themes
  • better configuration


Public domain.