How jaspervdj/hakyll works
Hakyll is a Haskell static-site-generator library. A typical user workflow is to define build rules for source content, compile and render pages, then write generated files; the tree also exposes preview, feeds, and other web-oriented features. The component map is based on module and directory names, not inspected implementations: no source excerpts were provided, so inferred relationships are dashed and uncited.
Main entry points: Compiler.hs Compiler engine · Rules.hs Build rules · Commands.hs Build commands · Main.hs Command interface
Components 19
Build runtime
- Command interface
lib/Hakyll/Main.hs - Build commands
lib/Hakyll/Commands.hs - Build rules
lib/Hakyll/Core/Rules.hs - Source provider
lib/Hakyll/Core/Provider.hs - Compiler engine
lib/Hakyll/Core/Compiler.hs - Output routes
lib/Hakyll/Core/Routes.hs - Build execution
lib/Hakyll/Core/Runtime.hs - Build store
lib/Hakyll/Core/Store.hs
Content processing
- Pandoc conversion
lib/Hakyll/Web/Pandoc.hs - Template rendering
lib/Hakyll/Web/Template.hs - Metadata contexts
lib/Hakyll/Web/Template/Context.hs
Web features
- HTML processing
lib/Hakyll/Web/Html.hs - CSS compression
lib/Hakyll/Web/CompressCss.hs - Feed generation
lib/Hakyll/Web/Feed.hs - Tag utilities
lib/Hakyll/Web/Tags.hs - Pagination
lib/Hakyll/Web/Paginate.hs
Preview
- Preview server
lib/Hakyll/Preview/Server.hs - Preview polling
lib/Hakyll/Preview/Poll.hs
Other components
- Site author
Connections 18
- Site author → Command interface: runs build
- Command interface → Build commands: dispatches commands
- Build commands → Build rules: uses rules
- Build rules → Source provider: selects sources
- Build rules → Compiler engine: assigns compilers
- Build rules → Output routes: assigns routes
- Build commands → Build execution: starts execution
- Build execution → Build store: uses state
- Compiler engine → Pandoc conversion: may convert content
- Compiler engine → Template rendering: may render templates
- Template rendering → Metadata contexts: uses contexts
- Compiler engine → HTML processing: may process HTML
- Compiler engine → CSS compression: may compress CSS
- Compiler engine → Feed generation: may generate feeds
- Compiler engine → Tag utilities: may use tags
- Compiler engine → Pagination: may paginate
- Site author → Preview server: views preview
- Preview server → Preview polling: may poll changes