| title | Doctools |
|---|---|
| description | Documentation generation — MkDocs, Mintlify, llms.txt, package discovery, and nav building |
| package | doctools |
Code-verified reference for packages/doctools.
Cognesy\Doctools\Docs is a Symfony Console Application with built-in commands.
<?php
use Cognesy\Doctools\Docs;
$app = new Docs();
exit($app->run());Registered command names:
gen:examplesgen:packagescleargen:mintlifygen:mkdocsclear:mkdocsgen:llmsmarkmark-dirextractvalidateqalesson:makelesson:image
Note:
clearclears Mintlify docs (ClearMintlifyDocsCommand).
Doctest commands:
mark:--source(required),--output(optional)mark-dir:--source-dir(required),--target-dir(required),--extensions(default:md,mdx),--dry-runextract:--sourceor--source-dir,--target-dir,--extensions(default:md,mdx),--dry-run,--modify-sourcevalidate:--sourceor--source-dir,--extensions(default:md,mdx),--show-all,--show-progress,--show-paths
Quality command:
qa:--source-dir(default:docs),--repo-root,--profile(instructor|http-client|polyglot|none, default:instructor),--extensions(default:md),--rules,--ast-grep-bin(default:ast-grep),--format(text|json),--strict/--no-strict
Docgen commands:
gen:mintlify:--packages-only,--examples-onlygen:mkdocs:--packages-only,--examples-only,--with-llmsgen:llms:--deploy,--target,--index-only,--full-only
Entry points:
use Cognesy\Doctools\Freeze\Freeze;
$fromFile = Freeze::file('examples/demo.php');
$fromCommand = Freeze::execute('php -v');Common FreezeCommand methods:
output(string $path)language(string $language)theme(string $theme)config(string $config)window(bool $enabled = true)showLineNumbers(bool $enabled = true)background(string $color)height(int $height)fontFamily(string $family)fontSize(int $size)lineHeight(float $height)borderRadius(int $radius)borderWidth(int $width)borderColor(string $color)padding(string $padding)margin(string $margin)lines(string $lines)setExecutor(CanExecuteCommand $executor)run(): FreezeResultbuildCommandString(): string
FreezeResult helpers:
isSuccessful()failed()getOutput()getErrorOutput()getCommand()getOutputPath()hasOutputFile()
Theme/config/format constants live in Cognesy\Doctools\Freeze\FreezeConfig.
MarkdownFile:
MarkdownFile::fromString(string $text, string $path = '', array $metadata = [])codeBlocks(): IteratorcodeBlock(string $id): CodeBlockManipulatorwithInlinedCodeBlocks(): selfmetadata(string $key, mixed $default = null): mixedwithMetadata(string $key, mixed $value): selftoString(MetadataStyle $metadataStyle = MetadataStyle::Comments): string
DoctestFile:
DoctestFile::fromMarkdown(MarkdownFile $markdownFile): IteratortoFileContent(?string $region = null): stringgetAvailableRegions(): arrayhasRegions(): boolextractRegion(string $regionName): ?stringgetIdFromCode(): ?stringgetEffectiveCaseDir(MarkdownFile $markdown): stringgetEffectiveCasePrefix(MarkdownFile $markdown): string