hakyll-1.4: A simple static site generator library.Source codeContentsIndex

Module containing some specialized functions to deal with tags. This Module follows certain conventions. Stick with them.

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 would be placed under the coding category.

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.

type TagMap = Map String [PagePath]
readTagMap :: String -> [PagePath] -> Hakyll TagMap
readCategoryMap :: String -> [PagePath] -> Hakyll TagMap
renderTagCloud :: TagMap -> (String -> String) -> Float -> Float -> String
renderTagLinks :: (String -> String) -> ContextManipulation
type TagMap = Map String [PagePath]Source

Type for a tag map.

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.

:: StringUnique identifier for the map.
-> [PagePath]Paths to get tags from.
-> Hakyll TagMap
Read a TagMap, using the tags metadata field.
:: StringUnique identifier for the map.
-> [PagePath]Paths to get tags from.
-> Hakyll TagMap
Read a TagMap, using the subdirectories the pages are placed in.
:: TagMapMap as produced by readTagMap.
-> String -> StringFunction to produce an url for a tag.
-> FloatSmallest font size, in percent.
-> FloatBiggest font size, in percent.
-> StringResult of the render.
Render a tag cloud.
:: String -> StringFunction to produce an url for a tag.
-> ContextManipulation

Render all tags to links.

On your site, it is nice if you can display the tags on a page, but naturally, most people would expect these are clickable.

So, this function takes a function to produce an url for a given tag, and applies it on all tags.

Note that it is your own responsibility to ensure a page with such an url exists.

Produced by Haddock version 2.6.0