More concrete: all functions in this module assume that the tags are
located in the tags field, and separated by commas. An example file
foo.markdown could look like:

---
author: Philip K. Dick
title: Do androids dream of electric sheep?
tags: future, science fiction, humanoid
---
The novel is set in a post-apocalyptic near future, where the Earth and
its populations have been damaged greatly by Nuclear...

All the following functions would work with such a format. In addition to
tags, Hakyll also supports categories. The convention when using categories
is to place pages in subdirectories.

An example, the page posts/coding/2010-01-28-hakyll-categories.markdown
Tags or categories are read using the readTagMap and readCategoryMap
functions. Because categories are implemented using tags - categories can
be seen as tags, with the restriction that a page can only have one
category - all functions for tags also work with categories.

When reading a TagMap (which is also used for category maps) using the
readTagMap or readCategoryMap function, you also have to give a unique
identifier to it. This identifier is simply for caching reasons, so Hakyll
can tell different maps apart; it has no other use.

Documentation

This is a map associating tags or categories to the appropriate pages
using that tag or category. In the case of categories, each path will only
appear under one category - this is not the case with tags.