typelevel/Laika

Expand Helium Configuration Options

jenshalm opened this issue · 0 comments

This is an umbrella ticket to track the final bigger piece of work for the 0.19 release.

The primary goal of these improvements is to further reduce the likeliness that users or integrators like sbt-typelevel have to create custom templates. Even though templating has already been made more convenient via modularization in #304, it is still even more convenient when common adjustments can be made via Helium's configuration API. Finally, options to make customizations per directory or per document will also be expanded.

Features listed below will be delivered in individual PRs which will be linked here as soon as they are available:

Left/Main Navigation

  • Configure navigation depth, prepend or append additional links globally via config API (#328)
  • #313
  • Fix #306 in #323

Right/Page Navigation

  • Configure navigation depth or remove navigation globally via config API or per document/directory via HOCON attributes (#330)

Linking CSS and JavaScript

  • Allow linking of CSS or JS to individual pages or directories via HOCON attributes (#326)

Additional Link Types

These are in addition to the existing ThemeLink types for icon or text links

  • Add LinkGroup that can be used to insert a horizontal row of icon links into a vertical column of text links (#319)
  • Add Menu for adding dropdown menus to the top navigation bar or landing page (#321)
  • Add VersionDropdown for programmatically adding the version dropdown to pages that do not include it by default, e.g. the landing page - with configurable label text for the unexpanded dropdown and optionally additional links (#324)
  • Provide smarter defaults and better error messages for the home link configuration to avoid issues as reported in #309 (#325)

Landing Page

Footer

  • Allow to define an HTML snippet for the footer via config API (in addition to the option to include a template fragment) + include a default footer pointing to the Laika site (#329)

None of the individual pieces of work are particularly large, but there are quite a few, so the work might span several weeks.