in src/build/GuidesHTMLBuildStep.php [24:107]
public function buildAll(): void {
Log::i("\nGuidesHTMLBuild");
$sources = self::findSources(self::SOURCE_ROOT, Set {'md'})
|> Vec\filter($$, $path ==> \basename($path) !== 'README.md')
|> Vec\sort($$);
$this->renderFiles($sources);
Log::i("\nCreating categories");
$categories = \glob(self::SOURCE_ROOT.'/*/*/*-category.txt')
|> Vec\map($$, $path ==> Str\strip_prefix($path, self::SOURCE_ROOT.'/'))
|> Vec\sort($$);
$category_index = $this->createCategoryIndex($categories);
Log::i("\nCreating summaries");
$summaries = \glob(self::SOURCE_ROOT.'/*/*/*-summary.txt')
|> Vec\map($$, $path ==> Str\strip_prefix($path, self::SOURCE_ROOT.'/'))
|> Vec\sort($$);
$summary_index = $this->createSummaryIndex($summaries);
$cg = $this->getCodegenFactory();
$cg->codegenFile(BuildPaths::GUIDES_CATEGORY)
->setNamespace("HHVM\\UserDocumentation")
->addClass(
$cg->codegenClass('GuidesCategoryData')
->setIsFinal(true)
->setIsAbstract(true)
->addMethod(
$cg->codegenMethod('getData')
->setIsStatic(true)
->setReturnType('dict<GuidesProduct, dict<string, string>>')
->setBody(
$cg->codegenHackBuilder()
->addReturn(
$category_index,
CG\HackBuilderValues::dict(
CG\HackBuilderKeys::lambda(
($_, $v) ==> Str\format(
"GuidesProduct::%s",
GuidesProduct::getNames()[$v],
),
),
CG\HackBuilderValues::export(),
),
)
->getCode(),
),
),
)
->save();
$cg->codegenFile(BuildPaths::GUIDES_SUMMARY)
->setNamespace("HHVM\\UserDocumentation")
->addClass(
$cg->codegenClass('GuidesSummaryData')
->setIsFinal(true)
->setIsAbstract(true)
->addMethod(
$cg->codegenMethod('getData')
->setIsStatic(true)
->setReturnType('dict<GuidesProduct, dict<string, string>>')
->setBody(
$cg->codegenHackBuilder()
->addReturn(
$summary_index,
CG\HackBuilderValues::dict(
CG\HackBuilderKeys::lambda(
($_, $v) ==> Str\format(
"GuidesProduct::%s",
GuidesProduct::getNames()[$v],
),
),
CG\HackBuilderValues::export(),
),
)
->getCode(),
),
),
)
->save();
}