hakyll-dir-list: Allow Hakyll to create hierarchical menues from directories.

[ bsd3, library, web ] [ Propose Tags ]

Hakyll extension which supports the creation of hierarchical menus from source files in a directory structure. Adittionally single page web sites can created by using flattened page id's instead of urls.


[Skip to Readme]
Versions 0.1.1.0, 1.0.0.0, 1.0.0.1, 1.0.0.2
Change log CHANGELOG.md
Dependencies base (==4.*), containers, data-default, filepath, hakyll (==4.12.*) [details]
License BSD-3-Clause
Author Robert Hennig <robert.hennig@freylax.de>
Maintainer Robert Hennig <robert.hennig@freylax.de>
Category Web
Home page http://github.com/freylax/hakyll-dir-list
Bug tracker http://github.com/freylax/hakyll-dir-list/issues
Uploaded by RobertHennig at Thu Mar 29 06:43:35 UTC 2018
Distributions NixOS:1.0.0.2
Downloads 126 total (19 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-03-29 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for hakyll-dir-list-1.0.0.2

[back to package description]

hakyll-dir-list

Hakyll extension which supports the creation of hierarchical menus from source files in a directory structure. Adittionally single page web sites can created by using flattened page id's instead of urls.

Build the library

  • stack build

Usage

The exported dirListField function is similar to the Hakyll listField template function but creates additional context information which can be used in the template to create a hierarchical menu.

Context usable inside the template

  • $begin-tags$ injects <li> and <ul> tags if apropriate
  • $end-tags$ contains the corresponding </li> and </ul> tags
  • $full-page-id$ is the hyphen seperated path of the page
  • use configuration to get level dependant structuring tags

Metainformation in the source files

For each subdirectory which should be processed one source file with the same base name should exist which can contain meta information:

  • pages/a.md top page for directory a
  • pages/a/foo.md page foo within a

The following meta information can be given

  • page-id part of the generated id, if not given the base name of the file
  • page-order give an ordering key for sorting in the current directory level, if not given the page-id will be used

For a more fine grained control the tags which are used are configurable for each level of the menu.

Example

See the example for an illustration of usage.