///|
fn main {
  let first =
    #|---
    #|title: MoonFolio demo
    #|summary: Content metadata curation in MoonBit
    #|date: 2026-08-20
    #|draft: false
    #|tags: [moonbit, frontmatter, docs]
    #|permalink: /docs/moonfolio-demo
    #|---
    #|# MoonFolio
    #|
    #|Parse Markdown metadata blocks from MoonBit.
  let second =
    #|---
    #|title: Profile sample
    #|summary: Registry level release summary
    #|date: 2026-08-20
    #|draft: false
    #|tags: [moonbit, ci]
    #|permalink: /docs/profile-sample
    #|---
    #|# Profile sample
  let output = @lib.parse_with_required(first, ["title", "summary", "tags"])
  let registry = @lib.registry_from_sources(
    [
      { path: "docs/demo.md", text: first },
      { path: "docs/profile.md", text: second },
    ],
    "/docs",
    ["title", "summary"],
  )
  let profile = @lib.profile_with_allowed_tags(
    @lib.profile_with_permalink_prefix(
      @lib.profile_with_date_range(
        @lib.profile_without_drafts(@lib.default_content_profile()),
        2024,
        2030,
      ),
      "/docs",
    ),
    ["moonbit", "frontmatter", "docs", "ci"],
  )
  let profile_report = @lib.evaluate_profile(output.document, profile)
  let edited = @lib.apply_metadata_edit(
    output.document,
    @lib.metadata_set_text("summary", "Updated folio summary"),
  )
  let before = @lib.registry_from_documents([output.document], "/docs")
  let after = @lib.registry_from_documents([edited], "/docs")
  let diff = @lib.diff_registries(before, after)
  let folio = @lib.build_folio(output.document, "/docs")
  println(@lib.summary(output))
  println("valid=" + @lib.is_valid(output).to_string())
  println("profile=" + profile_report.ok.to_string())
  println("registry=" + @lib.registry_summary(registry).total.to_string())
  println("diff=" + @lib.diff_summary_line(diff))
  println("folio=" + folio.manifest_line)
  println("title=" + @lib.get_text(output.document, "title").unwrap_or(""))
  println(@lib.registry_report_json(registry))
}