Packages

  • package root
    Definition Classes
    root
  • package laika
    Definition Classes
    root
  • package helium
    Definition Classes
    laika
  • class Helium extends AnyRef

    Configuration API for the Helium theme settings.

    Configuration API for the Helium theme settings.

    Helium can be fully configured with its Scala API and does not require any configuration files.

    The entry point for all configuration steps is always Helium.defaults to ensure there are sensible defaults in place for all the options you omit in your configuration.

    For each configuration step you need to choose one of the four selectors, either all to specify options for all three output formats or site, epub or pdf to select a single format. Not all options are available for all formats, but the IDE's context help and the documentation below can guide you.

    In the minimal example below we only specify some metadata for all formats as well as the navigation depth for EPUB and PDF:

    val theme = Helium.defaults
    .all.metadata(
    title = Some("Project Name"),
    language = Some("de"),
    )
    .epub.navigationDepth(4)
    .pdf.navigationDepth(4)
    .build

    Laika also provides convenient constructors for some of the data types used frequently in its theme API. You can import laika.theme.Color._ for specifying colors with hex("ffaaff") or rgb(255, 0, 0) and laika.ast.LengthUnit._ for specifying sizes with px(12) or pt(9) or other available units.

    The final call to build produces a ThemeProvider that can be passed to Laika's transformers or the laikaTheme sbt setting:

    Example for sbt plugin:

    laikaTheme := theme

    Example for the library API:

    val transformer = Transformer
      .from(Markdown)
      .to(EPUB)
      .parallel[IO]
      .witTheme(theme)
      .build
    Definition Classes
    helium
  • all
  • epub
  • pdf
  • site

object all extends AllFormatsOps

Selects the configuration options available for all three output formats.

This means that it only contains the options that exist in all three formats, for anything specific to one or two formats you need to use their respective selectors.

Linear Supertypes
AllFormatsOps, CommonConfigOps, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. all
  2. AllFormatsOps
  3. CommonConfigOps
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. def fontFamilies(body: String, headlines: String, code: String): Helium

    Specifies which font family to use for the body text, for headlines and for inline code and code blocks.

    Specifies which font family to use for the body text, for headlines and for inline code and code blocks.

    All specified fonts need to be made available for the theme first by using the fontResources method. The body font needs to be available at least as regular, italic, bold and bold italic. The headline font needs to support bold and bold italic. For the code font a regular font weight is sufficient.

    Definition Classes
    AllFormatsOps → CommonConfigOps
  10. def fontResources(defn: FontDefinition*): Helium

    Adds one or more font resources to the theme, either based on a local classpath or file system resource, or a web font URL, or both.

    Adds one or more font resources to the theme, either based on a local classpath or file system resource, or a web font URL, or both.

    E-book formats like EPUB or PDF require a local font file to be available for embedding. A web font URL can only be used for website generation.

    When using this method, all default fonts of the Helium theme will be de-registered.

    Definition Classes
    AllFormatsOps → CommonConfigOps
  11. def fontSizes(body: Length, code: Length, title: Length, header2: Length, header3: Length, header4: Length, small: Length): Helium

    Configure the theme's font sizes.

    Configure the theme's font sizes. Most property names are self-explanatory, the small font is currently only used for footnote references in PDF output.

    Definition Classes
    AllFormatsOps → CommonConfigOps
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def helium: Helium
    Attributes
    protected
    Definition Classes
    all → AllFormatsOps
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def messageColors(info: Color, infoLight: Color, warning: Color, warningLight: Color, error: Color, errorLight: Color): Helium

    Configures the colors of runtime messages embedded in the rendered result.

    Configures the colors of runtime messages embedded in the rendered result. Warnings and errors will only be rendered if you change the configuration to visual debugging, by default the presence of errors will lead to the abortion of the process. See the section "Visual Debugging" on the Configuration page in the manual for details.

    info

    the text color for info-level messages

    infoLight

    the background color for info-level messages

    warning

    the text color for warning-level messages

    warningLight

    the background color for warning-level messages

    error

    the text color for error-level messages

    errorLight

    the background color for error-level messages

    Definition Classes
    AllFormatsOps → CommonConfigOps
  17. def metadata(title: Option[String] = None, description: Option[String] = None, identifier: Option[String] = None, authors: Seq[String] = Nil, language: Option[String] = None, date: Option[Instant] = None, version: Option[String] = None): Helium

    Allows to define a small set of metadata that describes the output.

    Allows to define a small set of metadata that describes the output.

    In the generated site it will be used to populate the <head> section of the HTML output, for EPUB and PDF it will be used to embed the information into the generated files in a way that the respective readers understand.

    When using the sbt plugin the title, description and version metadata will be pre-populated by the standard sbt settings name, description and version respectively. When using the library API no medata will be defined by default. It is recommended to always define the language and title as the minimum set of metadata.

    title

    the title of the site and/or e-book

    description

    a short description of the site and/or e-book

    identifier

    a unique identifier for the e-book, not used for site generation

    authors

    one or more author names

    language

    the language of the site and/or e-book, should always be defined

    date

    the publication date as a UTC date-time

    version

    the version string for the output

    Definition Classes
    AllFormatsOps → CommonConfigOps
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  21. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  22. def syntaxHighlightingColors(base: ColorQuintet, wheel: ColorQuintet): Helium

    Specifies two sets of five colors each to be used by Laika's support for syntax highlighting.

    Specifies two sets of five colors each to be used by Laika's support for syntax highlighting.

    If you use the built-in highlighters (which are based on Laika's own parsers) the display is based on a 10-color scheme with 5 base colors which are usually grayish/low saturation and 5 "wheel" colors which are usually placed around the color wheel.

    If you use external tools like highlight.js these settings will have no effect and you need to use the styling mechanism of that 3rd-party tool.

    Definition Classes
    AllFormatsOps → CommonConfigOps
  23. def tableOfContent(title: String, depth: Int): Helium

    Adds a dedicated page for a table of content, in addition to the reader-native navigation structure.

    Adds a dedicated page for a table of content, in addition to the reader-native navigation structure.

    title

    the title to display on the page and in navigation that links to the page

    depth

    the navigation depth which may be different than the one for the reader-native navigation structure

    Definition Classes
    AllFormatsOps → CommonConfigOps
  24. def themeColors(primary: Color, primaryMedium: Color, primaryLight: Color, secondary: Color, text: Color, background: Color, bgGradient: (Color, Color)): Helium

    Configures the four main colors used by the theme.

    Configures the four main colors used by the theme.

    primary

    this color is used for headlines, navigation highlights and other decorative elements

    primaryMedium

    is supposed to be a shade between primary and primaryLight and is used for borders and text on the landing page (on dark background)

    primaryLight

    is supposed to be a lighter shade of the primary color and is used for the background color of sidebars and other decorated blocks; ensure that the text in the primary color is readable when placed on a primaryLight background

    secondary

    this color is used for navigation headers and links

    text

    the color of the body text

    background

    the background color of the pages

    bgGradient

    specifies two colors to be used as background gradient, currently only used on the landing page

    Definition Classes
    AllFormatsOps → CommonConfigOps
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AllFormatsOps

Inherited from CommonConfigOps

Inherited from AnyRef

Inherited from Any

Ungrouped