
CustomBuild.pudu
Pudu43 lines1.6 KB
1/** @Samples.CustomBuild.Program — a site built from Pudu code with a page transform and a post-processor */2module CustomBuild34import Std.Io as Io5import PuduLangDocgen.Build as Build6import PuduLangDocgen as Docgen7import PuduLangDocgen.Docset as Docset891011fn reviewed(page: Docgen.Page) -> Docgen.Page {12 if page.kind != "article" { return page }13 Docgen.Page{..page, body: page.body + "<p class=\"review-note\">Reviewed for release 0.1.</p>\n"}14}1516171819fn robots(artifacts: Array[Docgen.Artifact]) -> Array[Docgen.Artifact] {20 let text = "User-agent: *\nAllow: /\nSitemap: https://docs.example.com/sitemap.xml\n"21 artifacts.push(Docgen.Artifact{path: "robots.txt", content: text})22}2324252627fn main() -> Int {28 let extending = Build.Extensions{pages: [reviewed], artifacts: [robots]}29 let chosen = Docset.Options{..Docset.options(), output: "_preview", warningsAsErrors: true}30 match Docset.build("docs/docgen.json", &chosen, &extending) {31 case Ok(report) => {32 for problem in report.diagnostics { let _said = Io.writeLine(Docgen.describe(&problem)) }33 let _summary = Io.writeLine("written " + show(report.written.length()) + ", unchanged " + show(report.unchanged.length()) + ", removed " + show(report.removed.length()))34 035 }36 case Err(problems) => {37 for problem in problems { let _said = Io.writeErrorLine(Docgen.describe(&problem)) }38 139 }40 }41}4243