jtdaugherty/mathblog

A package for managing a static, mathematically-inclined web log
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.

mathblog

mathblog is a Haskell program targeted at people who want to write statically-generated, mathematically-themed weblogs. It supports:

• Extended Markdown input syntax as supported by the Pandoc library

• Inline and block-level TeX math rendered by MathJax or LaTeX

• Function graphing with TikZ / pgfplots LaTeX packages

• Integration of Javascript-based web services such as Disqus

• Template-based document rendering with support for layout and style customization

Getting Started

See the manual PDF in doc/.

Project vision

I wrote mathblog with a very specific set of requirements in mind, motivated by the following principles:

• A blog should be easy to create, host, and update.

• A blog should be easy to maintain.

• I should be able to edit posts in my editor of choice and write them in an intelligent textual markup language.

• It should be easy to embed high-quality mathematical symbols and equations in the blog posts.

As a result, mathblog has the following properties:

• The software is composed of a single executable which will automatically take care of creating your blog and regenerating pages when your post markup changes.

• All content is stored in plain text files and is generated statically. No database or web framework is used.

• A mathblog can be hosted with a simple static fileserver such as thttpd, Lighttpd, or Apache.

• Blog posts are written in the Markdown format with extensions, as supported by the Pandoc document converter.

• Math is embedded with $...$ or $$...$$ for inline math and $$...$$ or $...$ for block-level math.

These properties have some nice advantages; your blog content is cacheable and can be subjected to revision control. Posts are easy to edit and editing doesn't require a web browser. The static file representation model means you can compose a blog post on your laptop and get it just right using a local installation of mathblog, then push it up to your server to post it to your public blog.

Dependencies

mathblog takes advantage of three primary software components:

• Pandoc, a document-processing library.

• Math typesetting packages:

• MathJax if you choose mathjax for the value of the mathBackend configuration setting. mathblog uses the MathJax CDN for MathJax resources.
• Function graph plotting packages:

• The TikZ and pgfplots LaTeX packages if you set tikz = yes in your config. This is the recommended backend for function graph plotting.