///|
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))
}