| 1: | <?php declare(strict_types = 1); |
| 2: | |
| 3: | namespace ApiGen\Renderer\Latte; |
| 4: | |
| 5: | use ApiGen\Renderer\Filter; |
| 6: | use ApiGen\Renderer\UrlGenerator; |
| 7: | use Latte; |
| 8: | |
| 9: | |
| 10: | class LatteExtension extends Latte\Extension |
| 11: | { |
| 12: | public function __construct( |
| 13: | protected LatteFunctions $functions, |
| 14: | protected Filter $filter, |
| 15: | protected UrlGenerator $url, |
| 16: | ) { |
| 17: | } |
| 18: | |
| 19: | |
| 20: | public function getFunctions(): array |
| 21: | { |
| 22: | return [ |
| 23: | 'isClass' => $this->functions->isClass(...), |
| 24: | 'isInterface' => $this->functions->isInterface(...), |
| 25: | 'isTrait' => $this->functions->isTrait(...), |
| 26: | 'isEnum' => $this->functions->isEnum(...), |
| 27: | |
| 28: | 'textWidth' => $this->functions->textWidth(...), |
| 29: | 'htmlWidth' => $this->functions->htmlWidth(...), |
| 30: | 'highlight' => $this->functions->highlight(...), |
| 31: | 'shortDescription' => $this->functions->shortDescription(...), |
| 32: | 'longDescription' => $this->functions->longDescription(...), |
| 33: | |
| 34: | 'treePageExists' => $this->filter->filterTreePage(...), |
| 35: | 'namespacePageExists' => $this->filter->filterNamespacePage(...), |
| 36: | 'classLikePageExists' => $this->filter->filterClassLikePage(...), |
| 37: | 'functionPageExists' => $this->filter->filterFunctionPage(...), |
| 38: | 'sourcePageExists' => $this->filter->filterSourcePage(...), |
| 39: | |
| 40: | 'elementName' => $this->functions->elementName(...), |
| 41: | 'elementShortDescription' => $this->functions->elementShortDescription(...), |
| 42: | 'elementPageExists' => $this->functions->elementPageExists(...), |
| 43: | 'elementUrl' => $this->functions->elementUrl(...), |
| 44: | |
| 45: | 'relativePath' => $this->url->getRelativePath(...), |
| 46: | 'assetUrl' => $this->url->getAssetUrl(...), |
| 47: | 'indexUrl' => $this->url->getIndexUrl(...), |
| 48: | 'treeUrl' => $this->url->getTreeUrl(...), |
| 49: | 'namespaceUrl' => $this->url->getNamespaceUrl(...), |
| 50: | 'classLikeUrl' => $this->url->getClassLikeUrl(...), |
| 51: | 'classLikeSourceUrl' => $this->url->getClassLikeSourceUrl(...), |
| 52: | 'memberUrl' => $this->url->getMemberUrl(...), |
| 53: | 'memberAnchor' => $this->url->getMemberAnchor(...), |
| 54: | 'memberSourceUrl' => $this->url->getMemberSourceUrl(...), |
| 55: | 'aliasUrl' => $this->url->getAliasUrl(...), |
| 56: | 'aliasAnchor' => $this->url->getAliasAnchor(...), |
| 57: | 'aliasSourceUrl' => $this->url->getAliasSourceUrl(...), |
| 58: | 'functionUrl' => $this->url->getFunctionUrl(...), |
| 59: | 'functionSourceUrl' => $this->url->getFunctionSourceUrl(...), |
| 60: | 'parameterAnchor' => $this->url->getParameterAnchor(...), |
| 61: | 'sourceUrl' => $this->url->getSourceUrl(...), |
| 62: | ]; |
| 63: | } |
| 64: | |
| 65: | |
| 66: | public function getTags(): array |
| 67: | { |
| 68: | return [ |
| 69: | 'pre' => LattePreNode::create(...), |
| 70: | ]; |
| 71: | } |
| 72: | } |
| 73: | |