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 site extends SiteOps

Selects the configuration options available for site generation.

Linear Supertypes
SiteOps, CopyOps, SingleConfigOps, ColorOps, CommonConfigOps, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. site
  2. SiteOps
  3. CopyOps
  4. SingleConfigOps
  5. ColorOps
  6. CommonConfigOps
  7. AnyRef
  8. 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 autoLinkCSS(paths: Path*): Helium

    Auto-links CSS documents from the specified paths.

    Auto-links CSS documents from the specified paths. By default all CSS documents found anywhere in the input tree will be linked in HTML files. This setting allows to narrow it down to one or more dedicated paths within the virtual tree, which might be useful when your input contains CSS files unrelated to the pages rendered by Laika.

    Definition Classes
    SiteOps
  6. def autoLinkJS(paths: Path*): Helium

    Auto-links JavaScript documents from the specified paths.

    Auto-links JavaScript documents from the specified paths. By default all JavaScript documents found anywhere in the input tree will be linked in HTML files. This setting allows to narrow it down to one or more dedicated paths within the virtual tree, which might be useful when your input contains JavaScript files unrelated to the pages rendered by Laika.

    Definition Classes
    SiteOps
  7. def baseURL(url: String): Helium

    Specifies the base URL where the rendered site will be hosted.

    Specifies the base URL where the rendered site will be hosted. This configuration option allows to turn internal links into external ones for documents which will be part of the rendered site, but are not included in other formats like EPUB or PDF.

    Definition Classes
    SiteOps
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  9. def copyWith(pdfSettings: PDFSettings): Helium
    Attributes
    protected
    Definition Classes
    CopyOps
  10. def copyWith(epubSettings: EPUBSettings): Helium
    Attributes
    protected
    Definition Classes
    CopyOps
  11. def copyWith(siteSettings: SiteSettings): Helium
    Attributes
    protected
    Definition Classes
    CopyOps
  12. def currentColors: ColorSet
    Attributes
    protected
    Definition Classes
    SiteOps → ColorOps
  13. def darkMode: DarkModeOps

    Allows to add a second color set for dark mode.

    Allows to add a second color set for dark mode. The implementation is based on the prefers-color-scheme media query and requires browsers supporting dark mode.

    Definition Classes
    SiteOps
  14. def downloadPage(title: String, description: Option[String], downloadPath: Path = Root / "downloads", includeEPUB: Boolean = true, includePDF: Boolean = true): Helium

    Adds a download page to the generated site that contains links to EPUB and PDF versions of the site.

    Adds a download page to the generated site that contains links to EPUB and PDF versions of the site. When the sbt plugin is used, this setting will automatically trigger the rendering of the corresponding EPUB and PDF documents when running laikaSite. When the library API is used, this setting only causes the inclusion of the download page itself, the actual EPUB and PDF content must be generated by running the respective renderers manually.

    title

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

    description

    a short description that appears on the download page right under the title

    downloadPath

    the virtual path the EPUB and PDF documents will be generated into

    includeEPUB

    whether EPUB documents will be automatically generated (only having an effect when using the sbt plugin)

    includePDF

    whether PDF documents will be automatically generated (only having an effect when using the sbt plugin)

    Definition Classes
    SiteOps
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  17. def favIcons(icons: Favicon*): Helium

    Adds one or more favicons which can be an internal resource or an external URL.

    Adds one or more favicons which can be an internal resource or an external URL.

    Definition Classes
    SiteOps
  18. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  19. 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
    SingleConfigOps → CommonConfigOps
  20. 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
    SiteOps → SingleConfigOps → CommonConfigOps
  21. 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
    SingleConfigOps → CommonConfigOps
  22. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  23. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  24. def helium: Helium
    Attributes
    protected
    Definition Classes
    site → CopyOps
  25. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  26. def landingPage(logo: Option[Image] = None, title: Option[String] = None, subtitle: Option[String] = None, latestReleases: Seq[ReleaseInfo] = Nil, license: Option[String] = None, documentationLinks: Seq[TextLink] = Nil, projectLinks: Seq[ThemeLink] = Nil, teasers: Seq[Teaser] = Nil): Helium

    Adds a dedicated landing page to the site that is tailored for software documentation sites.

    Adds a dedicated landing page to the site that is tailored for software documentation sites. By default no landing page will be included and the site will render the homepage (if present) with the same default template as the main content pages.

    See the section "Website Landing Page" in the "Theme Settings" chapter for visual guide to the layout of the page.

    All arguments of this method are optional, but the page would look strange if you omit most of them.

    Additionally or alternatively you can also add a regular markup document called landing-page.<suffix> to one of your input directories and its content will be inserted at the bottom of this page. This is in case you want to stick with the traditional approach of some sites, which give you 'Getting Started' style content right on the start page. It can also be used to list adopters, provide a feature overview or links to presentations or videos.

    logo

    a logo to be placed on the left hand side of the header

    title

    a title to be placed right under the logo

    subtitle

    a subtitle to be place right under the title

    latestReleases

    a set of release versions to display on the right side of the header

    license

    the license info to render right under the release info

    documentationLinks

    a set of documentation links to render in a dedicated panel on the right side of the header

    projectLinks

    a set of project links to render at the bottom of the right side of the header

    teasers

    a set of teasers containing of headline and description to render below the header

    Definition Classes
    SiteOps
  27. def layout(contentWidth: Length, navigationWidth: Length, topBarHeight: Length, defaultBlockSpacing: Length, defaultLineHeight: Double, anchorPlacement: AnchorPlacement): Helium

    Allows to override the defaults for Helium's layout.

    Allows to override the defaults for Helium's layout. You can use the constructors found in the LengthUnit companion to create length values, e.g. LengthUnit.px(12). It's usually most convenient to import laika.ast.LengthUnit._ for your configuration code.

    contentWidth

    the maximum width of the main content column

    navigationWidth

    the width of the left navigation sidebar

    topBarHeight

    the height of the top navigation bar

    defaultBlockSpacing

    the default space between block elements

    defaultLineHeight

    the default line height

    anchorPlacement

    the placement of anchors for copying the links of section headlines (left, right or none)

    Definition Classes
    SiteOps
  28. def markupEditLinks(text: String, baseURL: String): Helium

    Adds a link to the markup source of each page on the bottom of the page navigation pane on the right side.

    Adds a link to the markup source of each page on the bottom of the page navigation pane on the right side.

    text

    the text of the link

    baseURL

    the base URL to prepend to the local path of the rendered document

    Definition Classes
    SiteOps
  29. def messageColors(info: Color, infoLight: Color, warning: Color, warningLight: Color, error: Color, errorLight: Color): Helium
    Definition Classes
    ColorOps
  30. 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
    SingleConfigOps → CommonConfigOps
  31. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  33. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  34. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  35. def syntaxHighlightingColors(base: ColorQuintet, wheel: ColorQuintet): Helium
    Definition Classes
    ColorOps
  36. def tableOfContent(title: String, depth: Int): Helium

    Adds a dedicated page for a table of content, in addition to the left navigation bar.

    Adds a dedicated page for a table of content, in addition to the left navigation bar.

    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 navigation bar

    Definition Classes
    SiteOps → CommonConfigOps
  37. def themeColors(primary: Color, primaryMedium: Color, primaryLight: Color, secondary: Color, text: Color, background: Color, bgGradient: (Color, Color)): Helium
    Definition Classes
    ColorOps
  38. def toString(): String
    Definition Classes
    AnyRef → Any
  39. def topNavigationBar(homeLink: ThemeLink = TopNavigationBar.default.homeLink, navLinks: Seq[ThemeLink] = Nil, highContrast: Boolean = false): Helium

    Configures the top navigation bar of the main content pages.

    Configures the top navigation bar of the main content pages.

    homeLink

    the link to the homepage, by default pointing to index.html and using the Helium home icon.

    navLinks

    an optional set of links to be placed at the right side of the bar, supported link types are IconLink, ButtonLink, ImageLink and a plain TextLink

    highContrast

    indicates whether the background color should have a high contrast to the background of the page (darker in light mode and lighter in dark mode).

    Definition Classes
    SiteOps
  40. def versions(versions: Versions, dropDownPrefix: String = "Version"): Helium

    Adds a version dropdown to the top navigation bar.

    Adds a version dropdown to the top navigation bar.

    The specified configuration allows to define the current version as well as any older or newer versions. For each version the pathSegment property holds the value that should use as part of URLs (e.g. /0.18/...) whereas the displayValue property holds the text that should be shown in the dropdown menu.

    If the output destination of the render operation contains existing, older versions in sub-folders, those will be scanned to produce additional version information in the JSON loaded by the site. This will be used for "smart linking" where the drop-down will link to the same page of a different version if it exists.

    Definition Classes
    SiteOps
  41. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  44. def withColors(colors: ColorSet): Helium
    Attributes
    protected
    Definition Classes
    SiteOps → SingleConfigOps → ColorOps
  45. def withFontFamilies(fonts: ThemeFonts): Helium
    Attributes
    protected
    Definition Classes
    SiteOps → SingleConfigOps
  46. def withFontSizes(sizes: FontSizes): Helium
    Attributes
    protected
    Definition Classes
    SiteOps → SingleConfigOps
  47. def withMetadata(metadata: DocumentMetadata): Helium
    Attributes
    protected
    Definition Classes
    SiteOps → SingleConfigOps

Inherited from SiteOps

Inherited from CopyOps

Inherited from SingleConfigOps

Inherited from ColorOps

Inherited from CommonConfigOps

Inherited from AnyRef

Inherited from Any

Ungrouped