charge/component

Types

pub type Component(a) =
  #(String, fn(RenderData, element.ElementTree) -> a)
pub type RenderData {
  RenderData(
    source_path: option.Option(@internal Path),
    site_path: @internal SitePath,
    out_dir: @internal Path,
  )
}

Constructors

  • RenderData(
      source_path: option.Option(@internal Path),
      site_path: @internal SitePath,
      out_dir: @internal Path,
    )

Values

pub fn new(
  tag tag: b,
  visit visit: fn(RenderData, element.ElementTree) -> a,
) -> #(b, fn(RenderData, element.ElementTree) -> a)
pub fn render(
  source_path: option.Option(@internal Path),
  site_path: @internal SitePath,
  out_dir: @internal Path,
  html: element.ElementTree,
  components: List(
    #(
      String,
      fn(RenderData, element.ElementTree) -> Result(
        element.ElementTree,
        error.ChargeError,
      ),
    ),
  ),
) -> Result(element.ElementTree, error.ChargeError)

Runs components over the given HTML depth-first

pub fn render_async(
  source_path: option.Option(@internal Path),
  site_path: @internal SitePath,
  out_dir: @internal Path,
  html: element.ElementTree,
  component: #(
    String,
    fn(RenderData, element.ElementTree) -> promise.Promise(
      Result(element.ElementTree, error.ChargeError),
    ),
  ),
) -> promise.Promise(
  Result(element.ElementTree, error.ChargeError),
)

Visits all nodes that a component expects

Search Document