packages feed

kitchen-sink-0.1.0.0: src/KitchenSink/Core/Assembler/Sections.hs

module KitchenSink.Core.Assembler.Sections (
    module KitchenSink.Core.Assembler.Sections.Primitives,
    module KitchenSink.Core.Assembler.Sections.CommonMark,
    module KitchenSink.Core.Assembler.Sections.Json,
    module KitchenSink.Core.Assembler.Sections.PreRendered,
    renderSection,
) where

import Data.Text qualified as Text

import KitchenSink.Core.Build.Target
import KitchenSink.Core.Section
import KitchenSink.Prelude

import KitchenSink.Core.Assembler.Sections.CommonMark
import KitchenSink.Core.Assembler.Sections.Json
import KitchenSink.Core.Assembler.Sections.PreRendered
import KitchenSink.Core.Assembler.Sections.Primitives

renderSection :: Section ext [Text] -> Assembler ext (Section ext PreRenderedHtml)
renderSection s@(Section _ encoding _) =
    case encoding of
        Cmark -> renderCMark s
        TextHtml -> Assembler $ Right $ fmap (coerce Text.unlines) s
        fmt -> Assembler $ Left (UnsupportedConversionFormat fmt)